欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-19 18:05:16
波士顿房价预测实践(照搬学习)第一步:相关库资源知识下面展示一些 内联代码片。from sklearn.tree import DecisionTreeRegressorfrom sklearn.ensemble import AdaBoostRegressorfrom sklearn import datasetsfrom sklearn.metrics import mean_squared_error,explained_variance_scorefrom sklearn.util...

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

  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