用TensorFlow2.0将波士顿房价数据集(housing.data)分为训练集,验证集和测试集(6:2:2),进行Tensorflow2.0的数据加载读取、线性回归模型的搭建、线性回归模型的交叉验证、模型保持和新数据预测
时间: 2023-06-10 18:06:07 浏览: 214
以下是使用TensorFlow2.0进行波士顿房价预测的完整代码,包括数据集划分、模型搭建、模型训练和预测:
```python
import pandas as pd
import numpy as np
import tensorflow as tf
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# 加载数据集
boston = load_boston()
# 标准化数据
X = boston.data
y = boston.target
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=42)
# 构建模型
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation='relu', input_shape=(X_train.shape[1],)),
tf.keras.layers.Dense(32, activation='relu'),
tf.keras.layers.Dense(1)
])
# 编译模型
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.01),
loss=tf.keras.losses.MeanSquaredError())
# 训练模型
history = model.fit(X_train, y_train, epochs=100, batch_size=32,
validation_data=(X_val, y_val))
# 保存模型
model.save('linear_regression.h5')
# 加载模型
model = tf.keras.models.load_model('linear_regression.h5')
# 预测新数据
X_new = np.array([[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3]])
X_new_scaled = scaler.transform(X_new)
y_pred = model.predict(X_new_scaled)
print(y_pred)
```
步骤解释:
1. 加载波士顿房价数据集,并将数据集标准化。
2. 将数据集划分为训练集、验证集和测试集,比例为6:2:2。
3. 构建一个简单的线性回归模型,包括三个全连接层。
4. 编译模型,设置优化器和损失函数。
5. 训练模型,记录训练过程中的损失值和验证损失值。
6. 保存模型为h5格式。
7. 加载保存的模型。
8. 使用训练好的模型预测新数据。
阅读全文