机器学习
鸡汤本汤
这个作者很懒,什么都没留下…
展开
-
lightgbm早停失败
使用lightgbm,设置早停参数early_stopping_rounds=1000,但迭代到100轮就停止了。后来发现是没有设置树的数量,默认情况下,树的数量就是100棵,就是最多只能迭代100次,这样early_stopping_rounds=1000其实就相当于失效了...原创 2021-10-11 17:52:57 · 1481 阅读 · 0 评论 -
特征选择方法总结
1、方差筛选法移除低方差的特征。低方差说明特征比较均匀,区分度低。如,一列数值全为1,则这列数值的方差为0。这一列特征对于训练模型是没有意义的。使用方差筛选法的代码:from sklearn.feature_selection import VarianceThreshold# 6个样本,3维的特征向量X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1原创 2020-11-30 15:07:19 · 785 阅读 · 1 评论 -
pd.get_dummies()默认str类型才会变成onehot
以泰坦尼克号死亡率预测数据为例,(1) pd.get_dummies()不指定列如果直接使用pd.get_dummies()而不指定列,则只有那些数据类型为object,也就是str类型的列会被变成onehot如果把Cabin的类型修改为int,则此特征不会被处理为onehot(2)指定需要被onehot的列当指定了columns时,只有指定的列被处理为onehot,不管这个列数据类型是什么,都可以进行处理。...原创 2020-07-22 16:45:45 · 441 阅读 · 0 评论 -
Undefined citation warnings/I found no \citation commands --while
latex 插入文献,使用菜单键进行编译时一直出错,换成在命令行编译,成功了elsarticle-template-num是.tex文件的名字依次四个命令:pdflatex elsarticle-template-num #使用pdflatex compilebibtex elsarticle-template-num #使用bibtex compilepdflatex elsarticle-template-numpdflatex elsarticle-template-num参考:原创 2020-07-04 16:07:43 · 458 阅读 · 0 评论 -
xgboost objective和eval_metric的区别
之前对于xgboost中的两个参数objective和eval_metric一直分不清楚,不知道它们各自的作用。后来通过查找资料理清了他们之间的关系。这里记录一下。1、objectiveobjective参数代表的是模型的损失函数,也就是我们进行优化的目标。这里要注意损失函数与目标函数的区别,一般情况下,我们说的损失函数就是目标函数,但是一些模型如xgboost要求目标函数要有一阶导数和二阶导数才能进行优化,而很多目标函数是没有一阶导数或二阶导数的,所以这时就用具有相似结果的损失函数来代替(如果损失函原创 2020-06-28 13:52:50 · 3881 阅读 · 3 评论 -
bagging 与boosting的联系与区别
区别:1、样本选择上。bagging使用自助采样方法每轮抽取局部数据训练基模型,boosting使用全部样本训练基模型。2、样例权重。bagging中每个样本所占的权重是一样的,boosting中开始时样本权重一样,但在每轮的训练中会减小分类正确的样本的权重,增大分类错误的样本的权重。3、模型是否并行。bagging可以并行训练模型,boosting不能并行,一个模型训练完成之后才能训练下一...原创 2020-03-25 10:25:05 · 1278 阅读 · 0 评论 -
xgboost中用来防止过拟合的措施
1、损失函数中加入了正则化项,相当于预剪枝2、shrinkage即在迭代中为树的叶子结点乘以一个权重衰减稀疏,以削弱每棵树的影响力,为后面的树留下提升空间33、列采样,即特征采样。有按层采样和建树之前随机采样两种方式。其中按层采样是在同一层的结点进行分裂之前随机选择部分特征,对这些部分特征进行遍历,寻找最优切分点,而不用遍历全部特征。建树之前随机选择特征是在建树之前就选择部分特征,在之...原创 2020-03-17 23:00:56 · 3233 阅读 · 0 评论 -
GBDT算法原理及常见面试问题
文章目录1、介绍GBDT2、GBDT如何做特征选择3、GBDT如何构建特征4、GBDT如何做分类1、介绍GBDTGBDT是一种基于boosting集成方法的加法模型,在每一轮迭代中,产生一棵cart回归树来拟合损失函数在当前模型—也就是前t-1棵树叠加构成的模型下的负梯度值。训练过程描述如下:输入:训练数据,损失函数输出:提升树模型(1)初始化,估计使得损失函数最小化的常数值f0(x...原创 2020-03-17 22:16:50 · 562 阅读 · 0 评论 -
决策树的预剪枝和后剪枝
为了防止决策树模型的过拟合,有预剪枝和后剪枝两种剪枝方法。预剪枝:在决策树生成的过程中,预先估计对结点进行划分能否提升决策树泛化性能。如果能提升,则对此结点进行划分,否则不划分。优点:1、使用预剪枝,决策树中很多分支未展开,可以很好的防止过拟合。2、因为是在构造决策树的过程中进行的,所以时间开销比较小。缺点:1、预剪枝是基于贪心的策略。虽然一个结点进行划分不能带来泛化性能的提升,但很...原创 2020-03-11 15:25:21 · 2622 阅读 · 0 评论 -
决策树--缺失值如何处理
参考博客参考的博客中介绍得通俗易懂,大家可以看看。决策树如何处理缺失值?也就是面对两个问题:1、如果样本某个属性有缺失值,那么怎么计算使用这个属性划分结点时的信息增益呢?2、在第一步的基础上,即使信息增益计算出来了,那么由于样本这一属性值缺失了,应该将这一样本划分到哪个子结点呢?我们分别来看一下训练集、测试集上怎么处理缺失值。训练集:对于问题1,在计算某一个属性的信息增益时,如果有的...原创 2020-03-11 14:29:58 · 2199 阅读 · 0 评论 -
机器学习原理扫盲系列(三)LR与SVM的联系与区别
联系:1、都是监督学习的分类算法2、当不考虑核函数时,LR和SVM都是线性分类模型3、都是判别模型区别:1、本质上的不同是loss的不同,也就是分类原理的不同。LR的目标是最小化模型分布与经验分布之间的交叉熵SVM的目标是最大化分类间隔2、SVM决策边界只考虑分界面附近的点,即支持向量,对异常点相对不敏感,LR考虑全体数据,对异常点敏感。3、svm不能产生概率值,LR能产生概率值...原创 2020-03-07 12:15:45 · 268 阅读 · 0 评论 -
核函数及SVM核函数的选择
核函数:当数据非线性可分时,可将数据从低维空间映射到高维空间,使数据在高维空间线性可分,之后在优化时需要计算内积,复杂度很高。而核函数准确地说是一种核技巧,能够简便的计算内积,从而能够简便地解决非线性问题。SVM核函数的选择:吴恩达老师老师的建议:1、当样本特征数目远远大于样本数量时,特征维度已经够高,这个时候往往数据线性可分,可考虑使用线性核函数。2、当样本数量一般,样本特征维度也不高...原创 2020-03-06 21:48:07 · 1425 阅读 · 0 评论 -
机器学习原理扫盲系列(二)逻辑回归如何实现多分类?
三种方式1、假设类别有n个,则每一种类别训练一个logistic分类器每一个分类器能够区分某个类和其余的类。在进行预测的时候,使用n个分类器对样本进行预测,哪个类别的概率最大则将样本预测为这个类别。优点:普适性好,多少类别训练多少分类器,效率较好缺点:训练二分类器时,将一类样本标记为1,其余类别的所有样本标记为0,很可能会出现严重的样本不平衡问题,影响分类器的准确性。2、假设有n个类别,...原创 2020-03-06 18:04:02 · 668 阅读 · 0 评论 -
交叉熵理解(从信息量--熵--相对熵(KL散度)到交叉熵--对数损失函数)
在机器学习中,经常用交叉熵来衡量预测值与真实值之间的差距,要想真正理解交叉熵,我们要依次了解信息量、熵、相对熵,交叉熵实际上是相对熵的一部分。不要被这些字眼吓到,实际上我们一步步看下来还是很容易理解的。文章目录1、信息量。2、熵3、相对熵(即KL散度)4、交叉熵5、单标签多分类与多标签分类中的交叉熵1、信息量。首先我们来了解信息量,有以下两个事件事件A:巴西队进入了2018世界杯决赛圈。...原创 2020-03-06 16:33:55 · 491 阅读 · 1 评论 -
一文搞懂stacking集成方法
stacking集成方法(1)在集成学习中,将训练出的多个个体学习器(弱分类器)结合在一起的时候使用的方法叫做结合策略。(2) 个体学习器结合策略:Bagging :多个个体学习器投票(分类)或求均值(回归)boosting:多个个体学习器加权融合stacking:使用机器学习算法将个体学习器得到的结果结合在一起(3)在stacking方法中,我们把个体学习器叫做初级学习器,用于结合的...原创 2020-03-05 14:45:48 · 1864 阅读 · 0 评论 -
XGBoost推导
文章目录1、XGBoost损失函数1.1常见的损失函数(待补充)1.1.1 平方损失函数1.1.2 对数损失函数1、XGBoost损失函数XGBoost损失函数由两部分构成,一部分(第一项)是经验损失,另一部分(第二项和第三项)是正则化项。L(ϕ)=∑i=1nl(yi,yi^)+γL(\phi)=\sum_{i=1}^{n}l(y_i,\hat{y_i})+\gammaL(ϕ)=∑i=1n...原创 2020-02-10 22:16:34 · 770 阅读 · 0 评论 -
机器学习常用算法原理梳理
adaboost、GBDT、xgboost、lightgbm原理梳理与辨析首先,这四个算法都是集成算法boosting框架下的。根据boosting策略不同可以分为两大类,adaboost一类,GBDT、xgboost、lightgbm一类。adaboostGBDT、xgboost、lightgbmboosting的策略是通过改变样本权重(增大分错的样本的权重,减小分对的样本的权重)提升对...原创 2020-02-09 10:22:02 · 1246 阅读 · 0 评论 -
bagging、stacking、boosting、blending四种集成方法的分析与对比
bagging:从训练集里抽取n个子集训练n个base model,如果任务是分类的话,就采取voting(投票)的方法,如果任务是回归,就取这n个base model的均值。抽取子集时采用自助采样方法,即有放回采样,每个子集里可能有相同的样本。base model 一般都要求是相同的模型,如随机森林(RF)就是以决策树为base model,利用bagging的思想训练出来的,每个base m...原创 2019-10-16 21:48:55 · 1411 阅读 · 0 评论