我们能是幸存者吗?幸存者偏差

那些幸存下来的人给你讲的例子信息量是不全的,因为还有大量的在整个过程中“死掉”的存在,因为没能存活下来也没有把信息留下

说几个网上的栗子你应该就明白了。
 (1)媒体调查“你认为郑州出租车起步价十元提高到8元合理吗?”看似样本是是随机的,但得出来的报告很大概率是“不合理”。为什么?因为认为“不合理”甚至愤怒的人更愿意去回答这个问题,而自己有车或者觉得“合理”甚至无所谓的人可能更多会忽略这个调查。
(2)媒体调查“喝葡萄酒的人长寿”,一般是调查了那些长寿的老人,发现其中很多饮用葡萄酒。但还有很多经常饮用葡萄酒但不长寿的人已经死了,媒体怎么调查他们?
(3)很多老人给你讲故事说,日本人并不像想象中的那么坏,这是洗地嘛?不是,是因为他们在不同的地方采取不同的政策,给你说话的人活下来了而已


俗语“死人不会说话”很好的解释了这种偏差的原因。当我们分析问题所依赖信息全部或者大部分来自于“显著的信息”,较少利用“不显著的信息”甚至忽略“沉默的信息”,得出的结论与事实情况就可能存在巨大偏差。这点在投资领域特别显著。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Jupyter Notebook进行泰坦尼克号幸存者分类的步骤: 1. 导入必要的库和数据集 ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline train_data = pd.read_csv('train.csv') test_data = pd.read_csv('test.csv') ``` 2. 数据探索和可视化 ```python # 查看数据集前5行 train_data.head() # 查看数据集信息 train_data.info() # 查看数据集中数值型特征的统计信息 train_data.describe() # 查看数据集中各特征之间的相关性 sns.heatmap(train_data.corr(), annot=True, cmap='coolwarm') # 查看幸存者和未幸存者的数量 sns.countplot(x='Survived', data=train_data) # 查看不同性别的幸存者和未幸存者的数量 sns.countplot(x='Survived', hue='Sex', data=train_data) # 查看不同船舱等级的幸存者和未幸存者的数量 sns.countplot(x='Survived', hue='Pclass', data=train_data) # 查看不同年龄段的幸存者和未幸存者的数量 sns.histplot(x='Age', hue='Survived', data=train_data, kde=True) ``` 3. 数据清洗和特征工程 ```python # 填充缺失值 train_data['Age'].fillna(train_data['Age'].median(), inplace=True) test_data['Age'].fillna(test_data['Age'].median(), inplace=True) test_data['Fare'].fillna(test_data['Fare'].median(), inplace=True) # 将性别和登船港口转换为数值型特征 train_data['Sex'] = train_data['Sex'].map({'male': 0, 'female': 1}) test_data['Sex'] = test_data['Sex'].map({'male': 0, 'female': 1}) train_data['Embarked'] = train_data['Embarked'].map({'S': 0, 'C': 1, 'Q': 2}) test_data['Embarked'] = test_data['Embarked'].map({'S': 0, 'C': 1, 'Q': 2}) # 创建新特征FamilySize和IsAlone train_data['FamilySize'] = train_data['SibSp'] + train_data['Parch'] + 1 test_data['FamilySize'] = test_data['SibSp'] + test_data['Parch'] + 1 train_data['IsAlone'] = np.where(train_data['FamilySize'] == 1, 1, 0) test_data['IsAlone'] = np.where(test_data['FamilySize'] == 1, 1, 0) # 删除无用特征 train_data.drop(['PassengerId', 'Name', 'Ticket', 'Cabin', 'SibSp', 'Parch'], axis=1, inplace=True) test_data.drop(['PassengerId', 'Name', 'Ticket', 'Cabin', 'SibSp', 'Parch'], axis=1, inplace=True) ``` 4. 模型训练和预测 ```python from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score X = train_data.drop('Survived', axis=1) y = train_data['Survived'] 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) y_pred = model.predict(X_test) print('Accuracy:', accuracy_score(y_test, y_pred)) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值