前言
背景知识
速通流程
Titanic数据获取 (excel文档csv格式)
Pycharm函数库中获取numpy&pandas&matplotlib&sklearn
Pycharm调用文件数据
实现数据分析
查看数据图以及对应参数
回顾总体方法
一、数据清洗(Data Cleaning)
二、探索性可视化(Exploratory Visualization)
三、特征工程(Feature Engineering)
四、基本建模&评估(Basic Modeling& Evaluation)
五、参数调整(Hyperparameters Tuning)
六、集成方法(EnsembleMethods)
视频资源讲解
个人心得
作为数据分析的初学者,这是我的第一个项目。下文是个人探索历程的总结与学习过程,主要分为:前期快速的项目完整速通流程以及后期回顾分析。
内容结构为:操作步骤+操作解释+原参考网站+个人解读
可以在kaggle的官网上查看
https://www.kaggle.com
简而言之,就是“泰坦尼克号”这一艘游轮撞了冰山,船沉了。船上的救生艇数目有限,有的人能够上救生艇得以存活,而大部分人落入冰冷的海水而死亡。而谁能够上船,受到了很多因素的影响。赛事官方提供了船上人们的相关信息,而参赛者对于该数据进行分析,能够找出这些因素具体是什么,以及它们的影响程度,从而对于船上乘客的存活情况进行验证。验证的准确率越高,排名越靠前。
信息提供:
Passenger_Id(乘客ID)、Pclass(客舱等级(1/2/3等舱位))、Name (乘客姓名)、Sex(性别)、Age(年龄)、SibSp(兄弟姐妹数/配偶数)、Parch(父母数/子女数)、Ticket (船票编号)、Fare(船票价格)、Cabin(客舱号)、Embarked(登船港口)
去kaggle官网下载或者采取某些小帮手的已经成功下载到的数据集(我就是小帮手)
链接:https://pan.baidu.com/s/1IotTe7Y7lL5boOjLawRNkw
提取码:hm6k
(如果已经会导入函数包可跳过)
分为代码方式以及图形界面方式
代码方式:
核心是在pycharm左下角的Terminal(终端)里面更新pip
输入的代码是
python -m pip install -U pip
python -m pip install -U numpy scipy matplotlib pandas scikit-learn ipython jupyter sympy nose
pip install numpy
pip install scipy
pip install pandas
pip install matplotlib
PyCharm中导入数据分析库_SunnyRivers的博客-CSDN博客_pycharm在代码中导入数据集
图形界面方式:
file--settings—project: python project—project interpreter—点击“+”
就可以添加你想要的函数包了
Python、Anaconda、Pandas以及PyCharm的安装 - 云+社区 - 腾讯云
import pandas as pd
data = pd.read_csv(r'C:\Users\... \Titanic数据\train.csv')
print(data)
复制粘贴现成代码
Kaggle实战入门(一)之泰坦尼克号_kiligso的博客-CSDN博客_kaggle泰坦尼克号
我完全采用了他原文章里面的全部代码,该推文将代码的各个部分细化分开,并且提供各部分代码的基本解释与图表呈现。对于初学者来说,一步步的复制粘贴下来后,能够大致上了解有什么项目包含了什么模块,也有助于加深相关知识的印象。
有时候有些代码会变灰,显示为“Unused import statement”
意味着该行代码并未使用,可能是后面部分模块中需要,但后面模块的内容还没放到代码行中,但总的来说,即使没用,也不是error,不影响操作
个人建议还是一部分一部分地慢慢复制粘贴,这样对于后期回顾理解也比较舒服。当然,如果你时间确实匆忙,小帮手也为你提供了原推文的全部代码行。
代码包里有.txt类型与.py类型
链接:https://pan.baidu.com/s/1ovT1FFqPDd4nwDTnGCZw_A
提取码:95vk
使用plt.show()语句看参数值以及图表
有时候源代码中并没有给出显示,可以自己加输出语句查看
以最后的检验测试集的输出为例,你需要增加
print(cross_val_score(lr,X,y,cv=10).mean())
才能看到那个美妙的0.808127
其实在众多方案中,该准确率尚且还不算高,大家还可以自己尝试一下别的代码以及别的实现方式。
即整个项目的各个模块部分是什么?在处理什么?能够获得什么?
框架分析参考:Kaggle竞赛 —— 泰坦尼克号(Titanic)_massquantity的博客-CSDN博客_kaggle titanic
分为六大部分:
1. 数据清洗(Data Cleaning)
2. 探索性可视化(Exploratory Visualization)
3. 特征工程(Feature Engineering)
4. 基本建模&评估(Basic Modeling& Evaluation)
5. 参数调整(Hyperparameters Tuning)
6. 集成方法(EnsembleMethods)
数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。
数据清洗(学术名词)_百度百科
在本例中,主要可以看到的是Age、Cabin、Embarked、Fare等变量值存在缺失,可以考虑使用众数和中位数等进行插补,若某个变量值缺失很严重,也可以暂时不考虑该变量的影响,当然,也可能有更加合理的处理方案。
所谓探索性数据分析,是在没有头绪的情况下,对数据进行的基本分析,可以从中挖出更具有含金量的信息,为进一步的研究指明方向。
探索性数据分析与数据可视化具有相当紧密的联系,并且图形展示更直观且有利于发现有价值的信息。
探索性数据分析与可视化_于建民的博客-CSDN博客
本例中,可以观察得到性别对于存活率影响明显,年龄与存活人数同样有着很大的相关性,具体而言,女性的生存率高于男性,年龄低于5岁的儿童存活率很高。
特征工程(Feature Engineering)是将原始数据转化成更好的表达问题本质特征的过程,使得将这些特征运用到预测模型中,能提高对不可见数据的模型预测精度。
深度了解特征工程 - 知乎
本例中,对于人名的分析得出,人名的长度或者说人名中所包含的等级称谓,可以提取出他们所对应的社会等级,而社会等级对于存活率有相当明显的影响,这样就得以将看似没有用的名字特征转化为有用的分类型特征。
建模,就是建立模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。建立系统模型的过程,又称模型化。建模是研究系统的重要手段和前提。凡是用模型描述系统的因果关系或相互关系的过程都属于建模。
建模_百度百科
往往是选择算法,比如说K近邻(k-Nearest Neighbors)、逻辑回归(Logistic Regression)、朴素贝叶斯分类器(Naïve Bayes classifier)、决策树(Decision Tree)、随机森林(Random Forest)、梯度提升树(Gradient Boosting Decision Tree)、支持向量机(Support Vector Machine)等等,速通方案中选择的是逻辑回归以及随机森林模型。这些算法之间可以组成交叉测试集,从而选择出更好的算法。
模型评估用来评测模型的好坏。
模型评估 - ZingpLiu - 博客园
最直观可以理解为准确度的值是高还是低。
这里调整参数指的是超参数,模型自身的参数是不能调整的。
模型参数主要包括模型自身参数以及模型框架参数。模型自身参数,通过样本学习得到的参数。如:逻辑回归及神经网络中的权重及偏置的学习等。超参数是模型框架的参数,通常由手工设定。如kmeans中的k,神经网络中的网络层数及每层的节点个数
按照速通方案中的逻辑回归与随机森林,可以通过调整逻辑回归模型中的一个重要参数C,做出C的学习曲线,找到最佳的C值
集成方法的目标是把多个使用给定学习算法构建的基估计器的预测结果结合起来,从而获得比单个估计器更好的泛化能力/鲁棒性。
在本例中,速通方案采取了逻辑回归以及随机森林两个模型相结合,在一定程度上能够理解模型之间相互促进、相互弥补。与此同时,在相关教学视频中,获知可以对于模型当中的不同模型设置权重值,从而让部分模型发挥更大的作用,部分模型起微小的调整作用。
B站上会有相关的视频讲解,我的搜索关键字为“kaggl竞赛案例 泰坦尼克获救预测”。基本上视频的总时长在1个小时左右,有分集。其中,我所选择的“凡人求索”和“自兴人工智能教育”所提供讲解中,核心内容是完全相同的,只是前者多了一集课程简介。
这是我个人的第一个数据分析实例项目,对于数据分析尚且并没有太多的见解,但也许也能够给各位初学者解决最真实的需求。我是先采取速通的手段先将整个项目走一遍,然后再分析项目的各个部分组成,然后采取相关视频的进一步讲解,最后再回归到理解代码本身。这样,基本能够对于这一个项目的这一种方法理解好。然后的话,对于进一步学习,应该就是更多的项目练习又或者是对于这个项目本身的更多样的解法,毕竟在kaggle平台上也从来不缺乏各种有趣的问题,以及来自世界各地的资深数据分析者的精彩解答!
希望看贴的你和我也能有所收获吧!谢谢你!
最后附上一张电影的剧照,让理性的数据分析之余,体会感性的影视之美