![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据挖掘
文章平均质量分 70
dastu
这个作者很懒,什么都没留下…
展开
-
学习笔记——随机森林
准确地说,随机森林的工作原理如下:从数据集(表)中随机选择k个特征(列),共m个特征(其中k小于等于m)。然后根据这k个特征建立决策树。重复n次,这k个特性经过不同随机组合建立起来n棵决策树(或者是数据的不同随机样本,称为自助法样本)。对每个决策树都传递随机变量来预测结果。存储所有预测的结果(目标),你就可以从n棵决策树中得到n种结果。计算每个预测目标的得票数再选择模式(最常见的目标变量)。换句话说,将得到高票数的预测目标作为随机森林算法的最终预测。针对回归问题,随机森林中的决策树会预测Y的值(转载 2021-02-27 19:27:43 · 528 阅读 · 0 评论 -
学习笔记——GBDT
GBDT梯度提升决策树,是一种典型的boosting的集成学习算法,也就采用的加法模型,通过若干个基学习器的结果进行相加得到最终的结果。一.GBDT的训练过程GBDT通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练。对弱分类器的要求一般是足够简单,并且是低方差和高偏差的。因为训练的过程是通过降低偏差来不断提高最终分类器的精度。GBDT的基学习器一般为cart树,也就意味着每一轮迭代都产生一颗cart树(针对分类问题有不同,后面讨论)。因为单颗cart树是一个原创 2021-02-26 16:22:47 · 317 阅读 · 0 评论 -
学习笔记——机器学习中怎么选择特征?
一.前言在机器学习中,特征往往对模型整体表现的影响非常大。而现实问题中,特征数量往往会非常大,而处理庞大的特征往往比较困难,所以就有了各种的降维方法。降维的方法主要分为特征抽取 (Feature Extraction) 和特征选择 (Feature Selection) 两种。特征抽取是指在原来特征的基础上,形成新的特征。抽取后的新特征是原来特征的一个映射。经典的特征抽取方法有主成分分析和线性评判分析。但是特征抽取后的新特征的空间结构被改变,因此无法进行后续预测模型的建立。特征选择是指直接删除不相关原创 2021-01-17 20:40:08 · 1591 阅读 · 0 评论 -
学习笔记——结巴分词
一.前言结巴分词是一种文本领域常用的分词方法,目前已经在github上开源。其主要利用统计词典和当前文本,来推出前缀词典。基于前缀词典来构造一个前缀树,利用前缀树可以构造出有向无环图。最后通过动态规划算法,来计算得到最大概率路径,从而推出最终的切分形式。二.分词步骤以‘去北京大学玩’这个句子为例1.统计词典:分别为词和对应的词频北京大学 1200北京 30000大学 3500去 12550玩 3000北 60000京 45000大 300原创 2021-01-02 09:28:35 · 281 阅读 · 0 评论 -
学习笔记——XGBoost理解
一.前言XGB的推导过程见:https://blog.csdn.net/weixin_44467105/article/details/111810895基于上述推导,可以得到cart回归树的分裂标准。但是在回归树分裂的过程中,如何利用分裂标准找到最优切分点实际上在论文中有两个方法:贪心算法近似算法二.贪心算法这里的贪心算法实际就是在之前决策树中利用到分裂方法。基于某种标准(GINI系数/均方误差/信息增益比等),每次依次遍历所有特征和所有特征的取值,通过线性扫描来找到最优分割点。其流程如原创 2020-12-28 22:15:51 · 469 阅读 · 0 评论 -
学习笔记——XGBoost(极端梯度提升)
一. XGBoost损失函数GBDT损失函数L(yi,ft−1(x)+ht(x))L(y_i,f_{t-1}(x)+h_t(x))L(yi,ft−1(x)+ht(x))XGBoost在此基础上加入了正则化项Ω(ht)=γJ+λ2∑j=1Jwtj2\Omega(h_t)=\gamma J+\frac{\lambda}{2}\sum_{j=1}^J w_{tj}^2 Ω(ht)=γJ+2λj=1∑Jwtj2J为叶子节点个数,wtjw_{tj}wtj为叶子节点的输出值。所以整体的损失函数就原创 2020-12-27 20:57:49 · 793 阅读 · 2 评论 -
学习笔记 ——GBDT(梯度提升决策树)
一.前言GBDT(Gradient Boosting Decision Tree)梯度提升决策树,通过多轮迭代生成若干个弱分类器,每个分类器的生成是基于上一轮分类结果来进行训练的。GBDT使用的也是前向分布算法,这一点和Adaboost类似,但不同的是,GBDT的弱分类器一般为Cart树(Adaboost一般不做限制)。在GBDT中,前一轮学习到的弱学习器为ht−1(x)h_{t-1}(x)ht−1(x),组合得到的强学习器为ft−1(x)f_{t-1}(x)ft−1(x),其损失函数为L(y,f原创 2020-12-25 16:25:16 · 511 阅读 · 1 评论 -
学习笔记——Adaboost
1. 提升方法的基本思路1.Kearns 和 Valiant首先提出了“强可学习” 和 “弱可学习”的概念。指出:在概率近似正确学习的框架中,一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确的概率很高,那么就称这个概念是强可学习的;一个概念,如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,那么就称这个概念是弱可学习的。后来Schapire证明一个概念强可学习的充分必要条件是这个概念是弱可学习的。2.这样一来,问题便成为,在学习中,发现“弱可学习算法”,能否将它提原创 2020-12-24 18:18:20 · 650 阅读 · 0 评论 -
学习笔记——集成学习总结,包含: Bagging、Boosting、Stacking、Blending
一.基本思想在机器学习的问题中,我们目标是构建模型来作出准确的预测。但实际上,单个的模型往往难以有比较好的预测效果。所以我们通过学习多个弱学习器,并最终进行组合的方法,来构造强学习器,从而达到更好的预测效果。集成学习常见的种类:baggingboostingstackingblending其中bagging和boosting是最常见的两种。二.Stacking我们以两层的Stacking为例(实际可以多层),第一层为两个模型M1,M2,第二层为一个模型M3。对于整体的数据集划分为Tra原创 2020-12-23 17:27:56 · 549 阅读 · 0 评论 -
一文理清楚:熵,条件熵,KL散度(相对熵),交叉熵,联合熵,信息增益,信息增益比,GINI系数
熵熵是表示随机变量不确定性的度量。设XXX是一个有N个取值有限的随机变量,其概率分布为:P(X=i)=pi,i=1,2...N P(X=i)=p_i , i= 1, 2 ...NP(X=i)=pi,i=1,2...N则随机变量X的熵为:H(X)=−∑i=1NpilogpiH(X)=-\sum_{i=1}^Np_i \log p_iH(X)=−i=1∑Npilogpi在这里熵的大小与XXX取值的大小无关,只与XXX的分布有关。从H(x)H(x)H(x)的取值可以得出,0<=H(原创 2020-12-12 14:41:34 · 1079 阅读 · 0 评论 -
比较 牛顿法与梯度下降法
这里主要是对比两者不同,和优缺点,具体的两者的推导过程可以参考https://blog.csdn.net/weixin_44467105/article/details/104841966一.对于一阶导和二阶导的理解。网上大部分都是说由于牛顿法用了二阶导,而梯度下降算法用了一阶导,所以牛顿法更快,基本都没说具体原因,这里我结合下自己对于数学的理解,谈谈对于这个点的理解,如果不对,希望也能有人指...原创 2020-03-18 21:20:23 · 764 阅读 · 0 评论 -
支持向量机(SVM)与逻辑回归(LR)对比
相同:1.本质都是线性分类器,都是要求一个最佳分类的超平面2.都是监督模型3.都是判别模型 判别模型有:KNN,SVL,LR, 生成模型:朴素贝叶斯, 马尔可夫不同点:1.损失函数不同,lr是交叉熵损失,SVM合页损失函数2.SVM考虑分类边界线附近的样本(决定分类超平面的样本)。在支持向量外添加或减少任何样本点对分类决策面没有任何影响;LR受所有数据点的影响。直接依赖数据分布,每...原创 2020-03-17 16:05:50 · 2006 阅读 · 0 评论 -
批量梯度下降(BGD),随机梯度下降(SGD),小批量梯度下降(MBGD)对比理解
1.批量梯度下降(BGD)我们所说的梯度下降算法一般都默认是批量梯度下降。我们用每个样本去计算每个参数的梯度后,要将这个梯度进行累加求和注意这里有一个求和符号,意思就是我们每次计算参数都是用全部的样本来计算这个参数的变化。优点:1.每次都使用全部全部数据,能更好的代表样本总体,从而更好的指示了正确的梯度下降的方向。2.对于凸最优化问题,一定能够收敛的全局最优缺点:每次都使用全部样本...原创 2020-03-15 17:09:05 · 922 阅读 · 0 评论 -
Python: sklearn库fit_transform()和transform()函数
fit_transform()和transform()都是做标准化用的。在做标准化时我们需要求到标准差和均值才能做标准化,而fit_transform()就是先求标准差和均值,再做标准化。对于transform()就没有求标准差和均值,直接做标准化,它用到的方差和均值是由前面的fit_transform()求来的。在transform()前必须有fit_transform(),因为transf...原创 2020-03-15 14:44:03 · 612 阅读 · 0 评论 -
通俗易懂理解牛顿法
机器学习算法中经常碰到非线性优化问题,如 Sparse Filtering 算法,其主要工作在于求解一个非线性极小化问题。在具体实现中,大多调用的是成熟的软件包做支撑,其中最常用的一个算法是 L-BFGS。为了解这个算法的数学机理,这几天做了一些调研,现把学习过程中理解的一些东西整理出来。目录链接(1) 牛顿法(2) 拟牛顿条件(3)&nbs...转载 2020-03-13 15:26:04 · 428 阅读 · 0 评论 -
关于逻辑回归的理解与笔记
以下为自己总结逻辑回归的一些点,字写的一般,请见谅。大致分为:1.两种推出损失函数的方法(本质相同)2.逻辑回归线性分类与非线性分类的理解3.逻辑回归如何做多分类4.逻辑回归正则化5.逻辑回归梯度下降的推导过程由于是总结,所以很多没有很细节,所以后面可能会关于细节问题细说...原创 2020-03-11 14:51:33 · 270 阅读 · 0 评论 -
xgboost与gdbt区别比较
1.从本质上看gbdt是机器学习算法的一种,xgboost是该算法的具体工程实现2.基分类器gbdt采用cart作为基分类器,而xgboost的基分类器可以是线性的3.防止过拟合xgboost在目标函数中显式的加入了正则化项来控制模型的复杂度4.数据的使用gbdt每轮迭代都使用全部数据,xgboost则可以对数据进行采用5.对缺失值处理XGBOOST可以自动学习出缺失值的分裂方向...原创 2020-03-09 00:00:47 · 983 阅读 · 0 评论 -
感知机学习算法(对偶形式)
原创 2020-02-25 22:45:07 · 378 阅读 · 0 评论 -
理解K折交叉验证
k 折交叉验证第一步,不重复抽样将原始数据随机分为 k 份。第二步,每一次挑选其中 1 份作为测试集,剩余 k-1 份作为训练集用于模型训练。第三步,重复第二步 k 次,这样每个子集都有一次机会作为测试集,其余机会作为训练集。在每个训练集上训练后得到一个模型,用这个模型在相应的测试集上测试,计算并保存模型的评估指标,第四步,计算 k 组测试结果的平均值作为模型精度的估计,并作为当前 k...原创 2020-02-25 22:21:56 · 4527 阅读 · 2 评论 -
一文理清楚,准确率,精度,召回率,真正率,假正率,ROC/AUC
一.混淆矩阵如上图为一个混淆矩阵,True Positive (真正, TP)被模型预测为正的正样本;True Negative(真负 , TN)被模型预测为负的负样本 ;False Positive (假正, FP)被模型预测为正的负样本;False Negative(假负 , FN)被模型预测为负的正样本;相对应的,True Positive Rate(真正率 , TPR)或灵...原创 2020-02-14 15:53:24 · 2253 阅读 · 0 评论 -
聚类分析(三)——DBSCAN算法
一.简介DBSCAN算法是一种基于密度的聚类算法。基于密度的聚类算法会寻找被低密度区域分离的高密度区域。.该算法我们首先需要将所有的点分为:核心点,边界点,噪声点。区分这些点的依据是根据我们提前给出的MinPts和Eps,这里假设我们提前给定MinPts=7核心点:如果该点的给定邻域内点的个数超过给点的阈值MinPts。下图的点A,以A为圆心,Eps为半径的区域内共有7个点(包括点A和...原创 2020-02-11 21:51:28 · 1765 阅读 · 0 评论 -
聚类分析(二)——二分K均值
一般的K均值,所分成的簇往往是局部最优,而不是全局最优,比如下图,簇也不会再更新了,但显然没达到我们的要求。算法思想:顾名思义,二分k均值就是每次将数据集一分为二,即k均值算法中的k值为2,第一次是在整个数据集上划分,这里没什么异议,从第二次开始,每次划分的时候就要选取使整个数据集误差平方和最小的一个类进行一分为二了,以此进行下去直到分成我们想要的k类。二分k均值的伪代码如下:将所有点看...原创 2020-02-10 15:24:51 · 2865 阅读 · 0 评论 -
聚类分析(一)-K均值
一.K均值的过程首先,选择K个初始质心,其中K是用户指定的参数,即所期望的簇的个数。每个点指派到最近的质心,而指派到一个质心的点集为一个簇。然后,根据指派到簇的点,更新每个簇的质心。重复指派和更新步骤,直到簇不发生变化,或等价地,直到质心不发生变化。所以根据这个过程,我们需要在这个过程中关注两个问题:1.如何选择初始质心 2.怎么决定将点指派到哪个质心 3.怎么计算质心二.K均值需要注意的...原创 2020-02-10 14:48:53 · 3234 阅读 · 0 评论 -
关联分析(二)Apriori算法理解与介绍
Apriori算法理解与介绍一.基本概念1.基于先验原理的剪枝先验原理:如果一个项集是频繁的,则它的所有子集一定也是频繁的。相反,如果一个项集是非频繁的,则他的所有超集也是非频繁的。先验原理的理解也很简单,将支持度的公式列出来,我们可以发现,项集的支持度不会小于它的超集。基于这个原理,如果项集{x,y}是非频繁的,则我们不用去判断{x,y,z},因为肯定是非频繁的。这就是基于支持度的剪枝...原创 2020-01-29 22:43:02 · 1960 阅读 · 0 评论 -
关联分析(一)基本概念和内容简介
一基本概念原创 2020-01-27 16:13:42 · 1242 阅读 · 0 评论