Herhaling van pipelines met sklearn

Extreme Gradient Boosting met XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Pipeline-herhaling

  • Neemt een lijst met benoemde 2-tuples (name, pipeline_step) als input
  • Tuples kunnen elke scikit-learn-compatibele estimator of transformer bevatten
  • Pipeline implementeert fit/predict-methoden
  • Te gebruiken als estimator in grid/randomized search en cross_val_score-methoden
Extreme Gradient Boosting met XGBoost

Voorbeeld van een scikit-learn-pipeline

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)
Extreme Gradient Boosting met XGBoost

Voorbeeld van een scikit-learn-pipeline

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

print("Final RMSE:", final_avg_rmse)
Final RMSE: 4.54530686529
Extreme Gradient Boosting met XGBoost

Preprocessing I: LabelEncoder en OneHotEncoder

  • LabelEncoder: Zet een categorische kolom met strings om naar gehele getallen
  • OneHotEncoder: Neemt die gehele getallen en codeert ze als dummyvariabelen
  • Kan niet binnen een pipeline worden gedaan
Extreme Gradient Boosting met XGBoost

Preprocessing II: DictVectorizer

  • Traditioneel gebruikt bij tekstverwerking
  • Zet lijsten met kenmerktoewijzingen om in vectoren
  • DataFrame omzetten naar een lijst met dictionary-items is nodig
  • Bekijk de scikit-learn documentatie
Extreme Gradient Boosting met XGBoost

Laten we pipelines bouwen!

Extreme Gradient Boosting met XGBoost

Preparing Video For Download...