Chuẩn hóa dữ liệu cho láng giềng
Thuộc phần Học có giám sát trong hành trình Machine Learning của Coddy. Bài học 9 trên 58.
k-NN đo khoảng cách, nên một đặc trưng có giá trị lớn sẽ lấn át các đặc trưng còn lại, như phần 2 đã cảnh báo. Ở đây, khoảng cách đến sông, tính bằng mét, lấn át độ cao:
Chuẩn hóa trước. Chỉ khớp bộ chuẩn hóa với các hàng huấn luyện, sau đó biến đổi cả hai tập:
scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train)
X_test_s = scaler.transform(X_test)
model = KNeighborsClassifier()
model.fit(X_train_s, y_train)
print(model.score(X_test_s, y_test))Lệnh này in ra 0.925, tăng so với 0.6. Các hàng kiểm tra vẫn chưa được xem: bộ chuẩn hóa không học được gì từ chúng.
Thử thách
DễĐồng hồ thông minh dự đoán thiết bị đang chạy dựa vào công suất (watt) và thời gian chạy (phút), trong meter.csv. Mã khởi đầu đọc k và in độ chính xác của k-NN với các đặc trưng chưa chuẩn hóa.
- Khớp một
StandardScalervới các hàng huấn luyện rồi biến đổi cả hai tập dữ liệu. - Khớp một mô hình k-NN có cùng k với các hàng đã chuẩn hóa, rồi in độ chính xác đến 3 chữ số thập phân.
- In mức cải thiện.
Với một hộ gia đình khác và k = 5:
Unscaled accuracy: 0.65
Scaled accuracy: 0.875
Scaling gains 0.225Tự làm thử
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
# Mỗi hàng ghi một lần chạy thiết bị: công suất tính bằng watt, thời gian chạy tính bằng phút và loại thiết bị
meter = pd.read_csv("meter.csv")
X = meter[["watts", "minutes"]]
y = meter["appliance"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
k = int(input())
# k-NN trên các đặc trưng chưa chuẩn hóa
raw_model = KNeighborsClassifier(n_neighbors=k)
raw_model.fit(X_train, y_train)
raw = raw_model.score(X_test, y_test)
print(f"Unscaled accuracy: {round(raw, 3)}")
# Viết code bên dưới
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 Học có giám sát
1Mô hình đầu tiên của bạn
Học từ ví dụTập huấn luyện và tập kiểm traHuấn luyện và dự đoánChấm điểm mô hìnhÔn tập: Bộ sắp xếp hạt giống2Láng giềng gần nhất
Cách k-NN đưa ra quyết địnhChọn kRanh giới quyết địnhChuẩn hóa dữ liệu cho láng giềngÔn tập: láng giềng với dữ liệu rượu vang5Đánh giá bộ phân loại
Ma trận nhầm lẫnĐộ chính xác và độ thu hồiĐiểm F1Các lớp mất cân bằngĐường cong ROCÔn tập: Bài kiểm tra sàng lọc11Dự án: Các loài chim cánh cụt
Làm quen với chim cánh cụtChuẩn bị dữ liệuChọn mô hìnhTinh chỉnh mô hình tốt nhấtĐưa mô hình vào sử dụng3Hồi quy tuyến tính
Dự đoán các con sốNhiều đặc trưngĐo lường sai sốBiểu đồ phần dưÔn tập: Thuê xe đạp6Cây quyết định
Cây đặt câu hỏiĐọc câyĐộ sâu của câyTầm quan trọng của đặc trưngÔn tập: quyết định cho vay9Các mô hình tổ hợp
Rừng ngẫu nhiênVì sao rừng hoạt động hiệu quảTăng cường độ dốcÔn tập: Người kiểm lâm rừng12Thử thách cuối cùng
Tiến triển của bệnh tiểu đườngPhê duyệt tín dụngChữ số viết tayKhách hàng rời bỏTự luyện tập: Trình biên dịch Python online