Điều chuẩn
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 34 trên 58.
Mô hình tuyến tính bị khớp quá mức dựa vào các trọng số lớn để uốn cong theo từng hàng dữ liệu nhiễu. Hồi quy Ridge áp dụng mức phạt cho các trọng số lớn, còn alpha đặt ra mức phạt đó.
Đây là 20 cây đàn guitar đã qua sử dụng, với sáu đặc trưng được dùng để dự đoán giá:
Nó chỉ khác một chỗ so với LinearRegression, có các trọng số là [-83. 116. 104. 27. 17. 15.]:
from sklearn.linear_model import Ridge
ridge = Ridge(alpha=100)
ridge.fit(X_train, y_train)
print(np.round(ridge.coef_))Kết quả in ra:
[-14. 18. 16. 10. 5. 8.]Alpha lớn hơn, trọng số nhỏ hơn, ít bị quá khớp hơn. Nếu quá lớn, mô hình sẽ bị thiếu khớp.
Thử thách
Trung bìnhMột trang web du lịch dự đoán giá thuê mỗi đêm của các căn nhà nghỉ dựa trên 8 đặc trưng, chỉ dùng 16 căn nhà nghỉ. Chương trình đọc alpha; phần mã khởi đầu chia và chuẩn hóa dữ liệu.
- Huấn luyện một mô hình
LinearRegressionvà một mô hìnhRidgevớialphađó. - In tổng độ lớn trọng số của từng mô hình: lấy các trọng số bỏ dấu, cộng lại rồi làm tròn.
- In R bình phương của từng mô hình trên tập kiểm tra (3 chữ số thập phân) và mô hình tốt hơn, như bên dưới.
Với một khu vực khác và 5:
Total weight size: plain 90, ridge 53
Test R squared: plain -0.471, ridge 0.642
Better on new cottages: ridgeTự làm thử
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.metrics import r2_score
alpha = float(input())
# Đừng thay đổi các dòng bên dưới: 28 căn nhà nghỉ, 8 đặc trưng và giá mỗi đêm tính bằng euro
cottages = pd.read_csv("cottages.csv")
features = ["size_m2", "bedrooms", "lake_m", "age_years", "town_km", "sauna", "road_noise_db", "forest_m"]
X = cottages[features]
y = cottages["price"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=0)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# Viết code của bạn 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