Data Visualize Cheatsheet cho EDA

Tram Ho

1. Introduce

Trong các bài toán về data mining và machine learning, chúng ta thường xuyên tiếp xúc với các bài toán với dữ liệu có cấu trúc – dạng bảng. Phân tích, xử lí dữ liệu và bước không thể thiếu, ta gọi đây là bước Exploratory Data Analysis – EDA. Để phân tích dữ liệu dễ dàng và đạt hiệu quả tốt, ta nên biểu diễn dữ liệu trên các đồ thị, hình ảnh… (gọi là Visualize data), từ đó mới hình dung ra được các tính chất, phân phối, quy luật, nhiễu.

Trong python cung cấp rất nhiều thư viện về chủ đề này như matplotlib, seaborn, plotly, bokeh. Từ ngày làm machine learning, mình đã tiếp xúc với rất nhiều kiểu đồ thị, biểu diễn đủ mọi góc độ của data. Tuy vậy do quá nhiều function và code cũng không dễ nhớ nên khi code luôn phải ngồi xem lại. Đó là động lực cho mình viết bài này: 1 Cheatsheet lưu lại các Visualize function hay cho nhiệm vụ EDA, do mình sưu tầm và tập hợp từ nhiều nguồn khác nhau. Các đồ thị trong bài này sẽ giúp bạn biểu diễn dữ liệu đẹp, trực quan và chuyên nghiệp hơn (trông khá ảo diệu nhé).

Do code dễ hiểu nên mình sẽ không giải thích gì nhiều đâu. Chỉ cần nhìn ảnh output là hiểu được ngay.

Code và data các bạn có thể tải theo link github: Data-visualization-CheatSheet

1.1 Data description

Trước hết, mình sẽ mô tả qua về data. Để biểu diễn nhiều dạng đồ thị khác nhau, mình sẽ dùng nhiều loại dữ liệu khác nhau. Dữ liệu bao gồm:

  • Melanoma dataset: data về các bệnh nhân ung thư
  • Titanic: Data về thông tin những người tham gia chuyến tàu Titanic
  • House: Data về thông tin chi tiết các ngôi nhà và giá bán
  • Campus: Data về sinh viên một số trường đại học

2. Code

Import các plot package

Load data từ các file csv:

2.1 Missing data processing

2.1.1 Visualize

Trong thực tế, có rất nhiều trường dữ liệu thiếu data. Ta cần có cách xử lí hợp lí. Trước hết ta cần quan sát dữ liệu, sau đó quyết định có điền (fill) giá trị vào những điểm bị trống này hay không, nếu fill thì nên điền giá trị nào hợp lí nhất.

Plot missing percentage data

Kết quả:

2.1.2 Fill missing data

Thông thường, với dữ liệu dạng category, với những ô bị thiếu, người ta sẽ điền giá trị mode (category có tần xuất xuất hiện nhiều nhất). Với dữ liệu continuous, ta điền giá trị mean hoặc median.

Plot data:

Kết quả:

2.2 Beautifull data chart

Trong phần này, mình tập trung vào visualize data hơn. Với các đồ thị tạo bởi plotly và Bokeh, ta có các thao tác để tương tác như kéo thả, zoom, dịch chuyển, download khá tiện lợi. Do trình bày trên văn bản nên không thể hiện được các tính năng đó.

2.2.1 Noname chart

Biểu diễn phân bố các bộ phận bị ung thư da trong tập dữ liệu. (Mình không biết tên loại đồ thị này)

2.2.2 Sunburst chart

2.2.3 Circle Chart

2.2.4 Hist hover

Một cách biểu diễn histogram khá hay với Bokeh, cho phép ta tương tác trực tiếp với đồ thị:

2.2.5 Scatter chart

Dạng đồ thị này được dùng để quan sát quy luật, mối quan hệ giữa các feature của dữ liệu. Trong đồ thị dưới đây, ta có thể thấy mối quan hệ đồng biến, tuyến tính giữa diện tích và giá:

Ngoài ra, ta có thể biểu diễn thêm 1 feature thứ 3 với màu sắc

Có thể thấy, mức độ đồng biến “diện tích-giá” thuộc 4 loại nhà này không giống nhau:

2.2.6 Density Contour

Hình như nó được gọi là đồ thị đường đồng mức ta hay dùng trong địa lý :

2.2.7 Map chart

Cho phép biểu diễn các điểm dữ liệu theo phân bố địa lý

2.2.8 3D chart

Một vài loại đồ thị 3D:

3. Conclude

Như vậy, trong bài viết này mình đã hướng dẫn các bạn cách visualize data bằng những đồ thị khá đẹp mắt và ảo tung chảo. Hãy bắt tay vào code, bạn sẽ bất ngờ hơn nữa bởi tính tương tác của chúng. Hãy lưu lại bài viết này, sau này nếu cần chỉ cần lướt lại bài viết và copy code, đơn giản hơn rất nhiều so với tự code. Đừng quên UPVOTE nhé

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo