赞
踩
一、回归问题——线性回归和softmax回归
线性回归—指一类为一个或多个自变量之间的关系建立模型的方法。在自然科学领域和社会科学领域,回归经常表示输入和输出的关系。
二、美国波士顿房价(回归问题)
问题叙述:
该数据集是一个回归问题。每个类的观察值数量是均等的,共有 506 个观察,13 个输入变量和1个输出变量。
每条数据包含房屋以及房屋周围的详细信息。其中包含城镇犯罪率,一氧化氮浓度,住宅平均房间数,到中心区域的加权距离以及自住房平均房价等等。
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)
试用数据超级大的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。