Python có thể tạo trực quan không?

Tôi muốn bắt đầu bài viết này với câu nói rất hay “Một bức tranh đáng giá ngàn lời nói”. Đó là tất cả những gì về Trực quan hóa dữ liệu. Trực quan hóa dữ liệu là một phần không thể thiếu của Khoa học dữ liệu & Phân tích dữ liệu. Nó không chỉ hữu ích cho chúng tôi để hiểu dữ liệu mà còn trình bày những hiểu biết sâu sắc về dữ liệu dưới dạng biểu diễn đồ họa dễ hiểu hơn nhiều

Giả sử chúng ta đang thực hiện một dự án Khoa học dữ liệu. Khách hàng sẽ không quan tâm đến cú pháp mã của chúng tôi, độ phức tạp của mô hình, v.v. Trọng tâm chính sẽ là cái nhìn sâu sắc có thể hành động mà chúng ta có thể rút ra từ dữ liệu và cách sử dụng dữ liệu đó để giải quyết các vấn đề kinh doanh. Không có cách nào tốt hơn Data Visualization để truyền tải thông tin này

Trong bài đăng này, hãy cố gắng hiểu cách chúng ta có thể thực hiện các tác vụ Trực quan hóa dữ liệu trong Python

Ghi chú. Trực quan hóa dữ liệu là một phần của Phân tích dữ liệu khám phá [EDA]. Vì vậy, tôi khuyên bạn nên xem qua bài đăng của tôi trên EDA trước khi tìm hiểu về Trực quan hóa dữ liệu. Nhấp vào đây để đọc bài đăng Trung bình của tôi trên EDA

Hãy xem khóa học Thực hành Máy học của tôi trên YouTube

Hiểu về trực quan hóa dữ liệu với một trường hợp sử dụng thú vị trong Python

tập dữ liệu. Để hiểu về EDA, chúng tôi sẽ nghiên cứu Bộ dữ liệu [Chẩn đoán] Ung thư vú Wisconsin. Ở đây, Các tính năng được tính toán từ hình ảnh số hóa của dịch hút bằng kim nhỏ [FNA] của khối vú. Họ mô tả các đặc điểm của nhân tế bào có trong hình ảnh. Bạn có thể tìm thấy bộ dữ liệu này trong Kho lưu trữ Kaggle hoặc UCI ML. Bạn cũng có thể tải xuống bộ dữ liệu từ đây

Nhiệm vụ trực quan hóa dữ liệu chính cho tập dữ liệu này

1. Đếm biểu đồ cho các cột Phân loại

2. Biểu đồ phân phối cho tất cả các cột

3. Cốt truyện cặp

4. Kiểm tra ngoại lệ

5. Ma trận tương quan

6. Suy luận từ EDA & Trực quan hóa dữ liệu

Nhập thư viện trực quan hóa dữ liệu

import matplotlib.pyplot as plt
import seaborn as sns

Matplotlib & Seaborn là hai thư viện Data Visualization chính trong Python. Ngoài ra còn có các thư viện khác như Plotly và GGplot

GHI CHÚ. Tôi đã giải thích cách thực hiện một số Phân tích dữ liệu khám phá & Xử lý dữ liệu cơ bản trên tập dữ liệu này trong bài đăng trước. Vì vậy, mã này sẽ là sự tiếp nối của nó

1. Đếm biểu đồ cho các cột Phân loại

Tập dữ liệu này chỉ chứa một biến phân loại [“mục tiêu”] với hai danh mục. 0 [lành tính] và 1 [ác tính]. Khi chúng ta có biến phân loại, chúng ta sẽ vẽ nó trong biểu đồ đếm và khi chúng ta có biến số, chúng ta sẽ sử dụng biểu đồ phân phối

[Trong bài đăng này, tôi sẽ sử dụng các thuật ngữ biến và cột thay thế cho nhau vì chúng có nghĩa giống nhau]

