当前位置: 移动技术网 > IT编程>脚本编程>Python > 波士顿房价预测实践(照搬学习)

波士顿房价预测实践(照搬学习)

2020年07月05日  | 移动技术网IT编程  | 我要评论

波士顿房价预测实践(照搬学习)

  1. 第一步:相关库资源知识

下面展示一些 内联代码片

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

scikit-learn简称sklearn,自2007年发布以来,sklearn已经成为Python重要的机器学习库了,支持包括分类,回归,降维和聚类四大机器学习算法。还包括了特征提取,数据处理和模型评估者三大模块。在这里主要用到四个模块tree:一个分类树模块,这里用到决策树
ensemble:这是一个组合几个模型结果用来增强泛化能力和鲁棒性的模块,主要一个目的是对几个独立模型的结果取均值,起到降低方差的作用。另一个目的是相继建立模型,后者降低前者偏差的作用。在这里,是选用第二个目的,利用AdaBoostRegressor函数。
datasets:sklearn自带的数据集,有这里用到的波士顿房价数据、鸢尾花、手写数字数据
自带数据用法:

sklearn.datasets.load_<name>#自带数据用法,将name改为目标名称
sklearn.datasets.fetch_<name>#在线下载数据集,将name改为目标名称

metrics:sklearn的一个评价指标模块
具体的用法:

from sklearn import metrics#直接导入整个模块
from sklearn.metrics import #导入具体的评价指标函数名称

 下面是一些评价指标函数:
平均绝对误差(mean absolute error):这是给定数据集的所有数据点的绝对误差平均 值。 
均方误差(mean squared error):这是给定数据集的所有数据点的误差的平方的平均值。 这是最流行的指标之一。 
中位数绝对误差(median absolute error):这是给定数据集的所有数据点的误差的中位 数。这个指标的主要优点是可以消除异常值(outlier)的干扰。测试数据集中的单个坏点 不会影响整个误差指标,均值误差指标会受到异常点的影响。 
解释方差分(explained variance score):这个分数用于衡量我们的模型对数据集波动 的解释能力。如果得分1.0分,那么表明我们的模型是完美的。
R方得分(R2 score):这个指标读作“R方”,是指确定性相关系数,用于衡量模型对未 知样本预测的效果。最好的得分是1.0,值也可以是负数。
 下面展示一些 内联代码片

housing_data = datasets.load_boston()#读取波士顿房价数据

下面展示一些 `housing_data.data#获取输入数据

X,Y = shuffle(housing_data.data,housing_data.target,random_state = 7)#打乱顺序
##//80%的数据用于训练,20%的数据用于测试
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算法的决策树回归模型拟合
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### Decision Tree performance ### ")
#均方误差越小越好,所有数据点的误差的平方的平均值
print("Mean squared error = ",round(mse,2))
#解释方差分,越大越好,数据波动的解释能力
print("Explained variance score = ",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### Decision Tree performance ###")
print("Mean aquared error = ",round(mse,2))
print("Explained variance ecore = ",round(evs,2))

本文地址:https://blog.csdn.net/XYH1598/article/details/107117645

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网