在右侧编辑器补充代码,完成泰坦尼克号生还预测问题,需要将预测结果保存在./predict.csv文件中。文件保存格式如图所示: 可以使用如下代码: # 其中result为模型的预测结果 pd.DataFrame({'Survived':result}).to_csv('./predict.csv', index=False) 需要用到的训练集保存在./train.csv文件中,测试集保存在./test.csv文件中(测试集中没有Survived这一列)。
时间: 2024-03-17 16:43:05 浏览: 186
在完成泰坦尼克号生还预测问题之前,需要进行数据预处理,包括特征选择、缺失值处理、特征编码等操作。下面是一份简单的代码示例,供参考:
```python
import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# 读取数据集
train_data = pd.read_csv('./train.csv')
test_data = pd.read_csv('./test.csv')
# 特征选择
selected_features = ['Pclass', 'Sex', 'Age', 'Embarked', 'SibSp', 'Parch', 'Fare']
train_data = train_data[selected_features]
test_data = test_data[selected_features[1:]]
# 缺失值处理
train_data['Age'].fillna(train_data['Age'].median(), inplace=True)
train_data['Embarked'].fillna(train_data['Embarked'].mode()[0], inplace=True)
test_data['Age'].fillna(test_data['Age'].median(), inplace=True)
test_data['Fare'].fillna(test_data['Fare'].median(), inplace=True)
# 特征编码
le = LabelEncoder()
for feature in ['Sex', 'Embarked']:
le = le.fit(train_data[feature])
train_data[feature] = le.transform(train_data[feature])
test_data[feature] = le.transform(test_data[feature])
# 划分训练集和验证集
train_x, val_x, train_y, val_y = train_test_split(train_data.iloc[:, 1:], train_data.iloc[:, 0], test_size=0.2, random_state=42)
# 模型训练
rf = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=0)
rf.fit(train_x, train_y)
# 模型预测
result = rf.predict(test_data)
pd.DataFrame({'Survived':result}).to_csv('./predict.csv', index=False)
```
在这份代码中,我们首先读取了训练集和测试集数据,然后进行了特征选择和缺失值处理。接着,我们使用 LabelEncoder 对分类特征进行了编码,将其转换为数值特征。最后,我们使用 RandomForestClassifier 进行了模型训练和预测,并将预测结果保存在了 predict.csv 文件中。
阅读全文