泰坦尼克号幸存者数据分析
时间: 2024-06-19 20:01:16 浏览: 236
泰坦尼克号幸存者数据分析是一个经典的数据科学案例,它结合了历史数据挖掘和机器学习技术。该数据分析通常基于1912年泰坦尼克号沉船事件中乘客的信息,包括年龄、性别、社会经济地位(舱位等级)、家庭状况、是否携带伴侣或儿童等因素,目标是预测哪些乘客在事故中更有可能存活。
1. 数据集:主要来源于泰坦尼克号乘客名单,包含特征如姓名、性别、年龄、船票等级(反映财富和地位)、登船地点等。
2. 分析方法:
- 描述性统计:计算各特征的平均值、中位数、分布等,了解特征与生存的关系。
- 特征工程:对特征进行编码或转换,比如将舱位等级转化为数值变量,处理缺失值。
- 相关性分析:探索各特征与生存之间的关联程度。
- 机器学习模型:应用回归(如逻辑回归)或分类(如决策树、随机森林、支持向量机或神经网络)模型,训练模型以预测幸存概率。
- 模型评估:使用交叉验证和混淆矩阵来评估模型性能,如准确率、召回率、F1分数等。
相关问题
基于kettle泰坦尼克号幸存者数据
基于Kettle的泰坦尼克号幸存者数据,可以进行数据清洗、转换和分析。以下是一个基本的演示示例:
1. 数据清洗和转换:
```shell
# 导入所需的库
import pandas as pd
# 读取数据
data = pd.read_csv('titanic.csv')
# 查看数据前几行
print(data.head())
# 处理缺失值
data['Age'].fillna(data['Age'].mean(), inplace=True)
data['Embarked'].fillna(data['Embarked'].mode()[0], inplace=True)
# 转换数据类型
data['Age'] = data['Age'].astype(int)
# 保存清洗后的数据
data.to_csv('cleaned_titanic.csv', index=False)
```
2. 数据分析:
```shell
# 导入所需的库
import pandas as pd
# 读取清洗后的数据
data = pd.read_csv('cleaned_titanic.csv')
# 分析幸存者的比例
survived_count = data['Survived'].value_counts()
survived_percentage = survived_count[1] / data.shape[0] * 100
# 分析不同性别的幸存者比例
gender_survived_count = data.groupby('Sex')['Survived'].value_counts().unstack()
gender_survived_percentage = gender_survived_count[1] / (gender_survived_count[0] + gender_survived_count[1]) * 100
# 输出结果
print("幸存者比例:{:.2f}%".format(survived_percentage))
print("男性幸存者比例:{:.2f}%".format(gender_survived_percentage['male']))
print("女性幸存者比例:{:.2f}%".format(gender_survived_percentage['female']))
```
泰坦尼克号幸存者的统计数据或预测分析代码
泰坦尼克号灾难是一个著名的统计学案例,人们经常使用它来进行数据分析和机器学习示例。幸存者统计数据通常包括年龄、性别、社会经济地位、船票等级等因素与生存率之间的关系。例如,历史数据显示女性和儿童有更多的生存机会,而头等舱乘客相比三等舱乘客有更高的存活率。
在Python中,你可以使用Pandas库来处理数据,NumPy进行数值计算,SciKit-Learn进行预测分析。下面是一个简单的线性回归或分类模型(如Logistic Regression或决策树)的预测分析代码片段:
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# 加载数据(假设已经读入一个CSV文件)
data = pd.read_csv("titanic_data.csv")
X = data[['age', 'sex', 'class', 'fare']] # 特征
y = data['survived'] # 目标变量
# 数据预处理,编码分类变量
X = pd.get_dummies(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练模型
model = LogisticRegression()
model.fit(X_train, y_train)
# 预测并评估性能
predictions = model.predict(X_test)
accuracy = model.score(X_test, y_test)
```
这只是一个简化的例子,实际分析可能需要更复杂的特征工程和技术,比如特征选择、特征缩放、模型调参等。
阅读全文