基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区一起玩kaggle—kaggle介绍基于R的Kaggle实战案例详解基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区谷歌收购Kaggle在GoogleCloudNext谷歌云计算开发者大会上,华人AI学界的骄傲、谷歌云首席科学家李飞飞宣布了一则重大消息:谷歌收购Kaggle。基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区Kaggle简介Kaggle是由联合创始人、首席执行官安东尼·高德布卢姆(AnthonyGoldbloom)2010年在墨尔本创立的,主要为开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台。该平台已经吸引了数百万名数据科学家的关注,这些用户资源或许正是吸引谷歌的主要因素。公司和研究人员发布其数据,来自世界各地的统计人员和数据挖掘者竞争制作最佳模型。这种众包方法依赖于这样一个事实,即有无数的策略可以应用于任何预测建模任务,并且一开始就不可能知道哪种技术或分析人员将是最有效的。Kaggle还举办招聘比赛,数据科学家们争相在Facebook,WintonCapital和沃尔玛等领先的数据科学公司面试。基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区学习总览解题思路讲解机器学习模型和数学模型R的实现过程演示基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区首页基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区Kaggle官方介绍YourHomeforDataScienceLearntododatascienceExpandyourcareerPlaywithdata基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区解题思路了解业务背景(题目背景)创造新的特征列选择数学模型基于R实现模型结合业务背景(题目背景)给出结论基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区案例举例:泰坦尼克号—灾难机器学习泰坦尼克号(英语:RMSTitanic)是一艘奥林匹克级邮轮,于1912年4月处女航时撞上冰山后沉没。哪些因素决定了乘客的生存率?基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区登船地点泰坦尼克号由位于北爱尔兰贝尔法斯特的哈兰·沃尔夫船厂兴建,是当时最大的客运轮船,由于其规模相当一艘现代航空母舰,因而号称“上帝也沉没不了的巨型邮轮”。在泰坦尼克号的处女航中,从英国南安普敦出发,途经法国瑟堡-奥克特维尔以及爱尔兰昆士敦,计划横渡大西洋前往美国纽约市。但因为人为错误,于1912年4月14日船上时间夜里11点40分撞上冰山;2小时40分钟后,即4月15日凌晨02点20分,船裂成两半后沉入大西洋,死亡人数超越1500人,堪称20世纪最大的海难事件,同时也是最广为人知的海难之一。基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区船票基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区某新闻统计的存活率成员成员级别乘员总人数获救比率死亡比率获救人数死亡人数儿童头等舱683%17%51二等舱24100%0%240三等舱7934%66%2752女子头等舱14497%3%1404二等舱9386%14%8013三等舱16546%54%7689船员2387%13%203男子头等舱17533%67%57118二等舱1688%92%14154三等舱46216%84%75387船员88522%78%192693基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区数据字典VariableDefinitionKeysurvivalSurvival0=No,1=YespclassTicketclass1=1st,2=2nd,3=3rdsexSexAgeAgeinyearssibsp#ofsiblings/spousesaboardtheTitanicparch#ofparents/childrenaboardtheTitanicticketTicketnumberfarePassengerfarecabinCabinnumberembarkedPortofEmbarkationC=Cherbourg,Q=Queenstown,S=Southampton基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区变量说明pclass船票等级1st=Upper,2nd=Middle,3rd=Lowerage年龄年龄是小数,如果小于1,如果年龄是被估计的,它的形式是xx.5Sibsp:Sibling(兄弟姐妹)兄弟,姐妹,同父异母的弟弟,义妹Sibsp:Spouse(配偶)丈夫,妻子(包二奶和未婚夫被忽略)Parch:Parent母亲,父亲Parch:Child女儿,儿子,继女,继子有些孩子只和保姆一起旅行,因此对他们来说PARCH=0基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区评判标准Yourscoreisthepercentageofpassengersyoucorrectlypredict.Thisisknownsimplyasaccuracy”.你的分数是你正确预测的乘客的百分比。这被简单地称为“准确性”。基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区题目数据讲解Thedatahasbeensplitintotwogroups:trainingset(train.csv)testset(test.csv)训练集测试集机器学习模型基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区创造新特征列PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked103Braund,Mr.OwenHarrismale2210A/5211717.25S211Cumings,Mrs.JohnBradley(FlorenceBriggsThayer)female3810PC1759971.2833C85C313Heikkinen,Miss.Lainafemale2600STON/O2.31012827.925S411Futrelle,Mrs.JacquesHeath(LilyMayPeel)female351011380353.1C123S503Allen,Mr.WilliamHenrymale35003734508.05S603Moran,Mr.Jamesmale003308778.4583Q701McCarthy,Mr.TimothyJmale54001746351.8625E46S803Palsson,Master.GostaLeonardmale23134990921.075S913Johnson,Mrs.OscarW(ElisabethVilhelminaBerg)female270234774211.1333S1012Nasser,Mrs.Nicholas(AdeleAchem)female141023773630.0708CFamily_size基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区决策树介绍决策树是附加概率结果的一个树状的决策图,是直观的运用统计概率分析的图法。机器学习中决策树是一个预测模型,它表示对象属性和对象值之间的一种映射,树中的每一个节点表示对象属性的判断条件,其分支表示符合节点条件的对象。树的叶子节点表示对象所属的预测结果。决策树算法是一种归纳分类算法,它通过对训练集的学习,挖掘出有用的规则,用于对新集进行预测。基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区信息增益信息熵表示的是不确定度。均匀分布时,不确定度最大,此时熵就最大。当选择某个特征对数据集进行分类时,分类后的数据集信息熵会比分类前的小,其差值表示为信息增益。信息增益可以衡量某个特征对分类结果的影响大小。计算数据集中的信息熵:其中D表示训练数据集,c表示数据类别数,Pi表示类别i样本数量占所有样本的比例。特征A作用后的信息熵:其中k表示样本D被分为k个部分。信息增益表示数据集D在特征A的作用后,其信息熵减少的值:对于决策树节点最合适的特征选择,就是Gain(A)值最大的特征。基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区是否要和小伙伴一起打网球OutlookTemperatureHumidityWindyPlay?sunnyhothighfalseNosunnyhothightrueNoovercasthothighfalseYesrainmildhighfalseYesraincoolnormalfalseYesraincoolnormaltrueNoovercastcoolnormaltrueYessunnymildhighfalseNosunnycoolnormalfalseYesrainmildnormalfalseYessunnymildnormaltrueYesovercastmildhightrueYesovercasthotnormalfalseYesrainmildhightrueNo1、数据集的信息熵2、各叶节点的信息熵3、计算每个特征导致的信息增益4、选择获得最大信息增益的属性进行划分5、以此类推,递归继续划分6、当所有叶节点都是纯的,划分过程终止基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区数据集的信息熵(基于类的比例)本次数据集在包含9个yes和5个no的根节点上,对应于信息值info([9,5])=0.940位→总的信息基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区各叶节点的信息熵YESNo合计sunny235overcast404rain325合计95基于天气(outlook)的划分,在叶节点的yes和no类的个数分别是[2,3],[4,0],和[3,2],而这些节点的信息值分别是:info([2,3])=0.971位→sunnyinfo([4,0])=0.0位→overcastinfo([3,2])=0.971位→rain基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区计算每个特征导致的信息增益gain(outlook)=0.247位gain(temperature)=0.029位gain(humidity)=0.152位gain(windy)=0.048位基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区选择获得最大信息增益的属性进行划分最大信息增益:gain(outlook)=0.247位选择天气作为树的根节点的划分属性,其中一个子女节点是最纯的,并且这使它明显优于其他属性。基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区以此类推,递归继续划分当天气为晴时,所达到的节点上的可能的深一层的分支除天气外,其他属性产生的信息增益分别为:gain(temperature)=0.571位gain(humidity)=0.971位gain(windy)=0.020位基于R的Kaggle实战案例详解讲师余一德DATAGURU专业数据分析社区以此类推,递归继续划分天气晴分支,气温,gain(temperature)=0.571位天气晴分支,湿度,gain(humidity)=0.971位天气晴分支,有风,gain(windy)=0.020位天气雨分支,气温,gain(temperature)=0.020位天气雨分支,湿度,gain(humi