Menu
CoddyTech

Hai đặc trưng tốt nhất

Thuộc phần Thống kê cho machine learning trong hành trình Machine Learning của Coddy. Bài học 59 trên 64.

Đây là biểu đồ mà chương này đã hứa: hai đặc trưng có giá trị trung bình mạnh nhất trên cùng một biểu đồ phân tán, mỗi lớp một màu.

Mẫu mô theo số điểm lõm trung bình trên trục ngang và chu vi trung bình trên trục dọc: các mẫu lành tính tập trung ở góc dưới bên trái, còn các mẫu ác tính trải rộng lên trên và sang phải, hai cụm gặp nhau trong một dải hẹp

Các mẫu lành tính tập trung ở góc dưới bên trái, còn các mẫu ác tính trải rộng lên phía trên và sang phải. Ở nơi hai cụm điểm giao nhau, mô hình dùng cặp này sẽ mắc lỗi.

Kiểm tra thêm một lần: hai biến này có gần như giống hệt nhau không?

first = strength.index[0]
second = strength.index[1]
print(np.round(df[first].corr(df[second]), 2))

Lệnh này in ra 0.85: có liên quan, không phải bản sao. Ở mức 0.99, đặc trưng thứ hai sẽ lặp lại đặc trưng thứ nhất và hầu như không bổ sung gì mới.

challenge icon

Thử thách

Trung bình

Các đặc trưng error đo mức độ biến thiên của một phép đo giữa các tế bào trong một mẫu. Hai đặc trưng mạnh nhất có thể phân biệt các lớp không? Phần code khởi đầu xếp hạng chúng vào first và second; label(ax) đặt tên cho biểu đồ.

  1. In ra r between them: cùng giá trị r của chúng, làm tròn đến 2 chữ số thập phân.
  2. Vẽ một biểu đồ phân tán cho mỗi lớp, đặt first trên trục ngang và gắn nhãn bằng tên lớp.
  3. Gọi label(ax), thêm chú giải rồi hiển thị biểu đồ.

Ví dụ này dùng cặp worst mạnh nhất (r 0.82):

Biểu đồ phân tán có tiêu đề Worst Features, worst concave points trên trục ngang và worst perimeter trên trục dọc, các mẫu ác tính màu xanh lam ở phía trên bên phải, các mẫu lành tính màu cam ở góc dưới bên trái

Sau đó nhận xét biểu đồ của bạn: các cụm có tách biệt không? Và so với r của bạn, chúng có trùng khớp không?

Tự làm thử

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

cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
y = cancer.target
# Mười đặc trưng sai số: mức độ biến thiên của từng phép đo giữa các tế bào trong một mẫu
X = cancer.data[cancer.feature_names[10:20]]

# Xếp hạng theo độ mạnh: first và second là hai đặc trưng mạnh nhất
strength = np.abs(X.corrwith(y)).sort_values(ascending=False)
first = strength.index[0]
second = strength.index[1]


# Đặt tiêu đề biểu đồ và đặt tên các trục theo cặp đặc trưng
def label(ax):
    ax.set_title("Error Features")
    ax.set_xlabel(first)
    ax.set_ylabel(second)


# Viết code bên dưới
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 Thống kê cho machine learning

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