机器学习
Machine Learning
Rover Ramble
这个作者很懒,什么都没留下…
展开
-
流形学习降维code
# Refer:# https://leovan.me/cn/2018/03/manifold-learning/# https://github.com/lmcinnes/umap#import numpy as npimport pandas as pdfrom sklearn.cluster import KMeansfrom sklearn import manifold, datasets, metricsfrom sklearn.utils import check_rand.原创 2021-08-04 10:53:11 · 285 阅读 · 0 评论 -
Hive SQL 计算AUC
前置条件: 数据表中已有正负样本标签,和预测分值。TRUE, 9FALSE, 8TRUE, 7FALSE, 6这四个样本对应的AUC是0.75。-- ########## 测试一:##########Lable为True / False.create table tmp.test_score_label( score int, label boolean);insert into tmp.test_score_label values (9,...原创 2020-09-01 11:11:02 · 3658 阅读 · 0 评论 -
SVM训练后的模型参数中要保存支持向量?
svm模型学到的是什么?模型存储了哪些参数?为什么只需保存支持向量?高维映射和核方法?高维映射显然可以提高模型的拟合能力,也就是准确度。理论上做完高维映射以后的LR,准确度应该是跟SVM会是一样的。那我们为什么不把LR也高维映射一下呢?别忘了,做高维映射是有代价的,计算高维映射的过程太费时间了。你可能会说,我们不是还有核方法吗?对啊,确实可以用核方法避开高维映射计算,那对应也是有代价的,我们得保存下来所有训练样本。保存所有训练样本对于样本过大的时候,LR几乎是不可接受的。SVM强就强在,它根本不需要保原创 2020-06-27 15:51:22 · 2469 阅读 · 0 评论 -
SVM参数理解和分类实践
sklearn中svm.SVC()有比较重要的参数C和gamma,默认使用径向基核(kernel=‘rbf’)。RBF的核函数:K(x,z)=exp(−γ∥x−z∥2), γ>0K(x,z)=exp(-\gamma\|x-z\|^2),\, \gamma>0K(x,z)=exp(−γ∥x−z∥2),γ>0高斯核的RBF时,核函数:K(x,z)=exp(−∥x−z∥22⋅δ2)K(x,z)=exp(-\dfrac{\|x-z\|^2}{2\cdot \delta^2})K(x,z)=ex原创 2020-05-22 15:39:31 · 1236 阅读 · 0 评论 -
随机森林算法简介
随机森林(Random Forest) 实际上是一种改进的bagging方法,它将CART树用作bagging中的模型。普通决策树在节点上所有的样本特征中选择一个最优的特征来作为左右子树的划分,随机森林(RF)通过随机选择节点上的一部分特征,然后再这些随机算则的样本特征中,选择一个最优的特征作为左右子树的划分,从而增强了泛化能力。相当于对于样本和特征都进行了采样。随机森林算法流程:输入:样本集D={(x,y1),(x2,y2),…(xm,ym)},弱分类器迭代次数T。输出:最终的强分类器f(x)原创 2020-05-19 14:34:40 · 1484 阅读 · 0 评论 -
朴素贝叶斯法的参数估计理论
贝叶斯的参数估计朴素贝叶斯方法需要知道先验概率,此时P(Yi)P(Y_i)P(Yi)是先验概率,P(X∣Yi)P(X|Y_i)P(X∣Yi)是类的条件概率密度。P(Yi)P(Y_i)P(Yi)容易得到,对类的条件密度的估计存在两个问题:1,实际的样本对于类条件概率的估计来说,太少了;2,有时特征空间的维度太高,计算复杂度太高。为了降低估计难度,我们可以将类条件密度参数化,比如用正态分布来估计P(X∣Yi)P(X|Y_i)P(X∣Yi)(极大似然)。再来一遍:根据贝叶斯公式,利用先验概率和原创 2020-05-18 16:02:21 · 1440 阅读 · 0 评论 -
朴素贝叶斯进行垃圾邮件分类原理
条件概率公式:P(A∣S)=∣A∩S∣∣S∣=P(A∩S)P(S)P(A|S)=\dfrac{|A\cap S|}{|S|}=\dfrac{P(A \cap S)}{P(S)}P(A∣S)=∣S∣∣A∩S∣=P(S)P(A∩S)推出:P(AS)=P(S)P(A∣S)P(AS)=P(S)P(A|S)P(AS)=P(S)P(A∣S)P(a,b∣c)=P(a,b,c)P(c)=P(a,b,c)P(b,c)⋅P(b,c)P(c)=P(a∣b,c)P(b∣c)or=P(b∣a,c)P(a∣c)\begin{原创 2020-05-17 14:01:52 · 2891 阅读 · 0 评论 -
XGBoost原理小结
XGBoost(eXtreme Gradient Boosting) 是梯度提升树算法的一种流行且高效的开源实现。梯度提升(Gradient Boosting)是一种监督式集成学习算法,它尝试将一组较简单、较弱的模型的一系列估计值结合在一起,从而准确地预测目标变量。XGBoost 在机器学习竞赛中表现出色。得益于大量的超参数可进行优化和调整来改进拟合效果,XGBoost能够Robust地处理各种数...原创 2020-05-05 23:09:22 · 457 阅读 · 0 评论 -
GBDT原理小结
提升树提升树(BoostingTree)其实是决策树的加法模型,采用了前向分步算法。前向分步算法:初始提升树f_0(x)=0,第m步的模型:fm(x)=fm−1(x)+T(x;Θm)f_m(x)=f_{m-1}(x)+T(x;\Theta_m)fm(x)=fm−1(x)+T(x;Θm)其中T(x;Θm)T(x;\Theta_m)T(x;Θm)为决策树,Θ\ThetaΘ表示决策树的参...原创 2020-05-01 16:05:04 · 150 阅读 · 0 评论 -
彻底理解支持向量机(二)
线性SVM的对偶问题最大间隔的优化问题: min12∥ω∥2s.t. yi(ωTxi+b)≥1,i=1,...,nmin \frac{1}{2}\|\omega\|^2 \quad s.t.\, y_i(\omega^Tx_i + b) \ge 1, i=1,...,nmin21∥ω∥2s.t.yi(ωTxi+b)≥1,i=1,...,n这是一个凸二次优化问题,转化为拉格朗日对偶问...原创 2020-04-27 15:17:35 · 247 阅读 · 0 评论 -
彻底理解支持向量机(一)
SVM学习的思想是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。两类样本的情况,离分类面最近的样本到分类面的距离称为分类间隔,最优超平面又叫最大间隔超平面。支持向量就是决定最大间隔超平面的数据点。考虑二维空间中两条极端直线之间的间隔:line1: ω⋅x+b=1\omega \cdot x + b = 1ω⋅x+b=1 上有一点C1(0, (1-b)/w)line2: ω⋅x+...原创 2020-04-26 01:40:55 · 1452 阅读 · 0 评论 -
深入浅出决策树算法
信息量:I(x)=−log2p(x)I(x) = -log_{2}p(x)I(x)=−log2p(x)0<=p(x)<=1, -log(p(x))是>=0且单调减的,所以信息量的大小和事件发生的概率成反比发生概率越高的事件,其所携带的信息量越低。信息熵用来衡量数据分布的混乱程度(不纯度)。信息熵是用来衡量事物不确定性的。信息熵越大,事物越具不确定性,把它搞清楚需...原创 2020-04-22 19:28:18 · 534 阅读 · 0 评论 -
逻辑回归的原理推导
LR用于解决二分类问题。可以认为LR模型拟合的是z=w*x+b 这条直线(分类边界),使得尽可能地将数据中的两个类别正确的分开。预测函数:hω(x)=g(ωTx)=11+e−ωTxh_{\omega}(x) = g(\omega^{T}x) = \frac{1}{1+e^{-\omega^{T}x}}hω(x)=g(ωTx)=1+e−ωTx10≤hω(x)≤10\le h_{\omega...原创 2020-04-21 19:39:05 · 231 阅读 · 0 评论 -
LR的效果比GBDT的好?
高维稀疏特征的时候,lr 的效果会比 gbdt 好。为什么呢?假设有1w 个样本, y类别0和1,100维特征,其中10个样本都是类别1,而特征 f1的值为0,1,且刚好这10个样本的 f1特征值都为1,其余9990样本都为0(在高维稀疏的情况下这种情况很常见),我们都知道这种情况在树模型的时候,很容易优化出含一个使用 f1为分裂节点的树直接将数据划分的很好,但是当测试的时候,却会发现效果很...转载 2020-04-16 16:11:13 · 604 阅读 · 0 评论 -
xgboost调参实践
xgboost调参笔记complete-guide-parameter-tuning-xgboostgithub code: Parameter_Tuning_XGBoost_with_Example中文翻译以二分类为例,主要思路就是用网格搜索做参数调优。数据源:如果找不到合适的二分类数据,可以用from sklearn.datasets import make_hastie_10_2...原创 2020-04-14 16:37:59 · 308 阅读 · 2 评论 -
XGBoost和GBDT的区别
大牛的总结如下:1. 传统GBDT以CART作为基分类器,XGBoost还支持线性分类器,这个时候XGBoost相当于带L1和L2正则化项的Logistic回归(分类问题)或者线性回归(回归问题)。2. 传统的GBDT只用了一阶导数信息(使用牛顿法的除外),而XGBoost对损失函数做了二阶泰勒展开。并且XGBoost支持自定义损失函数,只要损失函数一阶、二阶可导。3. XGBoost...原创 2020-04-01 11:56:00 · 6419 阅读 · 0 评论 -
偏差和方差的简单理解
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。给定学习任务,假定我们能够控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生显著...原创 2020-03-21 23:47:44 · 231 阅读 · 0 评论 -
模型融合的blending方法
模型融合有bagging, stacking, boosting,居然还有个blending!初学,初学^_^。https://www.cnblogs.com/makefile/p/stacking.html这篇文章写的很清楚,以下是部分原文。------------------------------------BaggingBagging的代表算法是随机森林,简单说下随机森林...转载 2020-03-06 14:08:41 · 6354 阅读 · 0 评论 -
LR与Linear SVM的区别与联系
LR和Linear SVM的相同点都是监督的分类算法都是线性分类算法另外这里需要说的就是LR也是可以加核函数的至于为什么不用,是原因的,后面再说。都是判别模型判别模型和生成模型是两个相对应的模型。判别模型是直接生成一个表示P(Y|X)P(Y|X)或者Y=f(X)Y=f(X)的判别函数(或预测模型)生成模型是先计算联合概率分布P(Y,X)P(Y,X)然后通过贝叶斯公式转化为条件概率...转载 2020-03-03 17:06:03 · 178 阅读 · 0 评论 -
计算条件熵的小例子
一个二进制源X发出符号集为{-1,1},经过离散无记忆信道传输,由于信道中噪音的存在,接收端Y收到符号集为{-1,1,0}。已知:P(x=-1)=1/4,P(x=1)=3/4,P(y=-1|x=-1)=4/5,P(y=0|x=-1)=1/5,P(y=1|x=1)=3/4,P(y=0|x=1)=1/4求:H(Y|X)。H(Y|X)=p(x=-1)*H(y|x=-1) + p(x=1)*H(y...原创 2020-03-02 18:15:39 · 4239 阅读 · 0 评论 -
极大似然与最大期望EM
https://zhuanlan.zhihu.com/p/36331115极大似然估计,是参数估计的方法之一。说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,通过若干次试验,观察其结果,利用结果推出参数的大概值。用一句话概括就是:知道分布结果,反推分布的参数θ。注意:EM算法和极大似然估计的前提是一样的,都要假设数据总体的分布,如果不知道数据分布,是无法使用EM和极...原创 2020-02-09 19:08:03 · 803 阅读 · 0 评论 -
生成模型和判别模型
监督学习的任务:学习一个模型,应用这一模型,对给定的输入预测相应的输出。这一模型的一般形式为一个决策函数或者条件概率分布:1. 决策函数y=f(x)y=f(x)直接得到 输入 xx 到 输出 yy(某个类别)的映射函数。(例如神经网络和SVM等属于这种)2. 条件概率分布P(y|x)P(y|x)预测时用 最大后验概率(MAP) y=argmaxyiP(yi|x)y=argma...原创 2020-02-08 22:32:43 · 147 阅读 · 0 评论 -
梯度下降法与SGD
梯度是一个矢量,有大小和方向。梯度始终指向损失函数中增长最快的方向。梯度下降法算法会沿着负梯度的方向走一步,以便尽快降低损失。梯度下降法要使梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反放向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。梯度下降法算法用梯度乘以一个称为...原创 2020-02-08 21:56:33 · 631 阅读 · 0 评论 -
过拟合与正则化
降低过拟合的方法有:正则化 随机失活(dropout) 逐层归⼀化(batch normalization) early stopping那么问题来了:1、过拟合的解决方式有哪些,L1和L2正则化都有哪些不同,各自有什么优缺点?2、L1正则化可以得到稀疏解,L2正则化可以得到平滑解,这是为什么呢?3、怎样从数学角度解释,L2正则化能提升模型的泛化能力?先看下面文章,理解L1,L...原创 2020-02-07 23:10:00 · 106 阅读 · 0 评论