①基本原理
面对一个分类问题,建立代价函数,通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏,逻辑回归是一种分类方法,主要用于二分类问题,应用于研究某些事件发生的概率
②优缺点
优点:计算代价不高,易于理解和实现
速度快,适合二分类问题
缺点:容易产生欠拟合
分类精度不高
对数据和场景的适应能力有局限性,不如决策树算法适应性那么强
③适用场景
一般分类问题都可以使用
广告点击预测
概率辅助决策
寻找危险因素
①基本原理
svm是一个二分类模型,它的基本思想是在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类,具体来说,有三种情况
当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机
当训练样本近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机
当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机
②优缺点
优点:由于svm是一个凸优化问题,所以求解的解一定是全局最优而不是局部最优
不仅适用于线性问题还适用于非线性问题(核技巧)
拥有高维样本空间的数据也能用svm,这是因为数据集的复杂度只取决于支持向量而不是数据集的维度,这在某种意义上避免了维度灾难
缺点:二次规划问题求解将涉及m阶矩阵的计算(m为样本的个数),因此svm不适用于超大数据集
③适用场景
svm尽量保持与样本间距离的性质导致它抗攻击的能力更强,和随机森林一样,这也是一个拿到数据就可以尝试一下的算法;小样本,不要求数据分布,主要用于二分类问题
①基本原理
基于条件独立的假设,先计算输入和输出的联合概率密度,然后根据所输入的x计算y的概率,然后选择具有最大后验概率的类作为它的类别
②优缺点
优点:小规模数据集表现好,适合多分类
对于在小数据集上有显著特征的相关对象,朴素贝叶斯可以对其进行快速分类
缺点:需要条件独立假设,会牺牲一定准确率,分类性能不一定高
对于连续性特征变量要求其满足正态分布
③适用场景
需要一个比较容易解释,而且不同维度之间相关性比较小的模型的时候
中文文本分类
TF-IDF文本词频统计转换
垃圾识别
情感识别
多分类实时预测(因为速度快)
推荐系统(朴素贝叶斯+协同过滤)
欺诈检测
①基本原理
本质是物以类聚
随机初始化k个聚类中心点,并计算数据中每个点到k个点的距离
将每个数据点分到距离聚类中心点最近的聚类中心中
针对每个类别重新计算聚类中心
重复上面2,3步骤,直到达到预先设置的停止条件(迭代次数,最小误差变化等)
②优缺点
优点:原理简洁明了,计算复杂度低
收敛速度快,经过几个轮次的迭代之后就可以获得不错的效果
缺点:无法解决样本不平衡问题
容易收敛到局部最优解
受噪声影响较大
结果不稳定,由于初始值随机设定,以及数据的分布情况,每次学习的结果往往会有一些差异
③适用场景
隐含类别的数据较为平衡的情况,如果隐含类别的数据量差别较大,则聚类的效果就较差
数据最好是凸数据,即隐含类别间差异越大,则聚类效果越好,因为中心点不再变化,所需要的迭代次数较少,比较容易收敛
一般作为数据预处理,或者辅助分类贴标签使用,因为在已经经过分类的数据上进行聚类,准确度会非常高
①基本原理
是一种分析,简化数据集的技术,主要用于降维
PCA从原始变量出发,通过旋转变化(即原始变量的线性组合)构建出一组新的,互不相关的新变量,这些变量尽可能多的解释原始数据之间的差异性(即数据内在的结构),它们就称为原始数据的主成分。由于这些变量不相关,因此他们无重叠的各自解释一部分差异性。依照每个变量解释的差异性大小排序,它们称为第一主成分,第二主成分,以此类推
步骤:计算协方差矩阵;计算协方差矩阵的特征值与特征向量;根据特征值大小对特征向量从上到下按行列成矩阵;取前k行即为降维到k维的数据
②优缺点
优点:降低数据的复杂性,识别最重要的多个特征
缺点:不一定需要,且可能损失有用信息
③适用场景
经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征,常常应用在文本处理,自然语言处理,人脸识别,图片识别等领域,可以做在数据预处理阶段非常重要的一环
①基本原理
决策树是一种树状结构模型,每一个根节点都是一个特征判断,它的叶子节点就是它的特征分类结果
ID3:信息增益
C4.5:信息增益比
cart分类树:gini指数
cart回归树:均方误差
②优缺点
优点:易于理解和解释,可以可视化分析,容易提取出规则
可以同时处理标称型数据和数值型数据
测试数据集时,运行速度比较快
缺点:容易过拟合,使用剪枝来避免过拟合
对缺失数据处理比较困难
③适用场景
适用于小数据集,在进行逐步应答过程中,典型的决策树分析会使用分层变量或决策节点,例如,可将一个给定用户分类成信用可靠或不可靠
①基本原理
随机森林是以决策树为基础的一种更高级的算法,像决策树一样,随机森林既可以用于分类,也可以用于回归。随机森林是用随机的方式构建的一个森林,而这个森林是有很多相互不关联的决策树组成。理论上,随机森林的表现一般要优于单一的决策树,因为随机森林的结果是通过多个决策树结果投票来决定最后的结果,简单来说,随机森林中的每个决策树都有一个自己的结果,随机森林通过统计每个决策树的结果,选择投票数最多的结果作为自己的最终结果,即三个臭皮匠顶个诸葛亮
②优缺点
优点:不易过拟合,可能比boosting更快,由于每次划分时只考虑很少的属性,因此它们在大型数据库上非常有效
有很好的方法来填充缺失值,即便有很大一部分数据缺失,仍能保持很高的准确度,给出了变量最重要的内在估计
缺点:在某些噪声较大的分类和回归问题上会过拟合
③适用场景
数据维度相对较低,同时对准确性有较高的要求时,因为不需要很多参数调整就可以达到不错的效果,基本上不知道用什么方法时都可以先试一下随机森林
一般用来作为分类算法的baseline,还可以看看特征重要性作为特征筛选的一种参考方式
①基本原理
是一个实现GBDT算法的框架,支持高效率的并行训练
在xgboost的基础上引入直方图算法和goss算法加速了运算过程
②优缺点
优点:更快的训练速度
更低的内存消耗
更好的准确率
分布式支持,可以快速处理海量数据
缺点:可能会长出比较深的决策树,产生过拟合,因此lightgbm在leaf-wise之上增加了一个最大深度限制,在保证高效率的同时防止过拟合
boosting族是迭代算法,每一次迭代都根据上一次迭代的预测结果对样本进行权重调整,所以随着迭代不断进行,误差会越来越小,模型的偏差会不断降低。由于lightgbm是基于偏差的算法,所以会对噪点较为敏感
①基本原理
在GDBT拟合残差的基础上做泰勒二阶展开,引入正则项,在工程方面实现了特征方面的并行
就是一堆cart树的集合,将每棵树的预测值加在一起得到最后的预测值。xgboost利用了损失函数二阶的导数信息,并且在目标函数之外加入了正则项,避免过拟合。
②优缺点
优点:精度更高,gbdt只用到一阶泰勒展开,而xgboost对损失函数进行了二阶泰勒展开,引入二阶导一方面是为了增加精度,另一方面也是为了能够自定义损失函数,二阶泰勒展开可以近似大量损失函数
灵活性更强:gbdt以cart作为基分类器,xgboost不仅支持cart还支持线性分类器,使用线性分类器的xgboost相当于带L1和L2正则项的逻辑回归或线性回归。此外,xgboost支持自定义损失函数,只需函数支持一阶和二阶求导
正则化:xgboost在目标函数中加入了正则项,用于控制模型的复杂度,正则项里包含了树的叶子节点个数,叶子节点权重的L2范式,正则项降低了模型的方差,使学习出来的模型更加简单,有助于防止过拟合
缩减:xgb在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间
列抽样:借鉴随机森林的做法,不仅能降低过拟合,还能减少计算
缺失值处理:采用的稀疏感知算法极大地加快了节点分裂的速度
可以并行化操作
缺点:虽然利用预排序和近似算法可以降低寻找最佳分裂点的计算量,但在节点分裂过程中仍需要遍历数据集
预排序过程的空间复杂度过高,不仅需要存储特征量,还需要存储特征对应样本的梯度统计值的索引,相当于消耗了两倍的内存
①基本原理
catboost是一种基于对称决策树为基学习器实现的参数较少,支持类别型变量和高准确性的GBDT框架,主要解决的痛点是高效合理的处理类别型特征,它是由categorical和boosting组成,此外,catboost解决了梯度偏差及预测偏移的问题,从而减少过拟合的发生,进而提高算法的准确性和泛化能力
与xgboost,lightgbm相比的创新点还有:
嵌入了自动将类别型特征处理为数值型特征的创新算法,首先对categorical features做一些统计,计算某个类别特征出现的频率,之后加上超参数,生成新的数值型特征
catboost还使用了组合类别特征,可以利用到特征之间的联系,极大丰富了特征维度
采用排序提升的方法对抗训练集中的噪声点,从而避免梯度估计的偏差,进而解决预测偏移问题
采用了完全对称树作为基模型
②优缺点
优点:性能卓越,在性能方面能够匹敌任何先进的机器学习算法
鲁棒性:它减少了对很多超参数调优的需求,并降低了过拟合的机会,这也使得模型变得更加具有通用性
易于使用:提供scikit-learn集成的python接口
实用:可以处理类别型,数值型特征
可扩展:支持自定义损失函数
缺点:对于类别型特征的处理需要大量的内存和时间
不同随机数的设定对于模型预测结果有一定的影响
③适用场景
作为GBDT框架内的算法,GBDT,xgboost,lightgbm能够应用的场景catboost也都适用,并且在处理类别型特征具备独有的优势,比如广告推荐领域
①基本原理
gbdt通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练,对弱分类器的要求一般是足够简单,并且是低方差和高偏差的,因为训练的过程是通过降低偏差来不断提高最终分类器的精度。弱分类器一般会选择cart回归树,由于上述高偏差和简单的要求,每个分类回归树的深度不会很深
②优缺点
优点:可以灵活处理各种类型的数据,包括连续值和离散值
使用一些比较健壮的损失函数,比如huber损失函数和quantile损失函数,对异常值的鲁棒性非常强
缺点:由于弱学习器之间存在依赖关系,难以并行训练数据
③适用场景
可以用于筛选特征
几乎可用于所有回归问题(线性/非线性)
可以用二分类问题
①基本原理
根据线性代数,我们可以定义方程xw=y,在线性回归问题中,x是我们的样本数据矩阵,y是我们的期望值向量,也就是说,对于线性回归问题,x和y是已知的,我们要解决的问题是,求取最合适的一个向量w,使得线性方程组能够尽可能满足样本点的线性分布,之后我们就可以利用求得的w,对新的数据点进行预测
②优缺点
优点:简单,存在解析解,快速
缺点:对复杂数据拟合不好,容易欠拟合
需要处理异常值,对异常值很敏感
③适用场景
自变量和因变量之间存在线性关系
低维度,而且每一维之间都没有共线性