Quy trình xử lý
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 45 trên 58.
Các bảng dữ liệu thực tế có ô trống, từ ngữ và thang đo không đồng nhất. Trong chương này, bạn sẽ tạo một đối tượng vừa làm sạch dữ liệu vừa dự đoán, gọi là pipeline:
Bắt đầu với ví dụ đơn giản: make_pipeline kết hợp một bộ chuẩn hóa và một mô hình:
from sklearn.pipeline import make_pipeline
pipe = make_pipeline(StandardScaler(), KNeighborsClassifier())
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))Với 200 mối hàn thử nghiệm, dù chắc hay yếu, đoạn này in ra 0.86, so với 0.74 khi chưa chuẩn hóa.
fit học cách chuẩn hóa từ các hàng huấn luyện, sau đó huấn luyện mô hình. Mọi hàng sau đó đều được chuẩn hóa theo cùng một cách, tự động.
Thử thách
Trung bìnhMỗi tối, một công ty khinh khí cầu quyết định ngày mai có phải là ngày bay hay không. Mã khởi đầu tự chuẩn hóa dữ liệu: độ chính xác trên tập kiểm tra ổn, nhưng dữ báo thời tiết không bao giờ được chuẩn hóa, nên chương trình trả lời yes với mọi kiểu thời tiết.
- Thay mã đó bằng một pipeline gồm bộ chuẩn hóa rồi đến k-NN, được huấn luyện trên các hàng dữ liệu huấn luyện.
- In độ chính xác trên tập kiểm tra và dùng nó để đánh giá dự báo.
Một công ty khác, ngày 20, 32, 7000, 9:
Test accuracy: 0.880
Flying day: noTự 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.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
# Dữ liệu các ngày trước của công ty khinh khí cầu: ngày bay được (1) hoặc không bay được (0)
days = pd.read_csv("balloons.csv")
X = days[["wind_kmh", "gusts_kmh", "visibility_m", "passengers"]].to_numpy()
y = days["flying_day"].to_numpy()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Dự báo ngày mai: tốc độ gió, gió giật, tầm nhìn, số hành khách đã đặt chỗ
day = np.array([[float(input()), float(input()), float(input()), float(input())]])
# Chuẩn hóa thủ công: điểm số có vẻ ổn, nhưng dữ liệu dự báo chưa được chuẩn hóa
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
model = KNeighborsClassifier()
model.fit(X_train_scaled, y_train)
print(f"Test accuracy: {model.score(X_test_scaled, y_test):.3f}")
if model.predict(day)[0] == 1:
print("Flying day: yes")
else:
print("Flying day: no")
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ống4Hồi quy logistic
Dự đoán có hoặc khôngNgưỡng quyết địnhTrọng số là bằng chứngNhiều lớpÔn tập: Bộ lọc thư rác10Quy trình xử lý
Quy trình xử lýCột có kiểu dữ liệu hỗn hợpĐiền giá trị thiếu trong quy trìnhTinh chỉnh quy trìnhÔn tập: Làm sạch và dự đoán2Lá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