Przegląd potoków w sklearn

Extreme Gradient Boosting with XGBoost

Sergey Fogelson

Head of Data Science, TelevisaUnivision

Przegląd Pipeline

  • Przyjmuje listę nazwanych krotek (nazwa, krok_potoku)
  • Krotki mogą zawierać dowolny estymator lub transformator zgodny z scikit-learn
  • Pipeline implementuje metody fit/predict
  • Może być użyty jako estymator w metodach grid/randomized search i cross_val_score
Extreme Gradient Boosting with XGBoost

Przykład potoku w 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)
Extreme Gradient Boosting with XGBoost

Przykład potoku w scikit-learn

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

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

Preprocessing I: LabelEncoder i OneHotEncoder

  • LabelEncoder: konwertuje kategoryczną kolumnę tekstową na liczby całkowite
  • OneHotEncoder: koduje kolumnę liczb całkowitych jako zmienne binarne
  • Nie można ich używać bezpośrednio w potoku
Extreme Gradient Boosting with XGBoost

Preprocessing II: DictVectorizer

  • Tradycyjnie stosowany w przetwarzaniu tekstu
  • Konwertuje listy mapowań cech na wektory
  • Wymaga przekształcenia DataFrame w listę słowników
  • Zapoznaj się z dokumentacją scikit-learn
Extreme Gradient Boosting with XGBoost

Czas na ćwiczenia!

Extreme Gradient Boosting with XGBoost

Preparing Video For Download...