使用 XGBoost 的極端梯度提升
Sergey Fogelson
Head of Data Science, TelevisaUnivision
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_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]rf_pipeline = Pipeline[("st_scaler", StandardScaler()), ("rf_model",RandomForestRegressor())] scores = cross_val_score(rf_pipeline,X,y, scoring="neg_mean_squared_error",cv=10)
final_avg_rmse = np.mean(np.sqrt(np.abs(scores)))
print("Final RMSE:", final_avg_rmse)
Final RMSE: 4.54530686529
LabelEncoder:將字串類別欄位轉為整數OneHotEncoder:把整數欄位編碼為虛擬變數使用 XGBoost 的極端梯度提升