采用Keras序列模型,实现波士顿房价预测问题的建模与训练
时间: 2024-02-17 13:00:26 浏览: 69
波士顿房价预测,机器学习
好的,可以的。下面是使用Keras构建波士顿房价预测模型的代码:
```python
# 导入必要的库
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
# 加载波士顿房价数据集
boston = load_boston()
X = boston.data
y = boston.target
# 数据标准化
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 构建模型
model = Sequential()
model.add(Dense(64, input_dim=X_train.shape[1], activation='relu'))
model.add(Dense(32, activation='relu'))
model.add(Dense(1))
# 编译模型
model.compile(loss='mse', optimizer=Adam(lr=0.001))
# 训练模型
model.fit(X_train, y_train, validation_split=0.1, epochs=100, batch_size=16)
# 评估模型
mse_train = model.evaluate(X_train, y_train)
mse_test = model.evaluate(X_test, y_test)
print('训练集均方误差为:', mse_train)
print('测试集均方误差为:', mse_test)
```
代码解释:
1. 导入必要的库,包括numpy、pandas、Keras、sklearn等。
2. 加载波士顿房价数据集,并将数据标准化。
3. 将数据集分为训练集和测试集。
4. 构建模型,包括输入层、两个隐藏层和输出层,其中第一个隐藏层有64个神经元,第二个隐藏层有32个神经元,激活函数为ReLU。
5. 编译模型,使用均方误差作为损失函数,Adam优化器作为优化算法。
6. 训练模型,训练100个epochs,每个batch包含16个样本,同时在训练集的10%上进行验证。
7. 评估模型,计算训练集和测试集上的均方误差。
希望能够帮到你!
阅读全文