Menu
CoddyTech

Chuẩn bị dữ liệu

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

Mô hình chỉ đọc các hàng số đầy đủ. Dữ liệu chim cánh cụt có ô trống và hai cột văn bản, vì vậy mỗi cột đi theo một nhánh:

Sơ đồ một con chim cánh cụt dùng để huấn luyện. Bốn số đo của nó đi theo nhánh màu xanh dương, được điền bằng trung vị rồi chuẩn hóa, sau đó cho ra -0.79, 0.00, -0.05 và -0.90. Đảo Biscoe nơi nó sống và giới tính bị thiếu đi theo nhánh màu cam, được điền bằng giá trị chưa xác định rồi mã hóa one-hot, sau đó cho ra sáu cột chứa giá trị 0 hoặc 1

Các ô văn bản bị thiếu sẽ nhận giá trị "unknown": chim cánh cụt chưa ghi nhận giới tính sẽ có cột riêng thay vì bị đoán giới tính.

text_steps = make_pipeline(
    SimpleImputer(strategy="constant", fill_value="unknown"),
    OneHotEncoder())

Chỉ khớp các làn trên những hàng huấn luyện. Nếu trung vị đã dùng dữ liệu của chim cánh cụt trong tập kiểm tra, dữ liệu đó sẽ rò rỉ vào tập huấn luyện.

challenge icon

Thử thách

Trung bình

Những chú chim cánh cụt cần các làn như trong hình. Code khởi đầu chia chúng thành các làn và đọc số hàng.

  1. Tạo prep, một ColumnTransformer đưa numbers xuống làn số và text xuống làn văn bản.
  2. Khớp nó với các hàng huấn luyện và biến đổi chúng trong một lần gọi.
  3. In kích thước và số ô trống trước khi xử lý, kích thước sau đó, rồi đến hàng đã xử lý đó, với 2 chữ số thập phân.

Với một đàn khác và hàng 3:

Before: 180 penguins, 6 columns, 9 gaps
After: 180 penguins, 10 columns
Penguin 3: [-1.12  0.47 -0.83 -0.6   0.    1.    0.    0.    1.    0.  ]

Hàng 14 là một chú chim cánh cụt mà không ai đo được. Nó sẽ trở thành gì?

Tự làm thử

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder

# Đàn chim cánh cụt từ Meet the Penguins, các đặc trưng và nhãn của chúng
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]

# Chia dữ liệu trước: giữ riêng chim cánh cụt dùng để kiểm thử cho đến Ship the Model
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
row = int(input())

# Viết code 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