Menu
CoddyTech

Ôn tập: láng giềng với dữ liệu rượu vang

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 10 trên 58.

challenge icon

Thử thách

Dễ

Vẽ bản đồ như bản đồ đầu tiên của chương này, nhưng dùng dữ liệu rượu vang. Phần code có sẵn chia 178 mẫu rượu vang (hai đặc trưng, các giống nho từ 0 đến 2), liệt kê ks và đặt nhãn cho biểu đồ.

  1. Chuẩn hóa cả hai tập dữ liệu, khớp mô hình trên các mẫu rượu vang huấn luyện.
  2. In ra giá trị k có độ chính xác tốt nhất trên tập kiểm tra (hiện tại: chương 7 có cách đánh giá công bằng hơn).
  3. Dùng giá trị k đó để tạo bản đồ: lưới xx, yy, kích thước 100 x 100, từ -3 đến 3 theo cả hai chiều, lưu kết quả vào zz.
  4. Vẽ các mẫu rượu vang huấn luyện đã chuẩn hóa lên trên, gắn nhãn từ names; thêm chú giải.

Dựa trên nồng độ cồn và flavanoid:

Best k: 13 (test accuracy 0.956)

Bản đồ rượu vang dựa trên nồng độ cồn và flavanoid, cả hai đều đã được chuẩn hóa: một vùng màu cam ở bên trái, một vùng màu xanh dương ở phía trên bên phải và một vùng màu xanh lá ở phía dưới, với các mẫu rượu vang huấn luyện của từng lớp được phủ lên trên và có chú giải

Coddy mô tả bản đồ của bạn.

Tự làm thử

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler

# 178 mẫu rượu vang từ ba giống nho, các lớp 0, 1, 2
wine = load_wine()
# Các cột 6 và 12: flavanoids và proline
X = wine.data[:, [6, 12]]
y = wine.target
names = ["cultivar A", "cultivar B", "cultivar C"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = range(1, 32, 2)  # k = 1, 3, 5, ..., 31

fig, ax = plt.subplots()
ax.set_title("Wine Neighbors")
ax.set_xlabel("flavanoids (scaled)")
ax.set_ylabel("proline (scaled)")

# Viết code của bạn bên dưới

Tất cả bài học trong Học có giám sát

Tự luyện tập: Trình biên dịch Python online