机器学习(4)--估算波士顿房屋价格----带AdaBoost的决策树回归模型
2018-02-28 14:11
363 查看
估算波士顿房屋价格—-带AdaBoost决策树回归模型
使用带AdaBoost算法的决策树回归器(descision tree regressor)决策树模型: 树状模型,每个节点做决策,从而影响决策结果,叶子节点表示输出结果,分支表示根据输入做出中间决策
AdaBoost:利用其他系统增强模型准确型的技术
代码如下:
#-*- coding:utf-8 -*- import numpy as np from sklearn.tree import DecisionTreeRegressor from sklearn.ensemble import AdaBoostRegressor from sklearn import datasets from sklearn.metrics import mean_squared_error,explained_variance_score from sklearn.utils import shuffle import matplotlib.pyplot as plt #加载房屋数据 波士顿房屋价格 housing_data=datasets.load_boston() #housing_data.data 代表输入价格,housing_data.target代表输出价格 x,y=shuffle(housing_data.data,housing_data.target,random_state=7) #将数据分成80% 用于训练,其他用于测试 num_training=int(0.8*len(x)) #训练数据 x_train,y_train=x[:num_training],y[:num_training] #测试数据 x_test,y_test=x[num_training:],y[num_training:] #建立决策树模型 最大深度是4 限制决策树的深度 dt_regressor=DecisionTreeRegressor(max_depth=4) dt_regressor.fit(x_train,y_train) #使用带AdaBoost算法的决策树模型进行拟合 fit代表拟合 ab_regressor=AdaBoostRegressor(DecisionTreeRegressor(max_depth=4),n_estimators=400,random_state=7) ab_regressor.fit(x_train,y_train) #查看决策树回归器的训练结果 y_pred_dt=dt_regressor.predict(x_test) mse=mean_squared_error(y_test,y_pred_dt) evs=explained_variance_score(y_test,y_pred_dt) print "\n ###决策树学习效果###" print "均方误差 = ",round(mse,2) print "解释方差分 = ",round(evs,2) #查看对AdaBoost进行进行改进之后的算法 y_pred_ab=ab_regressor.predict(x_test) mse=mean_squared_error(y_test,y_pred_ab) evs=explained_variance_score(y_test,y_pred_ab) print "\n ###AdaBoost算法改善效果###" print "均方误差 = ",round(mse,2) print "解释方差分 = ",round(evs,2) def plot_feature_importances(feature_importances,title,feature_names): #将重要性值标准化 feature_importances=100.0*(feature_importances/max(feature_importances)) #将得分从低到高进行排序 flipud 实现矩阵的翻转 index_sorted=np.flipud(np.argsort(feature_importances)) #让x坐标轴上的把标签居中 shape用于读取矩阵的长度 pos=np.arange(index_sorted.shape[0])+0.5 #画出条形图 plt.figure() #bar代表柱形图 plt.bar(pos,feature_importances[index_sorted],align='center') #为x轴的主刻度设置值 plt.xticks(pos,feature_names[index_sorted]) plt.ylabel('Relative importance') plt.title(title) plt.show() #特征重要性 图形表示 feature_importances 代表每个特征多样性 #plot_feature_importances(dt_regressor.feature_importances_,'Decision Tree Regressor ',housing_data.feature_names) plot_feature_importances(ab_regressor.feature_importances_,'AdaBoost Regressor ',housing_data.feature_names)
输出结果
###决策树学习效果### 均方误差 = 14.79 解释方差分 = 0.82 ###AdaBoost算法改善效果### 均方误差 = 7.64 解释方差分 = 0.91
绘制图形如下所示:
相关文章推荐
- 机器学习-估算房屋价格
- 机器学习经典算法详解及Python实现--CART分类决策树、回归树和模型树
- 机器学习经典算法详解及Python实现--CART分类决策树、回归树和模型树
- 机器学习:决策树cart算法在分类与回归的应用(下)
- 机器学习笔记(7)-回归模型
- 【Python】scikit-learn机器学习(一)——一元回归模型
- (斯坦福机器学习课程笔记)用广义线性模型推导逻辑回归模型
- 30分钟学会用scikit-learn的基本回归方法(线性、决策树、SVM、KNN)和集成方法(随机森林,Adaboost和GBRT)
- 机器学习技法总结(五)Adaptive Boosting, AdaBoost-Stump,决策树
- 机器学习之逻辑回归改善模型
- 机器学习概念总结笔记(二)——逻辑回归、贝叶斯分类、支持向量分类SVM、分类决策树ID3、
- 机器学习理论与实战(九)回归树和模型树
- 使用skflow内置的LR,DNN,Scikit-learn中的集成回归模型对“美国波士顿房价”进行预测
- 《机器学习》第一周 一元回归法 | 模型和代价函数,梯度下降
- 【R笔记】R机器学习(一)——一元回归模型
- R语言笔记之树模型(回归树和决策树)
- 机器学习中的概率模型和概率密度估计方法及VAE生成式模型详解之七(第4章 之 梯度估算)
- 机器学习总结(二)——逻辑斯谛回归和最大熵模型
- 机器学习-广义回归模型
- 机器学习——线性模型之逻辑回归