Menu
CoddyTech

Ma trận tương quan

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

Chọn các đặc trưng nghĩa là so sánh từng cột với mục tiêu cùng lúc. df.corr(numeric_only=True) tạo ma trận tương quan, bỏ qua các cột văn bản:

laptops = pd.DataFrame({
    "model": ["Arc", "Bolt", "Cove", "Dune", "Echo", "Flux", "Gale"],
    "ram_gb": [8, 16, 8, 32, 16, 16, 32],
    "weight_kg": [2.3, 1.4, 2.0, 1.1, 1.8, 1.2, 1.6],
    "battery_h": [7, 9, 10, 13, 6, 11, 8],
    "price": [650, 1100, 700, 1600, 900, 1350, 1200],
})
corr = laptops.corr(numeric_only=True)

Ma trận tương quan của bốn cột máy tính xách tay, thể hiện dưới dạng lưới số. Đường chéo có giá trị 1.00 màu xám; cột price được tô sáng: ram_gb 0.81, weight_kg -0.95, battery_h 0.70

Mỗi ô là giá trị r của hàng và cột tương ứng. Để tìm đặc trưng mạnh nhất, hãy xếp hạng cột giá theo độ lớn, bỏ qua dấu:

ranked = np.abs(corr["price"]).sort_values(ascending=False)
print(ranked.index[1])

Kết quả in ra là:

weight_kg

Chỉ số 0 là chính price, ở mức 1. Laptop nhẹ hơn có giá cao hơn: -0.95 là mối liên hệ mạnh nhất.

challenge icon

Thử thách

Trung bình

Một công ty năng lượng khảo sát 24 ngôi nhà vào mùa đông. homes.csv có mã home và các cột số area_m2, insulation_cm, residents, outside_temp_c và heating_kwh. Chương trình đọc một cột mục tiêu.

  1. In cột mục tiêu của ma trận tương quan, làm tròn đến 2 chữ số thập phân.
  2. In Strongest:, tên cột khác có mối liên hệ mạnh nhất với cột đó và giá trị r của cột ấy, như bên dưới.

Với một khảo sát khác và cột mục tiêu heating_kwh:

windows        0.72
floors         0.68
age_years      0.23
heating_kwh    1.00
Name: heating_kwh, dtype: float64
Strongest: windows (r = 0.72)

Tự làm thử

import numpy as np
import pandas as pd

homes = pd.read_csv("homes.csv")
target = input()

# Viết code của bạn 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