分类算法原理以及R&Python实现
分类问题可以说是现实生活中最最重要的问题之一了。从银行分类客户到生物划分种类,基本上各行各业都存在着分类的问题。发展至今,分类算法也十分完善,其算法之多,思想之繁复可以说是机器学习中最大的分支。本专栏将从原理和实现两个角度记述分类算法。
weixin_43216017
承蒙大家关注,研究生后期到现在真的很忙,过去基本上属于有朋友问我问题我就更新一篇,现在没有时间去学习和撰写了,以后估计就是不定期更新,有机会很希望和大家交流。
展开
-
R语言:xgboost算法的实现——xgboost包
xgboost算法可以说是一个比较新兴的算法,效果也非常好,在Kaggle上已经有不少例子说明其算法的优越性甚至超过了随机森林算法。本文将主要介绍xgboost算法的R语言实现。使用的是xgboost包中的xgboost函数。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等...原创 2019-02-24 23:08:32 · 29307 阅读 · 17 评论 -
R语言:KNN算法的实现——kknn包
在前文中,我们已经介绍过了KNN算法的原理以及其python实现,具体请见KNN算法及其python实现。本文将主要介绍LNN算法的R语言实现,使用的R包是kknn。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划分在等级0中,“质...原创 2019-02-24 15:59:02 · 26819 阅读 · 1 评论 -
R语言:SVM的实现——e1071
SVM是比较常用的分类算法,其核心采用的是线性分类器,如果数据在当前维度下不可分割,可以映射到更高的维度之上。本文将着重介绍SVM算法的R语言实现。使用的是e1071包中的svm函数。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划...原创 2019-02-23 23:58:07 · 38963 阅读 · 9 评论 -
R语言:随机森林的实现——randomForest
在前一篇文章中,我们介绍了随机森林,本文我们将着重介绍其R语言的实现。使用randomForest包中的randomForest函数数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划分在等级0中,“质量”为{6,7,8}的观测划分在等...原创 2019-02-23 16:44:03 · 90713 阅读 · 25 评论 -
分类算法 -- 随机森林
       之前我们介绍了集成学习中的bagging算法以及决策树中的CART算法,其实在大家理解了这两个算法之后,随机森林就比较简单了,因为随机森林算法就是bagging+CART。       随机森林方法的框架就是bagging的框架,其中每一个弱分类器就是CART决策树。随机森林算法可以说原创 2019-02-22 18:20:02 · 3410 阅读 · 0 评论 -
