Огляд конвеєрів у sklearn

Екстремальний градієнтний бустинг з XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Огляд Pipeline

  • Приймає список іменованих 2-кортежів (name, pipeline_step) як вхід
  • Кортежі можуть містити будь-який сумісний із scikit-learn оцінювач або трансформер
  • Pipeline має методи fit/predict
  • Можна використовувати як вхідний оцінювач у grid/randomized search і методах cross_val_score
Екстремальний градієнтний бустинг з XGBoost

Приклад конвеєра 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)
Екстремальний градієнтний бустинг з XGBoost

Приклад конвеєра scikit-learn

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

print("Final RMSE:", final_avg_rmse)
Final RMSE: 4.54530686529
Екстремальний градієнтний бустинг з XGBoost

Попередня обробка I: LabelEncoder і OneHotEncoder

  • LabelEncoder: Перетворює категоріальний стовпець рядків на цілі числа
  • OneHotEncoder: Перетворює стовпець цілих чисел на «даммі»-змінні
  • Не можна виконати всередині конвеєра
Екстремальний градієнтний бустинг з XGBoost

Попередня обробка II: DictVectorizer

  • Традиційно використовується в обробці тексту
  • Перетворює списки відображень ознак на вектори
  • Потрібно перетворити DataFrame на список словників
  • Ознайомтеся з документацією scikit-learn
Екстремальний градієнтний бустинг з XGBoost

Давайте побудуємо конвеєри!

Екстремальний градієнтний бустинг з XGBoost

Preparing Video For Download...