利用Keras加载波士顿房价趋势数据集,构建线性网络,并对其进行编译和训练
时间: 2024-10-20 17:02:41 浏览: 52
机器学习波士顿数据集,boston-housing.npz 直接放到C:\Users\当前自己的用户名\.keras\
首先,我们需要了解如何使用Keras库加载波士顿房价数据集。这个数据集通常包含14种特征和一个目标变量,代表了波士顿地区的房价。以下是步骤:
1. **导入所需的库**:
```python
import numpy as np
from keras.datasets import boston_housing
from keras.models import Sequential
from keras.layers import Dense
```
2. **加载数据集**:
```python
(train_data, train_labels), (test_data, test_labels) = boston_housing.load_data()
```
3. **数据预处理**:
- 数据标准化或归一化,因为Keras模型通常对输入有特定的要求。
```python
mean = train_data.mean(axis=0)
std = train_data.std(axis=0)
train_data -= mean
train_data /= std
test_data -= mean
test_data /= std
```
4. **创建模型**:
使用`Sequential`模型,添加一个输入层和一个全连接输出层。
```python
model = Sequential([
Dense(64, activation='relu', input_shape=(train_data.shape[1],)), # 输入层
Dense(64, activation='relu'), # 隐藏层
Dense(1) # 输出层,这里假设我们只有一个预测值
])
```
5. **编译模型**:
设置损失函数、优化器和评估指标。
```python
model.compile(loss='mse', optimizer='adam', metrics=['mae']) # mse for regression task
```
6. **训练模型**:
```python
model.fit(train_data, train_labels, epochs=100, batch_size=32, validation_split=0.2)
```
这里设置了100轮迭代(epochs),每个批次训练32个样本,并保留20%的数据作为验证集。
7. **评估模型**:
```python
test_loss, test_mae = model.evaluate(test_data, test_labels, verbose=0)
print(f"Test loss: {test_loss:.2f}, Test MAE: {test_mae:.2f}")
```
阅读全文