kaggle房价预测参考danB
链接:https://www.kaggle.com/learn/machine-learning
接下来用xgboost+独热+填补均值,win10直接用知乎的方法安装的,还要更新一下pip
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import Imputer
from xgboost import XGBRegressor
original_data = pd.read_csv( 'D:/NOTEBOOK/train.csv') #读取训练数据
test_data = pd.read_csv( 'D:/NOTEBOOK/test.csv') #读取测试数据
original_data_y = original_data.SalePrice #获取y
original_data = original_data.drop(['SalePrice'], axis=1) #删除y
X_train = original_data
X_test = test_data
choose_column = [col for col in X_train.columns if (X_train[col].nunique() < 10 and X_train[col].dtype == "object") or X_train[col].dtype in ['int64','float64']]
X_train = X_train[choose_column]
X_test = X_test[choose_column]
X_train = pd.get_dummies(X_train)
X_test = pd.get_dummies(X_test)
X_train, X_test = X_train.align(X_test, join = 'left', axis=1)
my_imputer = Imputer()
train_X = my_imputer.fit_transform(X_train)
test_X = my_imputer.transform(X_test)
my_model = XGBRegressor()
my_model.fit(train_X, original_data_y, verbose=False)
pre_test_y = my_model.predict(test_X)
my_submission = pd.DataFrame({'Id':X_test.Id, 'SalePrice':pre_test_y})
my_submission.to_csv('submission14.csv', index=False) #0.14250