Ôn tập về pipelines với sklearn

Gradient Boosting Cực Mạnh với XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Ôn tập về Pipeline

  • Nhận vào danh sách 2-tuple có tên (name, pipeline_step)
  • Tuple có thể chứa bất kỳ estimator hoặc transformer tương thích scikit-learn nào
  • Pipeline hiện thực các phương thức fit/predict
  • Có thể dùng làm estimator đầu vào cho grid/randomized search và cross_val_score
Gradient Boosting Cực Mạnh với XGBoost

Ví dụ pipeline trong scikit-learn

import pandas as pd
from sklearn.ensemble import RandomForestRegressor
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.model_selection import cross_val_score

names = ["crime","zone","industry","charles","no","rooms", "age", "distance","radial","tax","pupil","aam","lower","med_price"] data = pd.read_csv("boston_housing.csv",names=names) X, y = data.iloc[:,:-1], data.iloc[:,-1]
rf_pipeline = Pipeline[("st_scaler", StandardScaler()), ("rf_model",RandomForestRegressor())] scores = cross_val_score(rf_pipeline,X,y, scoring="neg_mean_squared_error",cv=10)
Gradient Boosting Cực Mạnh với XGBoost

Ví dụ pipeline trong scikit-learn

final_avg_rmse = np.mean(np.sqrt(np.abs(scores)))

print("Final RMSE:", final_avg_rmse)
Final RMSE: 4.54530686529
Gradient Boosting Cực Mạnh với XGBoost

Tiền xử lý I: LabelEncoder và OneHotEncoder

  • LabelEncoder: Chuyển cột phân loại dạng chuỗi thành số nguyên
  • OneHotEncoder: Lấy cột số nguyên và mã hóa thành biến giả
  • Không thể thực hiện trong một pipeline
Gradient Boosting Cực Mạnh với XGBoost

Tiền xử lý II: DictVectorizer

  • Thường dùng trong xử lý văn bản
  • Chuyển danh sách ánh xạ đặc trưng thành vector
  • Cần chuyển DataFrame thành danh sách các mục từ điển
  • Khám phá tài liệu scikit-learn
Gradient Boosting Cực Mạnh với XGBoost

Hãy xây dựng pipelines!

Gradient Boosting Cực Mạnh với XGBoost

Preparing Video For Download...