泰坦尼克号生存与否,与Sex, Fare, Pclass_1相关度都比较高,使用这些维度进行预测,求机器学习代码
时间: 2024-10-18 20:24:44 浏览: 12
在Python中,我们可以使用scikit-learn库来构建一个简单的线性回归模型(这里假设我们对连续变量如Fare进行预测),或者逻辑回归或决策树等分类模型(对于Survived这一二元变量)。下面是使用Pandas、NumPy和scikit-learn进行预测的一个简要示例:
首先,我们需要导入所需的库并加载数据:
```python
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression # 对于分类任务(Survived)
from sklearn.tree import DecisionTreeClassifier # 或者DecisionTreeClassifier
from sklearn.preprocessing import LabelEncoder
# 加载泰坦尼克号数据集,假设数据保存在CSV文件中
data = pd.read_csv('titanic_data.csv')
# 将Sex转换为数值编码(可以用LabelEncoder)
le = LabelEncoder()
data['Sex'] = le.fit_transform(data['Sex'])
# 分割特征(X)和目标变量(y)
X = data[['Sex', 'Fare', 'Pclass']]
y = data['Survived']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
接下来,创建分类模型(例如逻辑回归):
```python
model = LogisticRegression() # 对于分类任务
model.fit(X_train, y_train)
# 预测测试集结果
predictions = model.predict(X_test)
```
如果需要使用回归模型(例如预测Fare):
```python
model = LinearRegression() # 使用LinearRegression
model.fit(X_train[['Sex', 'Fare', 'Pclass']], y_train['Fare'])
# 预测Fare值
fare_predictions = model.predict(X_test[['Sex', 'Fare', 'Pclass']])
```
最后,评估模型性能:
```python
from sklearn.metrics import accuracy_score, mean_squared_error # 对于分类和回归分别使用
# 分类任务的评估
if isinstance(model, LogisticRegression):
print("Accuracy:", accuracy_score(y_test, predictions))
# 回归任务的评估
else:
print("Mean Squared Error (MSE):", mean_squared_error(y_test['Fare'], fare_predictions))
```
阅读全文