机器学习《决策树优化》

#  进入正题
import pandas as pd
import sklearn.metrics as metircs

#读取共享单车数据
data = pd.read_csv('007-day.csv',encoding='utf-8')

#删除无用数据  axis=1 按列删除  =0是按行删除  inplace=True改变原数据  默认FALSE
data.drop(['dteday','instant','casual','registered'],axis=1,inplace=True)

data.as_matrix() #将类型转成numpy  data.values也可以

from sklearn.model_selection import train_test_split
#按行将数据进行三七分割
trainSet,testSet = train_test_split(data,test_size=0.3)

#按列将特征和标签进行分割 (最后一列是标签)
train_x,train_y = trainSet.iloc[:,:-1].values,trainSet.iloc[:,-1].values
test_x,test_y = testSet.iloc[:,:-1].values,testSet.iloc[:,-1].values


# 创建模型  决策树
from sklearn.tree import DecisionTreeRegressor
dtReg = DecisionTreeRegressor() #初始化

#将 train_x  train_y训练集   进行训练
dtReg.fit(train_x,train_y) 

#将test_x预测集 进行预测
y_pre = dtReg.predict(test_x)
print('无优化mse:{}'.format(metircs.mean_absolute_error(y_pred=y_pre,y_true=test_y)))


#决策树优化
from sklearn.ensemble import AdaBoostRegressor

#初始化 加上决策树深度
dtReg = DecisionTreeRegressor(max_depth=20) 

#参数是弱回归器  决策树 数量
adaboost = AdaBoostRegressor(dtReg,n_estimators=600)  #决策树数量600

adaboost.fit(train_x,train_y)  #训练
y_pre = adaboost.predict(test_x)  # 测试

print('优化后mse:{}'.format(metircs.mean_absolute_error(y_pred=y_pre,y_true=test_y)))
print('解释方差分R2:{}'.format(metircs.r2_score(y_pred = y_pre,y_true=test_y)))
print('查看模型得分:{}'.format(adaboost.score(test_x,test_y))) #(参数是测试集或训练集 !必须一致)

在这里插入图片描述

#  保存模型
from sklearn.externals import joblib
path = '地址加文件名.txt'
joblib.dump(模型,path)

#  加载模型
linear_re_loaded = joblib.load(path)
y_pre_train = linear_re_loaded.predict(train_x)
print(y_pre_train)



往期推荐

存 读csv

python中对list去重的方法

flask框架之分页

django框架之分页

机器学习之绘图

爬虫学习之selenium(一)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值