12/09/2019, 14:12

Cách xử lý, xây dựng deep learning model với tập dữ liệu

Người viết: Nguyen The Toan Đây là một bài mẫu phổ biến trên thế giới, nó quen thuộc với những người mới bắt đầu học hoặc nghiên cứu về Machine Learning, Deep Learning. Xem thêm Deep Learning là gì Trọng tâm bài viết bao gồm các mục sau: Phân tích dữ liệu và ...

xây dựng deep learning model với tập dữ liệu

Người viết: Nguyen The Toan

Đây là một bài mẫu phổ biến trên thế giới, nó quen thuộc với những người mới bắt đầu học hoặc nghiên cứu về Machine Learning, Deep Learning.

Xem thêm Deep Learning là gì

Trọng tâm bài viết bao gồm các mục sau:

  • Phân tích dữ liệu và hiển thị dữ liệu.
  • Phân lớp sử dụng neural network với tensorflow.

Phân tích và hiển thị dữ liệu

Phân tích tập dữ liệu (dataset)

Chúng ta sẽ sử dụng một bộ dữ liệu phổ biến được soạn bởi Đại học Wisconsin vào năm 1992. Nhiều bài báo đã được công bố về phân loại trên tập dữ liệu này bằng các kỹ thuật như SVM, logistic regression và mạng nơron.

Mỗi hàng dữ liệu chứa một bản tóm tắt các ô trong một mẫu. Các chỉ số tóm tắt là: trung bình (mean), độ lệch chuẩn (standard deviation) và “tệ nhất” (worst).

Ba chỉ số tóm tắt được cung cấp cho từng tính năng sau (ngoại trừ chẩn đoán):

  1. diagnosis: chẩn đoán (M = ác tính, B = lành tính) – biến mục tiêu của chúng ta
  2. radius: bán kính (trung bình khoảng cách từ trung tâm đến điểm trên chu vi)
  3. texture: kết cấu (độ lệch chuẩn của các giá trị thang độ xám)
  4. perimeter: chu vi
  5. area: diện tích
  6. smoothness: độ mịn (biến thiên cục bộ trong độ dài bán kính)
  7. compactness: phân bố (chu vi ^ 2 / diện tích – 1.0)
  8. concavity: độ lõm (mức độ nghiêm trọng của các phần lõm của đường bao)
  9. concave points: điểm lõm (số phần lõm của đường bao)
  10. symmetry: tính đối xứng
  11. fractal dimension: kích thước fractal

Tập dữ liệu này gồm 569 mẫu, mỗi mẫu bao gồm 32 thuộc tính. Khi mở tập dữ liệu lên, ta thấy rằng:

  1. Cột ID không thể được dùng vào phân loại được.
  2. Diagnosis là class label => target của classify
  3. Cột Unnamed: 32 chứa NaN vì vậy ta không cần chúng.

Các bước thực hiện:

Như vậy ta đã xử lý xong phần phân tích dữ liệu mẫu, để có cái nhìn tổng quát về tỉ lệ label, ta sẽ biểu diễn chúng bằng chart

xây dựng deep learning model với tập dữ liệu

Hiển thị hóa dữ liệu.

Tại sao cần phải hiển thị hóa dữ liệu?

Dựa vào cách bộ não con người xử lý dữ liệu, sử dụng biểu đồ hoặc đồ thị để miêu tả lượng lớn dữ liệu phức tạp sẽ dễ dàng hơn nhiều so với các bản báo cáo hoặc bảng tính. Hiển thị hóa dữ liệu là một cách nhanh chóng, dễ dàng truyền tải các khái niệm (concept) mà không vướng vào bất kì rào cản nào đối với người khác, hơn nữa, bạn còn có thể thử nghiệm với các tình huống khác nhau chỉ bằng một vài điều chỉnh nhỏ.

Tóm lại việc hiển thị hóa dữ liệu sẽ giúp tôi như thế nào…?

