首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Titanic生还预测(四)

本节介绍sklearn中的主要分类算法,并使用GradientBoosting方法进行预测。

sklearn中的主要分类算法如下:

使用linear_model模块的LinearRegression方法同样可以解决二分类问题。

1. 决策树(DecisionTree)

决策树算法采用自顶向下的递归方法,基本思想是以信息熵为度量构造一颗熵值下降最快的树,叶子节点处熵值为零。属性的信息增益越大,对样本的熵减少的能力更强,使得数据由不确定性变确定性的能力越强。决策树分类器直观看上去就像判断模块和终止块组成的流程图,终止块表示分类结果,判断模块表示对一个特征取值的判断。

2. 支持向量机(SVM, Support Vector Machine)

支持向量机使用一种非线性映射,把原训练数据映射较高维上,在新的维上,搜索最佳分类超平面,即将一个类的元组与其他类分离的“决策边界”。支持向量机具有对复杂非线性边界的建模能力,不容易过分拟合。

3. 朴素贝叶斯(Naive Bayes)

朴素贝叶斯基于类条件独立性假设(attribute conditional independence assumption)。对于待分类项X,求解使得P(Ci|X)最大化的分类Ci。通过贝叶斯定理,并使用最大似然估计(MLE,Maximum Likelihood Estimation)对模型进行训练。

4. K近邻算法(KNN,K-nearest-neighbor-classifier)

K近邻算法将所有训练元组(n个属性)存在n维模式空间中,当给定一个未知元组时,在模式空间中搜索出最接近未知元组的k个训练元组。

K近邻算法是一种惰性学习法(Lazy leaner),它简单存储训练元组,并一直等待,直到给定一个检验元组才进行泛化,以便根据与存储的训练元组的相似性对该元组进行分类。

其他分类方法均为急切学习法(Eager leaner),在接收检验元组前就构造泛化模型(分类模型),学习后的模型已就绪,并急于对未见过的元组进行分类。

5. 神经网络

神经网络是一组连接的输入/输出单元,每个连接都与一个权重相关联,本质是一种特殊的有向图。

每个输出单元取前一单元的加权和作为输入,应用一个非线性(激活)函数作用于加权和输入。神经元函数只对输入变量(指向它的节点的值)线性组合后的结果进行一次非线性变换。

6. 集成方法

(1)随机森林(RF,RandomForest)

随机森林是包含多个决策树的分类器,以决策树为基学习器构建Bagging集成,并进一步在决策树的训练过程中引入了随机属性选择,对基决策树的每个节点,先从该节点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。

(2)梯度提升(GB,GradientBoosting)

梯度提升先训练一棵决策树,叶子处可以得到预测的值,以及预测之后的残差,然后基于前面决策树的残差继续训练决策树,直到预测值和真实值的残差为零。最后对于测试样本的预测值,就是前面许多棵决策树预测值的累加。

7. 逻辑回归(Logistic/Logit Regression)

逻辑回归(对数几率回归)实际是用线性回归模型的预测结果逼近真实标记的对数几率,用于因变量是二分类(0/1,True/False,Yes/No)的情况。对数几率函数(Logistic function)是一种Sigmoid函数(S形函数),将z值转化为一个接近0或1的y值,并且输出值在z=0附件变化很陡。

8. 代码实现如下

(1)导入算法

(2)加载并处理数据

(3)初始化分类算法

(4)使用交叉检验评估分类算法

(5)使用梯度提升算法进行预测,并提交结果

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180419G1Q5OD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com