Cách k-NN đưa ra quyết định
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 6 trên 58.
Chương này giới thiệu k-NN. Đến cuối chương, bạn sẽ vẽ bản đồ phân loại cho mọi loại dữ liệu, như bản đồ này dành cho ớt cay nhẹ và cay:
Để phân loại một quả ớt mới, k hàng xóm gần nhất (k-nearest neighbors) tìm k quả ớt trong tập huấn luyện gần nó nhất, rồi chúng bỏ phiếu:
Gần nhất nghĩa là khoảng cách nhỏ nhất, điều bạn đã gặp ở phần 2. Bạn chọn k:
model = KNeighborsClassifier(n_neighbors=5)n_neighbors là k, mặc định là 5 trừ khi bạn chỉ định giá trị khác. Với hai lớp, k lẻ không bao giờ tạo ra kết quả hòa.
Thử thách
DễMột câu lạc bộ thiên văn phân loại các ngôi sao trong stars.csv thành sao lùn và sao khổng lồ dựa trên nhiệt độ và cấp sao. Đoạn code khởi đầu đọc thông tin về một ngôi sao mới và k.
- Tự tìm k ngôi sao gần nhất: thêm cột
distance, rồi sắp xếp. - In ra số sao khổng lồ trong số đó, rồi in ra nhóm chiếm đa số.
- Kiểm tra bằng mô hình k-NN với giá trị k đó, được huấn luyện trên mọi ngôi sao.
Với một ngôi sao khác của câu lạc bộ và k = 5:
Giants among the nearest 5: 4
By hand: giant
Model: giantTự làm thử
import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
# Mỗi ngôi sao một hàng: nhiệt độ tính bằng nghìn kelvin, độ sáng biểu kiến (giá trị càng nhỏ thì càng sáng), sao lùn hoặc sao khổng lồ
stars = pd.read_csv("stars.csv")
X = stars[["temp_kK", "magnitude"]]
y = stars["type"]
# Ngôi sao mới và k
temp = float(input())
mag = float(input())
k = int(input())
new_star = pd.DataFrame({"temp_kK": [temp], "magnitude": [mag]})
# 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