Nhiều lớp
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 19 trên 58.
Chanh vàng, chanh xanh hay cam? Hồi quy logistic cũng xử lý được ba lớp. Ở đây, một loại quả mới nằm giữa chanh vàng và cam:
model = LogisticRegression(max_iter=1000)
model.fit(X, kind) # X: đường kính, cân nặng; kind: chanh vàng, chanh xanh hoặc cam
print(model.classes_)
print(np.round(model.predict_proba([[6.7, 144]]), 2))
print(model.predict([[6.7, 144]]))Kết quả in ra là:
['lemon' 'lime' 'orange']
[[0.61 0. 0.39]]
['lemon']Mỗi hàng chứa một xác suất cho từng lớp, theo thứ tự trong classes_, và tổng các xác suất bằng 1. predict chọn giá trị lớn nhất.
Vậy là mô hình cho biết mức độ chắc chắn của nó: 61% chanh là một trường hợp khó phân định, đáng để xem xét lại.
Thử thách
Trung bìnhỨng dụng podcast phân loại các tập mới vào mục hài, tin tức hoặc tội phạm có thật. Mã khởi đầu huấn luyện một mô hình LogisticRegression trên episodes.csv (thời lượng, số người nói, số lần cười mỗi phút) và đọc một tập mới vào episode, một bảng chỉ có một hàng.
Hoàn thành describe(episode):
- In xác suất của từng loại chương trình theo thứ tự trong
model.classes_, làm tròn đến phần trăm nguyên. - Trả về loại có khả năng cao nhất.
Với tập của một ứng dụng khác:
comedy: 12%
news: 70%
true crime: 18%
Best guess: newsTự làm thử
import pandas as pd
from sklearn.linear_model import LogisticRegression
episodes = pd.read_csv("episodes.csv")
features = ["length_min", "speakers", "laughs_per_min"]
model = LogisticRegression(max_iter=1000)
model.fit(episodes[features], episodes["show_type"])
# In ra xác suất của từng loại chương trình cho một tập (bảng một hàng), rồi trả về loại có khả năng cao nhất
def describe(episode):
# Viết code của bạn ở đây
return "unknown"
# Đừng thay đổi các dòng bên dưới: một tập mới từ đầu vào
length = float(input())
speakers = int(input())
laughs = float(input())
episode = pd.DataFrame({"length_min": [length], "speakers": [speakers], "laughs_per_min": [laughs]})
best = describe(episode)
print(f"Best guess: {best}")
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ác2Lá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