Menu
CoddyTech

Vẽ biểu đồ các lớp

Thuộc phần Dữ liệu và biểu đồ trong hành trình Machine Learning của Coddy. Bài học 55 trên 60.

Các lớp có tạo thành những cụm riêng biệt không? Vẽ một biểu đồ phân tán cho mỗi lớp, đặt tên từng biểu đồ theo target_names:

Hoa diên vĩ theo chiều dài và chiều rộng lá đài, mỗi loài có một màu: setosa tạo thành cụm riêng ở phía trên bên trái, còn versicolor và virginica chồng lấn ở giữa và bên phải

Code phía sau phần này:

df = iris.frame
fig, ax = plt.subplots()
for i in range(3):
    group = df[df["target"] == i]
    ax.scatter(group["sepal length (cm)"], group["sepal width (cm)"], label=iris.target_names[i])
ax.set_title("Iris flowers by sepal size")
ax.set_xlabel("sepal length (cm)")
ax.set_ylabel("sepal width (cm)")
ax.legend()
plt.show()

Mỗi lần gọi có màu riêng, còn label=iris.target_names[i] chuyển 0, 1 và 2 thành tên trong chú giải.

Setosa tách biệt; versicolor và virginica chồng lấn. Những vùng các đám mây chồng lấn cũng là nơi mô hình sẽ mắc lỗi.

challenge icon

Thử thách

Trung bình

Các mẫu ác tính và lành tính có tạo thành những cụm riêng biệt không? Biểu đồ của một đồng đội không cho bạn biết điều đó: biểu đồ vẽ toàn bộ load_breast_cancer bằng một lần gọi scatter, chỉ với một màu.

  1. Thay lần gọi scatter đó bằng một lần cho mỗi lớp: mean radius theo chiều ngang, mean concave points theo chiều dọc.
  2. Gắn nhãn cho mỗi lớp bằng tên lớp tương ứng trong target_names.

Giữ nguyên các dòng đã có sẵn. Biểu đồ của bạn sẽ trông giống biểu đồ này, được vẽ từ hai phép đo khác:

Biểu đồ phân tán các mẫu mô vú theo mean texture và mean smoothness, mẫu ác tính màu xanh dương và mẫu lành tính màu cam, có chú giải ghi tên cả hai lớp

Chương trình của bạn không in ra gì: Coddy sẽ kiểm tra biểu đồ và mô tả biểu đồ đó.

Tự làm thử

import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer

cancer = load_breast_cancer(as_frame=True)
df = cancer.frame

# Đừng thay đổi dòng bên dưới
fig, ax = plt.subplots()

# Sửa đoạn code ở đây
ax.scatter(df["mean radius"], df["mean concave points"])

# Đừng thay đổi các dòng bên dưới
ax.set_title("Cells by Diagnosis")
ax.set_xlabel("mean radius")
ax.set_ylabel("mean concave points")
ax.legend()
plt.show()
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Dữ liệu và biểu đồ

Tự luyện tập: Trình biên dịch Python online