python决策树逻辑回归_python决策树&随机森林&逻辑回归预测泰坦尼克号生存率

项目背景

RMS泰坦尼克号的沉没是历史上最臭名昭着的沉船之一。1912年4月15日,在她的处女航中,泰坦尼克号在与冰山相撞后沉没,在2224名乘客和机组人员中造成1502人死亡。这场耸人听闻的悲剧震惊了国际社会,并导致了更好的船舶安全规定。

造成海难失事的原因之一是乘客和机组人员没有足够的救生艇。尽管幸存下沉有一些运气因素,但有些人比其他人更容易生存,比如女人,孩子和上流社会。

在这个挑战中,我们要求您完成对哪些人可能存活的分析。特别是,我们要求您运用机器学习工具来预测哪些乘客幸免于悲剧。

操作步骤

1、数据读取

2、分析数据

3、缺失数据处理

4、特征工程

5、拆分数据

5、 建立模型

6、 预测

7、评估模型

数据读取

先将可能需要使用的包导入

读取数据

head()和.describe().info()函数连查看数据

缺失值查询

对缺失值填充均值

特征分析与处理

采用seaborn绘图函数库作可视化分析

上图变量均可判断与生存率相关,'PassengerId','Name'和'Ticket'目前看不出有什么特点,暂时不考虑他们

数据标准化,分割数据集、训练模型、预测、评估模型、画auc图

以上用的是决策树算法,下面是随机森林算法、和逻辑回归算法

逻辑回归算法

总结:此次事件中,并不完全符合物竞天择,适者生存的法则,比如,女士的存活率比男士的高,年纪大的都年轻的生存率高,但是有钱的坐一等舱的、买高票价的,存活率比二等、低票价的存活率高,说明人与人之间还不是很平等的。当然此次算法中丢弃了一些特征变量可能会对模型有影响,此文章仅表达数据分析的一些方法,如有不对之处,还请多多指教~

另附各类算法优缺点:

决策树

优点

1. 计算复杂度不高,易于理解和解释,可以理解决策树所表达的意义;

2. 数据预处理阶段比较简单,且可以处理缺失数据;

3. 能够同时处理数据型和分类型属性,且可对有许多属性的数据集构造决策树;

缺点:

1. 对于那些各类别样本数目不一致的数据,信息增益的结果偏向于那些具有更多数值的属性;

2. 对噪声数据较为敏感;

3. 容易出现过拟合问题;

4. 忽略了数据集中属性之间的相关性;

5.处理缺失数据时的困难

随机森林

优点

1、 在当前的很多数据集上,相对其他算法有着很大的优势,表现良好

2、它能够处理很高维度(feature很多)的数据,并且不用做特征选择

3、在训练完后,它能够给出哪些feature比较重要

4、在创建随机森林的时候,对generlization error使用的是无偏估计,模型泛化能力强

缺点:

1、随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟

2、对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。

Logistic回归算法

优点:

1. 计算代价不高,易于理解和实现;

2. 适用于数值型和分类型数据。

缺点:

1. 容易欠拟合;

2. 分类精度可能不高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用Python进行预测泰坦尼克号乘客生存率的步骤: 1. 导入数据集 首先,我们需要导入泰坦尼克号数据集,可以使用Pandas库中的read_csv函数进行导入。例如: ```python import pandas as pd # 读取训练集和测试集数据 train_data = pd.read_csv('train.csv') test_data = pd.read_csv('test.csv') ``` 2. 数据预处理 接着,我们需要对数据进行预处理,包括填补缺失值、转换类别变量为数值变量、选择特征等等。 ```python # 填补缺失值 train_data['Age'].fillna(train_data['Age'].median(), inplace=True) test_data['Age'].fillna(test_data['Age'].median(), inplace=True) train_data['Embarked'].fillna(train_data['Embarked'].mode()[0], inplace=True) test_data['Fare'].fillna(test_data['Fare'].median(), inplace=True) # 转换类别变量为数值变量 train_data['Sex'] = train_data['Sex'].map({'female': 0, 'male': 1}) test_data['Sex'] = test_data['Sex'].map({'female': 0, 'male': 1}) train_data['Embarked'] = train_data['Embarked'].map({'C': 0, 'Q': 1, 'S': 2}) test_data['Embarked'] = test_data['Embarked'].map({'C': 0, 'Q': 1, 'S': 2}) # 选择特征 features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked'] x_train = train_data[features] y_train = train_data['Survived'] x_test = test_data[features] ``` 3. 模型训练和预测 接下来,我们可以使用一些经典的分类算法,比如决策树随机森林逻辑回归等等,对数据进行训练和验证,以得到一个准确的模型。 这里以随机森林为例进行训练和预测。 ```python from sklearn.ensemble import RandomForestClassifier # 定义随机森林模型 rfc = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1) # 训练模型 rfc.fit(x_train, y_train) # 预测测试集结果 y_pred = rfc.predict(x_test) ``` 4. 提交结果 最后,我们可以将预测结果进行提交,参加kaggle竞赛。 ```python # 将结果保存为csv文件 submission = pd.DataFrame({'PassengerId': test_data['PassengerId'], 'Survived': y_pred}) submission.to_csv('submission.csv', index=False) ``` 以上就是使用Python进行预测泰坦尼克号乘客生存率的步骤,希望能对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值