用决策树编写一个泰坦尼克号生还预测的代码
时间: 2024-05-09 10:21:46 浏览: 13
非常感谢您的提问。关于您的问题,以下是决策树代码实现的示例:
```python
# 导入需要的库
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
# 读取训练数据和测试数据
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')
# 清洗数据
train_data.drop(['PassengerId', 'Cabin', 'Ticket', 'Name'], axis=1, inplace=True)
test_data.drop(['Cabin', 'Ticket', 'Name'], axis=1, inplace=True)
test_passenger_ids = test_data['PassengerId']
test_data.drop('PassengerId', axis=1, inplace=True)
train_data.fillna(method='pad', inplace=True)
test_data.fillna(method='pad', inplace=True)
# 特征工程
train_data['Sex'] = train_data['Sex'].map({'male': 1, 'female': 0})
test_data['Sex'] = test_data['Sex'].map({'male': 1, 'female': 0})
embark_dummies_train = pd.get_dummies(train_data['Embarked'])
embark_dummies_test = pd.get_dummies(test_data['Embarked'])
train_data = pd.concat([train_data, embark_dummies_train], axis=1)
test_data = pd.concat([test_data, embark_dummies_test], axis=1)
train_data.drop(['Embarked'], axis=1, inplace=True)
test_data.drop(['Embarked'], axis=1, inplace=True)
# 划分训练集和验证集
X_train = train_data.drop('Survived', axis=1)
y_train = train_data['Survived']
X_test = test_data
# 定义决策树分类器
dtc = DecisionTreeClassifier(max_depth=10)
# 训练模型
dtc.fit(X_train, y_train)
# 预测结果并输出到文件
y_test = dtc.predict(X_test)
output = pd.DataFrame({'PassengerId': test_passenger_ids, 'Survived': y_test})
output.to_csv('output.csv', index=False)
```
注意,以上代码为泰坦尼克号数据集的决策树实现示例,只供参考。在实际应用中,可能需要针对具体的数据集进行特定的代码实现和参数调整。