1. Nhận ra các vùng, miền bạn cần phải chú ý hoặc cần được cải thiện.

2. Lọc ra các yếu tố ảnh hưởng đến dữ liệu bạn cần.

3. Giúp bạn hiểu vị trí cần đặt của dữ liệu.

4. Dự đoán dữ liệu tiếp theo.

xây dựng deep learning model với tập dữ liệu

Lời khuyên: bạn nên luôn luôn hiển thị hóa dữ liệu của bạn để đưa ra nhận xét và giải pháp tốt nhất cho tập dữ liệu của bạn.

Nhóm các feature để quan sát dữ liệu tốt nhất

Quay trở lại với dữ liệu của chúng ta. Bởi vì sự khác nhau giữa các giá trị của thuộc tính rất lớn để quan sát trên đồ thị, ta sẽ nhóm các đặc trưng (feature) vào 3 nhóm, mỗi nhóm bao gồm 10 đặc trưng để quan sát tốt hơn.

xây dựng deep learning model với tập dữ liệu

Nhìn vào biểu đồ ta thấy, trong feature texture_mean, đường trung bình của M và B đối xứng với nhau vì vậy feature này được sử dụng tốt cho việc phân loại.

Tuy nhiên, với feature fractal_dimension_mean, đường trung bình giữa M và B không đối xứng, vì vậy nó sẽ không cho ta thông tin tốt để phân loại.

xây dựng deep learning model với tập dữ liệu

xây dựng deep learning model với tập dữ liệu

So sánh giữa 2 feature

Ta thấy giá trị của concavity_worst và độ lõm của point_worst có vẻ tương đồng với nhau nhưng làm sao chúng ta có thể quyết định liệu chúng có ràng buộc nhau hay không. Thông thường khi feature ràng buộc với nhau, ta có thể loại bỏ 1 trong số chúng.

Để so sánh sâu hơn về 2 feature, ta thực hiện gộp đồ thị. Ta thấy đồ thị ở trên có sự tương đồng lớn với nhau. Giá trị Pearsonr là giá trị tương quan và 1 là giá trị lớn nhất. Vì vậy 0.86 dường như đủ để khẳng định sự tương quan này. Tuy vậy bạn cũng đừng ngộ nhận rằng chúng ta đang chọn ra các feature, chúng ta mới chỉ quan sát đồ thị và nhận xét về chúng.

xây dựng deep learning model với tập dữ liệu

So sánh 3 hoặc nhiều hơn 3 feature

1. Sử dụng PairGrid

Với việc so sánh 3 hoặc nhiều hơn 3 feature, chúng ta có thể sử dụng PairGrid. Dễ thấy rằng radius_worstperimeter_worst và area_worst có các giá trị tương quan. Chúng ta sẽ sử dụng khám phá này cho việc chọn các feature.

xây dựng deep learning model với tập dữ liệu

2. Sử dụng SwarmPlot

Hiển thị số lượng M và B theo từng feature, biểu đồ swarm giúp bạn dễ quan sát label.

xây dựng deep learning model với tập dữ liệu

3. Sử dụng heat map

Heat map giúp chúng ta có thể quan sát hết được các tương quan giữa các feature.

xây dựng deep learning model với tập dữ liệu

Kết

Trên đây là các cách cơ bản giúp chúng ta quan sát dữ liệu, giúp ích cho việc phân tích và xử lý cũng như việc chọn thuật toán thích hợp cho từng vùng dữ liệu.

Cảm ơn các bạn đã theo dõi bài viết.

Có thể bạn quan tâm:

  • Top 10 thư viện Python tốt nhất cho Data Scientist nửa đầu năm 2019
  • Thử làm ứng dụng tô màu ảnh với mạng Deep Learning
  • 26 công cụ và kỹ thuật trong big data có thể bạn chưa biết

Xem thêm việc làm Software Developers tại TopDev

TopDev via viblo.asia

0