使用逻辑回归训练模型(max_iter=10000)对泰坦尼克号乘客生存预测,输出预测结果
时间: 2023-10-29 11:04:17 浏览: 150
好的,我可以帮你完成这个任务。首先需要导入需要的库和数据集:
```python
import pandas as pd
from sklearn.linear_model import LogisticRegression
# 加载数据集
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')
```
接着需要对数据进行预处理,包括填充缺失值、将字符串类型的特征转换为数值类型等:
```python
# 处理训练集
train_data['Age'].fillna(train_data['Age'].median(), inplace=True)
train_data['Embarked'].fillna(train_data['Embarked'].mode()[0], inplace=True)
train_data['Sex'] = train_data['Sex'].map({'male': 0, 'female': 1})
train_data['Embarked'] = train_data['Embarked'].map({'S': 0, 'C': 1, 'Q': 2})
train_data.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True)
# 处理测试集
test_data['Age'].fillna(test_data['Age'].median(), inplace=True)
test_data['Fare'].fillna(test_data['Fare'].median(), inplace=True)
test_data['Sex'] = test_data['Sex'].map({'male': 0, 'female': 1})
test_data['Embarked'] = test_data['Embarked'].map({'S': 0, 'C': 1, 'Q': 2})
test_data.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True)
```
数据预处理完成后,接着需要将训练集分为特征和标签,并进行模型训练:
```python
# 分离特征和标签
train_features = train_data.iloc[:, 1:]
train_labels = train_data.iloc[:, 0]
# 创建逻辑回归模型
model = LogisticRegression(max_iter=10000)
model.fit(train_features, train_labels)
```
模型训练完成后,我们可以使用测试集对模型进行预测,并输出预测结果:
```python
# 对测试集进行预测
test_labels = model.predict(test_data)
# 输出预测结果
submission = pd.DataFrame({'PassengerId': range(892, 1310), 'Survived': test_labels})
submission.to_csv('submission.csv', index=False)
```
最后,将预测结果保存为 csv 文件,即可提交到 Kaggle 上进行评估。
阅读全文