Genomgång av pipelines med sklearn

Extreme Gradient Boosting med XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Genomgång av Pipeline

  • Tar en lista med namngivna 2-tupler (namn, pipeline_steg) som indata
  • Tupler kan innehålla valfritt scikit-learn-kompatibelt estimator- eller transformatorobjekt
  • Pipeline implementerar metoderna fit/predict
  • Kan användas som estimator i grid/randomized search och cross_val_score
Extreme Gradient Boosting med XGBoost

Exempel på 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 med XGBoost

Exempel på 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 med XGBoost

Förbehandling I: LabelEncoder och OneHotEncoder

  • LabelEncoder: Konverterar en kategorisk kolumn med strängar till heltal
  • OneHotEncoder: Tar kolumnen med heltal och kodar dem som dummyvariabler
  • Kan inte användas inuti en pipeline
Extreme Gradient Boosting med XGBoost

Förbehandling II: DictVectorizer

  • Används traditionellt vid textbehandling
  • Konverterar listor med särdragsmappningar till vektorer
  • DataFrame behöver konverteras till en lista med ordlisteposter
  • Utforska scikit-learn-dokumentationen
Extreme Gradient Boosting med XGBoost

Nu bygger vi pipelines!

Extreme Gradient Boosting med XGBoost

Preparing Video For Download...