R语言:bagging算法的实现——adabag
在前一篇文章中,我们介绍了bagging算法,本文我们将着重介绍其R语言的实现。使用adabag包中的bagging函数数据简介原创 2019-02-22 16:30:29 · 6048 阅读 · 5 评论 -
分类算法 -- 集成学习bagging算法(理论介绍)以及bagging和Adaboost的区别
在前一篇中,我们介绍了集成学习中的Adaboost算法。本文中,我们将介绍集成学习中另一个很有名的算法----bagging算法。原创 2019-02-22 15:58:23 · 5296 阅读 · 3 评论 -
R语言:Adaboost算法的实现——adabag
在前一篇文章中,我们介绍了Adaboost算法,本文我们将着重介绍其R语言的实现。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划分在等级0中,“质量”为{6,7,8}的观测划分在等级1中。数据下载戳我因变量:质量自变量:非挥发性...原创 2019-02-21 23:33:04 · 11582 阅读 · 9 评论 -
分类算法 -- 集成学习Adaboost算法(理论介绍)
集成学习(ensemble learning)的思路是“三个臭皮匠顶个诸葛亮”。通过多个“弱学习器”投票产生结果,即形成一个“强学习器”,这样的结果最终往往可能有更强的泛化能力。本文要介绍的Adaboost算法(Adaptive Boosting 自适应增强),就是一个集成学习算法。名字还是比较形象,其自适应在于:前一个基本分类器分错的样本会在当前学习器中得到加强(权重增加),加权后的全体样本被...原创 2019-02-21 16:43:27 · 1378 阅读 · 0 评论 -
R语言:决策树ID3/C4.5/CART/C5.0算法的实现
在前文中,我们已经详细介绍了决策树算法中的ID3/C4.5/CART算法的原理,以及决策树的剪枝问题。ID3算法戳我C4.5算法戳我CART算法戳我决策树剪枝问题戳我本文将详细介绍如何用R语言实现决策树算法。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“...原创 2019-02-21 01:31:40 · 15497 阅读 · 3 评论 -
分类算法 -- 决策数CART算法
决策树常用的有ID3,C4.5和CART算法,在得到决策树之后还要对树进行剪枝。ID3算法:https://blog.csdn.net/weixin_43216017/article/details/87474045C4.5算法:https://blog.csdn.net/weixin_43216017/article/details/87609780决策树的剪枝:https://blog....原创 2019-02-18 15:40:10 · 2809 阅读 · 2 评论 -
分类算法 -- 决策树C4.5算法
在上一篇介绍ID3算法文章中,我们指出ID3算法采用信息增益作为标准,缺点在于会偏向分类更多的自变量。在本文中,我们将介绍C4.5算法,采用信息增益比代替信息增益,从而减小某一自变量分类个数的影响。我们假设使用的数据集为DDD,待计算的自变量为AAA,g(D,A)g(D,A)g(D,A)则信息增益比为:gr(D,A)=g(D,A)HA(D)g_r(D,A) = \dfrac{g(D,A)}{...原创 2019-02-18 12:53:04 · 4232 阅读 · 3 评论 -
决策树的剪枝:REP/PEP/CCP算法
当我们输入的原始数据有较多的变量时,通过决策树算法生成的决策树可能会非常的庞大。这样的一颗决策树在训练集上有很好的表现,但是在测试集上的表现往往不甚理想,这样的问题也被叫做过拟合问题。面对这样的问题,我们一般所采用的方法是对决策树进行剪枝操作。决策树的过拟合问题决策树算法生成的决策树非常庞大,每个变量都被详细地考虑过。在每一个叶节点上,只要继续分支会有信息增益的情况,不管信息增益有多大,都会进...原创 2019-02-18 11:25:08 · 14048 阅读 · 10 评论 -
分类算法 -- 决策树ID3算法
决策树算法是非常常用的分类算法,其分类的思路非常清晰,简单易懂。并且它也是一个很基础的算法,集成学习和随机森林算法是以其为基础的。算法简介对于决策树算法,其输入是带有标签的数据,输出是一颗决策树。其非叶节点代表的是逻辑判断;叶节点代表的是分类的子集。决策树算法原理是通过训练数据形成if-then的判断结构。从树的根节点到叶节点的每一条路径构成一个判断规则。我们需要选择合适的特征作为判断节点,...原创 2019-02-17 01:27:43 · 25626 阅读 · 8 评论 -
分类算法 -- 逻辑回归方法(理论与python实现)
逻辑回归算法是目前机器学习中比较主流的一种分类算法。通常我们指的分类问题都是一个二分类问题,逻辑回归方法也主要是针对二分类问题的。但是,在实际应用中也存在很多多分类问题,比如我们预测一场足球比赛的结果,这就有胜负平三种可能,也即是三种分类。多分类问题我们将在文末加以说明。算法步骤逻辑回归问题其实是将回归的思想用于分类问题Step 1: 通过自变量利用回归分析的思想得到因变量预测值ySte...原创 2019-02-12 01:27:35 · 4793 阅读 · 3 评论 -
分类算法 -- KNN算法 (理论与python实现)
分类算法 – KNN算法KNN(K-Nearest Neighbor)是一个分类算法,属于有监督学习。KNN思想的核心在于:近朱者赤,近墨者黑,根据新样本的邻居来判定其类别。理论说明算法概论假设我们已知n个样本的特征和标签(即所属分类),并以此作为样本集A。当输入一个没有标签的样本b时,我们可以通过比较新样本b与样本集A中数据对应的特征,然后提取出最为相似的k个数据。最后我们选取k个...原创 2019-01-29 00:13:17 · 1791 阅读 · 3 评论