栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

波士顿房价预测模型keras实现的解析

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

波士顿房价预测模型keras实现的解析

从最简单的波士顿房价数据分析入手,在网上找了一段代码,根据我自己的理解做了以下分析,有不对之处还请各位大神指出。

导入KERAS和波士顿房价数据包

import keras
from keras.datasets import boston_housing

导入层级模型和全连接层

from keras.models import Sequential
from keras.layers import Dense

从房价数据包中导入数据

(x_train,y_train),(x_test,y_test) = boston_housing.load_data()

导入标准化工具包
from sklearn.preprocessing import StandardScaler

将训练数据和测试数据标准化
sc = StandardScaler()
x_train = sc.fit_transform(x_train)
x_test = sc.fit_transform(x_test)
print(x_train[0])
print(x_test[0])

设置模型参数
n_hidden_1 = 64
n_hidden_2 = 64
n_input = 13
n_classes = 1
training_epochs = 200
batch_size = 10

配置模型

input_dim=n_input,第一层必须写明输入数据维度,这里是13;

n_hidden_1指输出维度,这里是64(可以自己设置任意值),代表第一层的神经元个数;

n_hidden_2指第二层的输出,也代表第二层的神经元个数;¶

第三层为一个维度的输出n_classes

from keras import models
model = models.Sequential()
model.add(Dense(n_hidden_1,activation='relu',input_dim=n_input))
model.add(Dense(n_hidden_2,activation='relu'))
model.add(Dense(n_classes))

导入keras后端,定义评价指标
import keras.backend as K
def r2(y_true,y_pred):
    a = K.square(y_pred - y_true)
    b = K.sum(a)
    c = K.mean(y_true)
    d = K.square(y_true - c)
    e = K.sum(d)
    f = 1 - b/e
    return f

训练模型(损失函数,优化器,评价指标)
model.compile(loss='mse',optimizer='rmsprop',metrics=['mae',r2])
history = model.fit(x_train,y_train,batch_size=batch_size,epochs=training_epochs)
pred_y_test = model.predict(x_test)
print(pred_y_test)

 没搞明白这里r2的参数是怎么传进去的?

from sklearn.metrics import r2_score
pred_acc = r2_score(y_test,pred_y_test)
print('pred_acc',pred_acc)

画图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(16,8), dpi=160)
plt.plot(range(len(y_test)), y_test, ls='-.',lw=2,c='r',label='真实值')
plt.plot(range(len(pred_y_test)), pred_y_test, ls='-',lw=2,c='b',label='预测值')
plt.grid(alpha=0.4, linestyle=':')
plt.legend()
plt.xlabel('number')
plt.ylabel('房价')
plt.show()

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/822303.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号