对泰坦尼克号,采用逻辑回归、KNN、决策树、随机森林算法进行模型训练,并输出结果
时间: 2023-12-20 21:06:38 浏览: 29
好的,针对泰坦尼克号数据集,我们可以采用逻辑回归、KNN、决策树、随机森林等算法进行预测。
首先,我们需要导入数据集,并对数据进行预处理,包括缺失值填充、特征工程等操作。这里我们使用Python的pandas和numpy库对数据进行处理。
```python
import pandas as pd
import numpy as np
# 导入数据集
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')
# 数据预处理
train_data['Age'].fillna(train_data['Age'].mean(), inplace=True)
test_data['Age'].fillna(test_data['Age'].mean(), inplace=True)
train_data['Embarked'].fillna('S', inplace=True)
test_data['Fare'].fillna(test_data['Fare'].mean(), inplace=True)
```
接下来,我们可以开始使用不同的算法进行模型训练和预测了。
逻辑回归算法:
```python
from sklearn.linear_model import LogisticRegression
# 特征选择
features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked']
train_features = train_data[features]
train_labels = train_data['Survived']
test_features = test_data[features]
# 创建模型
lr = LogisticRegression()
# 模型训练
lr.fit(train_features, train_labels)
# 模型预测
lr_y_predict = lr.predict(test_features)
```
KNN算法:
```python
from sklearn.neighbors import KNeighborsClassifier
# 创建模型
knn = KNeighborsClassifier()
# 模型训练
knn.fit(train_features, train_labels)
# 模型预测
knn_y_predict = knn.predict(test_features)
```
决策树算法:
```python
from sklearn.tree import DecisionTreeClassifier
# 创建模型
dt = DecisionTreeClassifier()
# 模型训练
dt.fit(train_features, train_labels)
# 模型预测
dt_y_predict = dt.predict(test_features)
```
随机森林算法:
```python
from sklearn.ensemble import RandomForestClassifier
# 创建模型
rf = RandomForestClassifier()
# 模型训练
rf.fit(train_features, train_labels)
# 模型预测
rf_y_predict = rf.predict(test_features)
```
最后,我们可以将预测结果输出到csv文件中:
```python
# 将预测结果输出到csv文件中
submission = pd.DataFrame({'PassengerId': test_data['PassengerId'], 'Survived': lr_y_predict})
submission.to_csv('lr_submission.csv', index=False)
submission = pd.DataFrame({'PassengerId': test_data['PassengerId'], 'Survived': knn_y_predict})
submission.to_csv('knn_submission.csv', index=False)
submission = pd.DataFrame({'PassengerId': test_data['PassengerId'], 'Survived': dt_y_predict})
submission.to_csv('dt_submission.csv', index=False)
submission = pd.DataFrame({'PassengerId': test_data['PassengerId'], 'Survived': rf_y_predict})
submission.to_csv('rf_submission.csv', index=False)
```
这样就完成了模型训练和预测,我们可以通过提交结果来评估模型的性能表现。