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

一、回归问题——线性回归和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_boston
import numpy as np
import pandas as pd
data=pd.read_csv('C:/Users/bby/机器学习/boston_house_prices.csv')#读入文件
data.head()

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

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

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

from sklearn.preprocessing import StandardScaler
ss_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_error
print('训练集回归评估指标:')
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)

试用数据超级大的。

Original: https://blog.csdn.net/m0_72662900/article/details/125846627
Author: 泡泡怡
Title: 神经网络方法——美国波士顿房价(回归问题)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/634218/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球