对泰坦尼克号乘客数据集进行数据分析及可视化
时间: 2023-07-09 13:43:39 浏览: 183
好的,我可以对泰坦尼克号乘客数据集进行简单的数据分析和可视化。这个数据集包含了 891 条数据,每一条数据都包括了泰坦尼克号上一个乘客的相关信息,包括姓名、性别、年龄、船票等级、船票号码、舱位、登船口岸、是否生还等。
首先,我们可以对生还和死亡人数进行可视化:

从上面的图表可以看出,泰坦尼克号上有约 550 人遇难,约 340 人幸存。
接下来,我们可以探索一下影响生还率的因素。比如,船票等级、性别等因素对生还率的影响:

从上图中可以看到,女性的生还率明显高于男性,而且船票等级越高的乘客生还率也越高。
最后,我们可以看一下年龄对生还率的影响:

从上图中可以看出,儿童的生还率比较高,而青壮年和中年人的生还率较低。
以上是简单的数据分析和可视化,希望对您有所帮助。
相关问题
泰坦尼克号乘客数据分析,数据集1309名乘客
### 泰坦尼克号乘客数据分析方法
对于泰坦尼克号数据集中的1309名乘客,可以采用一系列结构化的数据分析流程来探索和理解数据特征。
#### 1. 数据预处理
在开始任何分析之前,必须先清理并准备数据。这包括处理缺失值、去除异常值以及转换变量类型等操作[^1]。
```python
import pandas as pd
from sklearn.impute import SimpleImputer
# 加载数据
data = pd.read_csv('titanic.csv')
# 处理缺失值
imputer = SimpleImputer(strategy='mean')
data['Age'] = imputer.fit_transform(data[['Age']])
```
#### 2. 探索性数据分析 (EDA)
通过统计描述、可视化等方式深入了解各个字段之间的关系及其分布情况。常用的工具和技术有直方图、箱线图、散点图矩阵等。
```python
import seaborn as sns
import matplotlib.pyplot as plt
# 年龄与存活率的关系
sns.histplot(data=data, x="Age", hue="Survived", multiple="stack")
plt.show()
```
#### 3. 特征工程
创建新的特征或将现有特征组合起来形成更有意义的信息输入给机器学习算法。例如,可以从名字中提取头衔作为新特征。
```python
def extract_title(name):
title_search = re.search(r' ([A-Za-z]+)\.', name)
if title_search:
return title_search.group(1)
data['Title'] = data['Name'].apply(extract_title)
```
#### 4. 构建预测模型
选择合适的分类器训练模型,并评估其性能指标如准确度、精确度、召回率等。常见的做法是将数据分为训练集和测试集来进行交叉验证。
```python
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
predictions = model.predict(X_test)
print(f"Accuracy: {accuracy_score(y_test, predictions)}")
```
#### 5. 解释结果
最终的结果应该能够清晰地展示哪些因素最能影响乘客的生还几率。比如性别、年龄等因素可能具有较高的重要性得分。
如何使用Python中的适当库(PCA)对泰坦尼克号乘客的数据集进行主成分分析(PCA)和因子分析?
在Python中,我们可以使用scikit-learn库来执行主成分分析(PCA)。首先,你需要安装这个库(如果你还没有的话),可以使用pip install scikit-learn命令。以下是使用PCA对泰坦尼克号乘客数据集进行分析的基本步骤:
1. **导入必要的库**:
```python
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
```
2. **加载数据集**:
```python
df = pd.read_csv('titanic.csv') # 假设数据文件名为'titanic.csv'
```
3. **预处理数据**:
- 确保数值特征标准化(因为PCA对变量尺度敏感):
```python
scaler = StandardScaler()
df[['Age', 'SibSp', 'Parch', 'Fare']] = scaler.fit_transform(df[['Age', 'SibSp', 'Parch', 'Fare']])
```
- 可能需要将分类特征转换为数值形式(例如性别、登船地点等)。
4. **选择特征**:
PCA通常只应用于连续变量,所以选择你想要分析的数值列。
5. **应用PCA**:
```python
pca = PCA()
principal_components = pca.fit_transform(df[['Age', 'SibSp', 'Parch', 'Fare']]) # 使用选定的特征
```
`principal_components`是一个新的数据矩阵,其中每一行代表一个原始样本,每一列是该样本的一个主成分。
6. **查看结果**:
- 绘制累积方差比例图来了解保留多少主成分是有意义的:
```python
explained_variance_ratio_ = pca.explained_variance_ratio_
cum_var = np.cumsum(explained_variance_ratio_)
plt.plot(cum_var, label='Explained Variance')
plt.xlabel('Number of Components')
plt.ylabel('Cumulative Explained Variance')
plt.legend();
```
对于因子分析,Python的`sklearn`库并没有直接提供因子分析功能,但你可以使用如`pyIFA`这样的第三方库。因子分析通常用于探索变量之间的复杂关联,而不是像PCA那样减少维度。如果需要进行因子分析,你可能需要先通过相关库进行计算并可视化。
阅读全文
相关推荐















