700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 神经网络方法——美国波士顿房价(回归问题)

神经网络方法——美国波士顿房价(回归问题)

时间:2021-03-16 17:36:42

相关推荐

神经网络方法——美国波士顿房价(回归问题)

一、回归问题——线性回归和softmax回归

线性回归—指一类为一个或多个自变量之间的关系建立模型的方法。在自然科学领域和社会科学领域,回归经常表示输入和输出的关系。

美国波士顿房价(回归问题)

问题叙述:

该数据集是一个回归问题。每个类的观察值数量是均等的,共有 506 个观察,13 个输入变量和1个输出变量。

每条数据包含房屋以及房屋周围的详细信息。其中包含城镇犯罪率,一氧化氮浓度,住宅平均房间数,到中心区域的加权距离以及自住房平均房价等等。

CRIM:城镇人均犯罪率。ZN:住宅用地超过 25000 sq.ft. 的比例。INDUS:城镇非零售商用土地的比例。CHAS:查理斯河空变量(如果边界是河流,则为1;否则为0)。NOX:一氧化氮浓度。RM:住宅平均房间数。AGE:1940 年之前建成的自用房屋比例。DIS:到波士顿五个中心区域的加权距离。RAD:辐射性公路的接近指数。TAX:每 10000 美元的全值财产税率。PTRATIO:城镇师生比例。B:1000(Bk-0.63)^ 2,其中 Bk 指代城镇中黑人的比例。LSTAT:人口中地位低下者的比例。MEDV:自住房的平均房价,以千美元计。

1.首先读入数据,代码如下:

#1.数据读入from sklearn.datasets import load_bostonimport numpy as npimport pandas as pddata=pd.read_csv('C:/Users/bby/机器学习/boston_house_prices.csv')#读入文件data.head()

2.将数据划分成测试数据集和训练数据集

from sklearn.model_selection import train_test_splitX=data.drop('MEDV',axis=1) #生成特征集y=data['MEDV']#生成labels集X=X.values #转换为arrayy=y.values #转换为arrayX_train,X_test,y_train,y_test=train_test_split(X,y,random_state=33,test_size=0.25)

3.将取值范围很大的数据输入神经网络,这是有问题的。网络可能会自动适应这种取值范围不同的数据,但学习很定会变得更困难。所以进行标准化处理数据。

from sklearn.preprocessing import StandardScalerss_X=StandardScaler()scaler_X=ss_X.fit(X_train)X_train=scaler_X.transform(X_train)X_test=scaler_X.transform(X_test)

4.建立模型,选择合适的优化方法,隐藏层的个数可以进行调节。

from sklearn.neural_network import MLPRegressor#全连接model = MLPRegressor(solver='lbfgs', hidden_layer_sizes=(15,15), random_state=1)model.fit(X_train, y_train)

5.模型评估,回归问题最常用的损失函数是均方误差 MSE(mean aquared error)代码如下:

from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_errorprint('训练集回归评估指标:')model_score1=model.score(X_train,y_train) print('The accuracy of train data is',model_score1) #拟合优度值print('测试集回归评估指标:')model_score2=model.score(X_test,y_test) print('The accuracy of test data is',model_score2) y_test_predict=model.predict(X_test)mse=mean_squared_error(y_test,y_test_predict) #均方误差print('The value of mean_squared_error:',mse)mae=mean_absolute_error(y_test,y_test_predict) #平均绝对值误差print('The value of mean_absolute_error:',mae)

试用数据超级大的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。