sns.countplot[x='target', data=breast_cancer_data

đầu ra

Như chúng ta có thể thấy rõ, số điểm dữ liệu có nhãn “0” cao hơn nhãn “1”. Điều này có nghĩa là chúng tôi có nhiều trường hợp Lành tính hơn so với trường hợp Ác tính trong bộ dữ liệu. Vì vậy, chúng tôi có thể nói rằng bộ dữ liệu này hơi mất cân bằng. Biểu đồ đếm sẽ hiển thị tổng số lượng trong mỗi danh mục

2. Biểu đồ phân phối cho tất cả các cột

Bây giờ chúng ta có thể xây dựng biểu đồ phân phối cho tất cả các cột khác vì chúng chứa các giá trị số. Biểu đồ phân phối cho chúng tôi biết liệu dữ liệu được phân phối bình thường hay có một số sai lệch trong dữ liệu

Phân phối đối xứng đại diện cho Phân phối bình thường

Khi độ lệch của dữ liệu lớn, chúng tôi có thể cần thực hiện một số phép biến đổi để có được kết quả tốt hơn từ các mô hình Machine Learning sau khi chúng tôi đào tạo chúng

for column in breast_cancer_data:     sns.displot[x=column, data=breast_cancer_data

Ở đây, chúng tôi đang thực hiện một vòng lặp for sẽ tạo biểu đồ phân phối cho tất cả các cột trong tập dữ liệu. Tôi sẽ hiển thị biểu đồ phân phối cho cột “area_mean”

Chúng ta có thể thấy rằng dữ liệu bị lệch phải đối với cột “area_mean”. Tương tự, hầu hết các cột đều có độ lệch phải trong tập dữ liệu này. Chúng tôi sẽ giải quyết vấn đề này trong phần Kỹ thuật tính năng

Đây là cái mà chúng tôi gọi là Phân tích đơn biến, trong đó chúng tôi lấy một biến tại một thời điểm và phân tích nó. Khi chúng ta lấy hai biến cùng một lúc và cố gắng tìm mối quan hệ giữa chúng, nó được gọi là Phân tích Bivariate. Khi chúng ta có nhiều hơn hai biến, nó được gọi là Phân tích đa biến

3. Cốt truyện cặp

Biểu đồ cặp đưa ra các mối quan hệ theo cặp trong tập dữ liệu. Giả sử rằng chúng ta có 10 biến trong tập dữ liệu. Khi chúng ta triển khai biểu đồ cặp với dữ liệu này, nó sẽ tạo ra các biểu đồ giữa 10 biến đó. Ví dụ: biến đầu tiên sẽ được lấy làm giá trị trục x và các biến khác sẽ được lấy riêng làm giá trị trục y. Kết quả là bạn sẽ có 10 ô cho riêng biến thứ nhất. Điều này cũng sẽ được lặp lại cho các biến khác. Đối với tập dữ liệu cụ thể này, chúng tôi sẽ không tạo biểu đồ cặp vì chúng tôi có khoảng 30 biến khác nhau và sẽ mất nhiều thời gian để vẽ biểu đồ đó. Vì vậy, bạn có thể bỏ qua bước này đối với tập dữ liệu có nhiều cột

Ví dụ về cốt truyện cặp

Biểu đồ cặp của dữ liệu Penguin. Nguồn. Tài liệu Seaborn [Khi chúng ta có cùng một biến ở cả trục x & trục y, chúng ta sẽ nhận được phân phối của biến đó. Bạn có thể thấy điều này trong các ô chéo]

Ý tưởng đằng sau biểu đồ cặp là hiểu mối quan hệ giữa các biến có trong dữ liệu. Ngoài ra, chúng ta có thể tìm thấy mối quan hệ này bằng cách sử dụng Ma trận tương quan mà chúng ta sẽ thảo luận sau trong bài đăng này

Nếu bạn muốn tạo một biểu đồ cặp, bạn có thể sử dụng chức năng, sns. ghép nối [dataframe_name]

4. Kiểm tra ngoại lệ

Phát hiện ngoại lệ là một trong những nhiệm vụ quan trọng mà chúng ta phải làm. Hầu hết các mô hình Học máy như mô hình Hồi quy, K-Hàng xóm gần nhất, v.v. nhạy cảm với ngoại lệ. Mặt khác, các mô hình như Random Forest không bị ảnh hưởng bởi Outliers. Vì vậy, chúng ta nên xử lý các ngoại lệ này trước khi cung cấp dữ liệu cho các mô hình đó. Điều này cũng sẽ được thực hiện trong phần Feature Engineering

Chúng tôi sẽ tạo một biểu đồ Hộp và Râu để kiểm tra các ngoại lệ

for column in breast_cancer_data:   plt.figure[]   breast_cancer_data.boxplot[[column]]

Vòng lặp For ở trên sẽ tạo biểu đồ hộp cho tất cả các cột trong tập dữ liệu. Tôi sẽ chỉ hiển thị biểu đồ hộp cho biến “radius_mean”

Các vòng tròn phía trên râu trên cùng và bên dưới râu dưới đại diện cho các Ngoại lệ. Ở đây chúng tôi có các ngoại lệ trong phạm vi trên một mình. Tôi sẽ tạo một bài riêng để giải thích về các giá trị ngoại lai và tầm quan trọng của biểu đồ hộp là gì. Nó nằm ngoài phạm vi của bài viết này

5. Ma trận tương quan

Xây dựng Ma trận tương quan là một bước quan trọng trong Trực quan hóa dữ liệu. Mục đích chính của ma trận tương quan là để hiểu mối tương quan [nói cách khác là mối quan hệ] giữa các biến có trong tập dữ liệu. Nó rất hữu ích trong Lựa chọn tính năng được thực hiện để chọn các tính năng quan trọng và loại bỏ các tính năng không liên quan và không cần thiết

correlation_matrix = breast_cancer_data.corr[]plt.figure[figsize=[20,20]]
sns.heatmap[correlation_matrix, cbar=True, fmt='.1f', annot=True, cmap='Blues']
plt.savefig['Correlation Heat map']

Chúng tôi sẽ tạo Bản đồ nhiệt để trực quan hóa mối tương quan giữa các biến

Các giá trị tương quan nằm trong khoảng từ +1 đến -1. Nếu hệ số tương quan giữa 2 biến là +1 có nghĩa là giá trị của biến này tăng 1 đơn vị, nếu biến kia tăng 1 đơn vị và ngược lại. Điều này được gọi là tương quan tích cực. Nếu hệ số tương quan giữa hai biến là -1 có nghĩa là giá trị của biến này giảm đi 1 đơn vị nếu biến kia tăng lên 1 đơn vị và ngược lại. Điều này được gọi là tương quan tiêu cực

Bạn có thể hiểu Tương quan dương là tỷ lệ thuận và Tương quan âm là tỷ lệ nghịch

Tầm quan trọng của việc xác định tương quan. Như tôi đã đề cập trước đó, tương quan rất hữu ích trong Lựa chọn tính năng. Khi chúng ta có hai biến độc lập có tương quan rất cao, chúng ta nên loại bỏ một trong số chúng vì chúng ta gặp phải vấn đề đa cộng tuyến. Trong những trường hợp đó, các hệ số liên quan đến hai biến tương quan cao sẽ không đáng tin cậy

Chúng tôi sẽ thảo luận thêm về điều này trong Lựa chọn tính năng

6. Suy luận từ EDA & Trực quan hóa dữ liệu

  • Không thiếu giá trị nào trong tập dữ liệu
  • Tất cả các biến có giá trị số liên tục ngoại trừ cột Mục tiêu
  • Giá trị trung bình cao hơn một chút so với giá trị trung bình đối với hầu hết các tính năng. Vậy là lệch phải. Điều này có thể nhìn thấy thông qua các sơ đồ phân phối
  • Mất cân bằng nhẹ trong tập dữ liệu [Các trường hợp lành tính [0] nhiều hơn các trường hợp Ác tính [1]]. Sơ đồ số lượt giới thiệu
  • Giá trị trung bình của hầu hết các tính năng rõ ràng lớn hơn đối với các trường hợp Ác tính so với các trường hợp lành tính [Nhóm]
  • Hầu hết các tính năng có ngoại lệ
  • Ma trận tương quan tiết lộ rằng hầu hết các tính năng có mối tương quan cao. Vì vậy, chúng tôi có thể xóa một số tính năng nhất định trong Lựa chọn tính năng
Ghi chú kết thúc

Đây là những biểu đồ quan trọng mà chúng tôi có thể tạo cho tập dữ liệu mà chúng tôi đã có. Có một số biểu đồ khác như biểu đồ hình tròn, biểu đồ phân tán, v.v. Các biểu đồ mà chúng tôi phải sử dụng tùy thuộc vào tập dữ liệu chúng tôi làm việc và thông tin chi tiết mà chúng tôi đang tìm kiếm. Thông tin này mà chúng tôi thu được từ EDA & Trực quan hóa dữ liệu sẽ hữu ích cho chúng tôi khi chúng tôi chuyển sang Đào tạo mô hình & Kỹ thuật tính năng

Tôi khuyên bạn nên lấy một tập dữ liệu khác và thử tất cả các kỹ thuật Trực quan hóa dữ liệu & Phân tích dữ liệu khám phá này để hiểu tập dữ liệu đó tốt hơn

Python hay R tốt hơn để trực quan hóa?

Một số người chọn R thay vì Python do tính chất định hướng thống kê mạnh mẽ và khả năng trực quan hóa tuyệt vời , trong khi những người khác thích Python hơn R do tính linh hoạt và tính linh hoạt của nó không chỉ cho phép .

Python có tốt cho đồ thị không?

Python cung cấp nhiều thư viện vẽ đồ thị tuyệt vời với nhiều tính năng khác nhau . Cho dù bạn muốn tạo các ô tương tác hay tùy chỉnh cao, Python có một thư viện tuyệt vời dành cho bạn.

Ngôn ngữ nào là tốt nhất để trực quan hóa?

Python là một trong những ngôn ngữ chung đơn giản phổ biến nhất để trực quan hóa dữ liệu. Đó là sự lựa chọn tốt nhất để giải quyết vấn đề về Học máy, Học sâu, Trí tuệ nhân tạo, v.v. Hướng đối tượng và dễ sử dụng, được phát triển cho mã rất dễ đọc.

Công cụ trực quan tốt nhất cho Python là gì?

Thư viện trực quan hóa dữ liệu phổ biến nhất trong Python là Plotly, cung cấp một cốt truyện tương tác và dễ đọc cho người mới bắt đầu. Nó được sử dụng rộng rãi để xử lý dữ liệu tài chính, địa lý, thống kê và khoa học

Chủ Đề