Menu
CoddyTech

Huấn luyện và dự đoá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 3 trên 58.

Mỗi mô hình scikit-learn hoạt động qua hai lệnh gọi. fit học từ các hàng dữ liệu huấn luyện cùng với nhãn của chúng; predict gán nhãn cho những hàng mà mô hình chưa từng thấy:

Sơ đồ: sáu thú cưng, X_train với cân nặng và chiều dài tai bên cạnh y_train, gồm ba con mèo và ba con chó, đi qua fit để tạo thành một mô hình. Hai thú cưng mới, X_new, đi qua predict bằng mô hình và nhận được nhãn mèo và chó

Mô hình trong bài học đầu tiên của hành trình này là k láng giềng gần nhất: mô hình gán nhãn cho một hàng dựa trên những hàng huấn luyện gần nó nhất. Thú cưng theo cân nặng (kg) và chiều dài tai (cm):

from sklearn.neighbors import KNeighborsClassifier

X_train = np.array([[4, 6], [5, 7], [3, 5], [30, 10], [25, 12], [35, 11]])
y_train = np.array(["cat", "cat", "cat", "dog", "dog", "dog"])
model = KNeighborsClassifier()
model.fit(X_train, y_train)
print(model.predict([[6, 6], [28, 11]]))

Lệnh này in ra ['cat' 'dog']. Các hàng mới được thêm vào bảng, mỗi thú cưng một hàng.

Tạo mô hình, khớp mô hình, dự đoán: mọi mô hình trong phần này đều thực hiện theo ba bước này.

challenge icon

Thử thách

Dễ

Ứng dụng của câu lạc bộ ngắm chim nhận diện chim dựa vào sải cánh và cân nặng. Phần code khởi đầu chia dữ liệu của câu lạc bộ trong birds.csv và đọc thông tin những con chim được phát hiện tối nay vào bảng spotted.

  1. Tạo mô hình k-nearest neighbors và huấn luyện mô hình bằng dữ liệu chim huấn luyện.
  2. Dự đoán tất cả chim được phát hiện chỉ trong một lần gọi.
  3. In một dòng cho mỗi con chim, như bên dưới.

Với ba con chim trong một chuyến đi khác:

Bird 1: sparrow
Bird 2: blackbird
Bird 3: robin

Tự làm thử

import pandas as pd
from sklearn.model_selection import train_test_split

# Mỗi con chim mà câu lạc bộ đã đặt tên chiếm một hàng: sải cánh tính bằng cm, cân nặng tính bằng gam
birds = pd.read_csv("birds.csv")
X = birds[["wingspan_cm", "weight_g"]]
y = birds["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# Buổi đi dạo tối nay: số lượng chim, rồi đến sải cánh và cân nặng của từng con
count = int(input())
spans = []
weights = []
for i in range(count):
    spans.append(float(input()))
    weights.append(float(input()))
spotted = pd.DataFrame({"wingspan_cm": spans, "weight_g": weights})

# Viết code của bạn bên dưới
quiz iconTự kiểm tra

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

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