XGBoost で学ぶ極限の勾配ブースティング
Sergey Fogelson
Head of Data Science, TelevisaUnivision
import pandas as pd import xgboost as xgb import numpy as np from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipeline from sklearn.model_selection import cross_val_scorenames = ["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]xgb_pipeline = Pipeline[("st_scaler", StandardScaler()), ("xgb_model",xgb.XGBRegressor())] scores = cross_val_score(xgb_pipeline, X, y, scoring="neg_mean_squared_error",cv=10)final_avg_rmse = np.mean(np.sqrt(np.abs(scores))) print("Final XGB RMSE:", final_avg_rmse)
Final RMSE: 4.02719593323
sklearn_pandas:DataFrameMapper - pandasとscikit-learn間の相互運用性sklearn.impute:SimpleImputer - scikit-learnにおける数値・カテゴリ列のネイティブ補完sklearn.pipeline:FeatureUnion - 複数の特徴量パイプラインを1つに結合XGBoost で学ぶ極限の勾配ブースティング