kaggle:决策树,随即森林

#简单决策树
import pandas as pd
from sklearn.tree import DecisionTreeRegressor

file = '../input/train.csv'
data = pd.read_csv(file)

y = data.SalePrice
predictors = ['YearBuilt','LotArea']
x = data[predictors]
model = DecisionTreeRegressor()
model.fit(x,y)

columns_name = ['YearBuilt','LotArea','SalePrice']
columns_data = data[columns_name]
print(columns_data.head())

print("Making predictions for the following 5 houses:"
print(x.head())
print("The predictions are")
print(model.predict(x.head()))
#选择决策树深度
#决策树太深过拟合,太浅欠拟合
from sklearn.metrics import mean_absolute_error
from sklearn.tree import DecisionTreeRegressor

def get_mae(max_leaf_nodes, predictors_train, predictors_val, targ_train, targ_val):
    model = DecisionTreeRegressor(max_leaf_nodes=max_leaf_nodes, random_state=0)
    model.fit(predictors_train, targ_train)
    preds_val = model.predict(predictors_val)
    mae = mean_absolute_error(targ_val, preds_val)
    return(mae)

for max_leaf_nodes in [5, 50, 500, 5000]:
    my_mae = get_mae(max_leaf_nodes, train_X, val_X, train_y, val_y)
    print("Max leaf nodes: %d  \t\t Mean Absolute Error:  %d" %(max_leaf_nodes, my_mae))
#随机森林,过拟合方便较决策树好一些
from sklearn.ensemble import RandomForestRegressor

forest_model = RandomForestRegressor()
forest_model.fit(train_X,train_Y)
melb_preds = forest_model.predict(val_X)
print(mean_absolute_error(val_y,melb_preds))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值