贝叶斯泰坦尼克号幸存者预测
时间: 2025-01-13 16:43:31 浏览: 67
### 使用贝叶斯方法进行泰坦尼克号生存预测
#### 贝叶斯定理简介
贝叶斯定理是一种基于条件概率的统计学原理,允许根据新的证据更新假设的概率。对于泰坦尼克号生存预测问题,可以通过计算给定某些特征条件下乘客存活或死亡的概率来进行分类。
#### 数据准备与预处理
为了应用贝叶斯分类器,在开始之前需要对原始数据集进行必要的清理和转换工作。这通常涉及缺失值填充、类别编码以及标准化等操作[^1]。
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder, StandardScaler
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, confusion_matrix
# 加载并查看前几行数据
data = pd.read_csv('titanic.csv')
print(data.head())
# 处理缺失值 (这里仅展示简单方式)
data['Age'].fillna(data['Age'].median(), inplace=True)
# 对非数值列进行标签编码
le_sex = LabelEncoder()
data['Sex'] = le_sex.fit_transform(data['Sex'])
# 特征选择
features = ['Pclass', 'Sex', 'Age']
X = data[features]
y = data['Survived']
# 划分训练集测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
# 标准化特征向量
scaler = StandardScaler().fit(X_train)
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)
```
#### 构建朴素贝叶斯模型
选择了合适的特征之后就可以创建一个高斯朴素贝叶斯分类器实例,并对其进行拟合:
```python
gnb = GaussianNB()
# 训练模型
gnb.fit(X_train_scaled, y_train)
# 预测结果
predictions = gnb.predict(X_test_scaled)
# 输出准确率和其他评价指标
accuracy = accuracy_score(y_test, predictions)
confusion = confusion_matrix(y_test, predictions)
print(f'Accuracy: {accuracy:.3f}')
print('Confusion Matrix:')
print(confusion)
```
上述代码展示了如何使用Python中的`sklearn`库快速搭建起一个简单的贝叶斯分类器来完成泰坦尼克号生存预测的任务。当然,在实际项目中还需要进一步优化参数设置、尝试不同的特征组合等方式提高性能表现[^2]。
阅读全文
相关推荐


















