神经网络模型实现泰坦尼克号生存分类
时间: 2023-11-27 21:53:12 浏览: 252
好的,下面是一个使用神经网络模型实现泰坦尼克号生存分类的示例代码。这个模型将使用 TensorFlow 框架实现。
首先,我们需要导入必要的库和数据集:
```python
import tensorflow as tf
import pandas as pd
import numpy as np
# 加载训练集和测试集
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')
# 取出特征和标签
train_x = train_data.drop(['Survived'], axis=1)
train_y = train_data['Survived']
test_x = test_data
```
接下来,我们需要对数据进行预处理。我们将使用 One-hot 编码将分类特征转换为数字特征,并将缺失值替换为平均值:
```python
# 对分类特征进行 One-hot 编码
train_x = pd.get_dummies(train_x)
test_x = pd.get_dummies(test_x)
# 替换缺失值为平均值
train_x = train_x.fillna(train_x.mean())
test_x = test_x.fillna(test_x.mean())
```
然后,我们需要构建神经网络模型。我们将使用 3 个全连接层和一个输出层:
```python
# 定义神经网络模型
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation='relu', input_shape=(train_x.shape[1],)),
tf.keras.layers.Dense(32, activation='relu'),
tf.keras.layers.Dense(16, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
# 编译模型
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
```
接下来,我们可以训练模型并进行预测:
```python
# 训练模型
model.fit(train_x, train_y, epochs=50, batch_size=64)
# 进行预测
predictions = model.predict(test_x)
predictions = np.round(predictions).astype(int)
# 将预测结果保存到文件中
submission = pd.DataFrame({'PassengerId': test_data['PassengerId'], 'Survived': predictions.reshape(-1)})
submission.to_csv('submission.csv', index=False)
```
最后,我们将预测结果保存到文件中,以便提交到 Kaggle 竞赛中进行评估。
这就是一个使用神经网络模型实现泰坦尼克号生存分类的示例代码。
阅读全文