
机器学习
文章平均质量分 79
yyhhlancelot
心之所向,素履以往。
展开
-
github上值得关注的机器学习深度学习大牛(持续更新)
前言:因为想搜相关内容发现搜到的基本上都是前端大牛(这可能是由于js是github上最受欢迎的语言),所以打算自己mark一下同时方便他人,于是写下这篇博文,本文持续更新,如果有童鞋觉得有不错的账号也可以评论推荐给我~我也会更新上去~大牛:(排名不分先后)一: Wes McKinney: https://github.com/wesm个人介绍:Director of https:/...原创 2018-08-30 11:09:58 · 1441 阅读 · 0 评论 -
个人总结:机器学习分类模型评估指标 准确率、精确率、召回率、F1等以及关联规则支持度、置信度
机器学习分类中的常用指标,这几个指标最大的特点,其实是容易看完就忘。。英文TP true positive, 前面的字母代表预测是否正确,后面的字母代表预测的类型,TP是预测正确的正例,预测为1实际也为1TN true negative预测正确的负例,预测为0实际也为0FP false positive预测错误,预测为正例,实际为负例,所以是预测错误的负例,预测为1实际为0FN...原创 2019-06-25 16:09:46 · 9132 阅读 · 2 评论 -
个人总结:聚类 K-Means
K-Means是无监督聚类算法,实现简单且效果不错。只看名字容易与可以分类回归的K-近邻搞混。原理它将样本按照距离的大小,将其划分为K个簇。簇内的点尽量紧密,簇间距离越大越好。假设簇有k个,分别为,为簇Ci的均值向量,称为质心或者簇心,表示为:于是我们的目标可以设为,使所有簇内数据到它对应的簇心的距离最小:求E的最小值是一个NP难问题,于是采用迭代方法如下图,红点和蓝点...原创 2019-06-25 21:59:39 · 1009 阅读 · 0 评论 -
个人总结:K近邻(KNN)
前言提到K近邻,K-nearest neighbors(它的K是指有多少个邻居),总是容易想起另外一个叫K-means的聚类算法(它的K指有多少个质心),容易搞混淆,它们有一部分思路也很接近,但是KNN能做分类和回归。K近邻之所以叫K近邻,是因为它的思想就是“你与你的邻居很相似”。所以对于分类来说,找到K个最近的邻居,用投票法找出最多数的类别,就将数据点预测为该类别。同理,回归的话输出最近...原创 2019-06-26 20:22:23 · 1683 阅读 · 0 评论 -
个人总结:降维 特征抽取与特征选择
降维在维度灾难、冗余,这些在数据处理中常见的场景,不得不需要我们进一步处理,为了得到更精简更有价值的信息,我们所用的的各种方法的统称就是降维。降维有两种方式:(1)特征抽取:我觉得叫做特征映射更合适。因为它的思想即把高维空间的数据映射到低维空间。比如PCA和LDA即为一种特征映射的方法。还有基于神经网络的降维等。(2)特征选择:过滤式(打分机制):过滤,指的是通过某个阈值进行过...原创 2019-06-24 09:35:26 · 1719 阅读 · 0 评论 -
个人总结:朴素贝叶斯
朴素贝叶斯和绝大多数分类算法不同。对于大多数分类算法,如决策树,KNN,逻辑回归,支持向量机等都是判别方法,直接学习出特征输出Y和特征X之间的关系,要么是决策函数Y=f(X),要么是条件分布P(Y|X)。但是朴素贝叶斯是生成方法,直接找出特征输出Y和特征X的联合分布P(X,Y),然后得到条件概率分布P(Y|X)=P(X,Y)/P(X).贝叶斯先验统计学的主流一直是频率学派,以皮尔逊和费歇尔...原创 2019-07-04 16:15:33 · 820 阅读 · 0 评论 -
个人总结:推荐算法篇(附协同过滤等) 综述
现代推荐系统对于在线部分来说,一般要经历几个阶段。首先通过召回环节,将给用户推荐的物品降到千以下规模(因为在具备一定规模的公司里,是百万到千万级别,甚至上亿。所以对于每一个用户,如果对于千万级别物品都使用先进的模型挨个进行排序打分,明显速度上是算不过来的,资源投入考虑这么做也不划算);如果召回阶段返回的物品还是太多,可以加入粗排阶段,这个阶段是可选的,粗排可以通过一些简单排序模型进一步...原创 2019-06-29 10:26:30 · 5529 阅读 · 1 评论 -
个人总结:机器学习模型评估与调优 余弦相似度 余弦距离 欧氏距离 A/B测试 交叉验证 自助法 | 网格搜索 随机搜索 贝叶斯优化 过拟合欠拟合
模型评估余弦相似度对于两个向量A和B,其余弦相似度定义为,即两个向量夹角的余弦,关注的是向量之间的角度关系,并不关心绝对大小, 其取值范围为[-1,1]。有着“相同时为1,正交时为0,相反时为-1”的性质。当一对文本在长度相似度很大,但内容相近时,如果使用词频或者词向量作为特征,它们在特征空间的欧氏距离通常很大;而如果使用余弦相似度的话,它们之间的夹角可能很小,因而相似度高。如果希望得...原创 2019-07-18 11:16:58 · 1586 阅读 · 0 评论 -
个人总结:聚类 EM算法与高斯混合模型
前言高斯分布,即正态分布,是一个很常见的分布,通常身高、分数等大致符合高斯分布。当研究各类数据时,假设同一类的数据符合高斯分布,也是简单自然的假设。所以在聚类时,我们希望将数据划分为一些簇时,可以假设不同簇中的样本各自服从不同的高斯分布,由此得到的聚类算法称为高斯混合模型。高斯混合模型假设数据可以看作多个高斯分布中生成出来的,每个分模型有自己的期望(均值)和方差,同时有一个权重,于是概...原创 2019-07-19 21:23:06 · 960 阅读 · 0 评论 -
个人总结:自然语言处理 word2vec(skip-gram/CBOW以及优化算法Hierarchical Softmax和Negative Sampling)
前言word2vec,顾名思义,将一个词转化为向量,也经常会看到一个非常相关的词“词嵌入”,也就是word embedding。词嵌入是一类将词从高维空间映射到低维空间的过程的统称,核心思想是将每个词都映射为低维空间(通常K=50-300维)上的一个稠密向量。K维空间的每一维可以看做一个隐含的主题,只不过不像主题模型中的主题那么直观。假设每篇文章有N个词,每个词映射为K维的向量,那就可以用...原创 2019-08-22 15:43:44 · 2596 阅读 · 2 评论 -
个人总结:常见的激活函数 梯度下降家族与BatchSize 梯度消失和梯度爆炸
激活函数在普通的DNN中,如果不使用激活函数,相当于激活函数是f(x) = x。无论有多少隐藏层,输出的都是输入的线性组合,只能运用于线性分类。与没有隐藏层的效果相当,这就是原始的感知机。所以引入了非线性激活函数,增加神经网络的非线性。常见激活函数:(1)sigmoid函数在逻辑回归中使用的激活函数,。它的优点在于求导方便。但是有三大缺点:1、容易出现gradien...原创 2019-09-02 16:13:04 · 1300 阅读 · 0 评论 -
个人总结:数据、特征预处理(含word2vec)
缺失值处理连续值一般采用取平均值或者中位数来进行填充。离散值最频繁出现的类别(或者众数)来填充。异常值清洗异常数据可能给模型带来很大的偏差。聚类清洗例如,通过KMeans将训练样本分成若干簇,如果某一个簇里的样本数很少,而且簇质心和其他所有的簇都很远,那么这个簇里面的样本极有可能是异常特征样本。可将其从训练集过滤掉。同样道理还可以使用BIRCH和DBSCAN密...原创 2019-06-25 09:19:45 · 2585 阅读 · 0 评论 -
个人总结:从 感知机 到 SVM分类(详)(附:梯度下降家族)
前言SVM是一个二元分类算法,线性分类和非线性分类都支持。经过演进,现在也可以支持多元分类,以及回归问题。而感知机在思想上可以看做SVM的前辈。回顾感知机感知机模型就是尝试找到一个超平面,能够把所有二元类分开。如果找不到这么一条直线,就说明类别线性不可分,也就意味着感知机模型不适合你的数据分类。使用感知机的前提就是数据线性可分。而其他模型在面对线性不可分的情况下,比如支持向量机可...原创 2019-06-11 16:14:30 · 1007 阅读 · 0 评论 -
个人总结:从 决策树 到 随机森林
关于决策树的一些可能需要了解的知识点,在个人总结:决策树中有所涉猎。谈到随机森林,就需要了解bagging,而谈到bagging,就需要了解集成学习。集成学习:构建并租个多个学习器来完成任务。获得比单一学习器更优越的性能。两种选择:同质:比如都是决策树个体学习器,都是神经网络个体学习器。 同质也可分为两类:个体学习器之间存在强依赖关系,一系列个体学习器串行生成,代表算法...原创 2019-05-24 15:53:19 · 1152 阅读 · 0 评论 -
个人总结:从随机森林(Bagging)到AdaBoost
众所周知,随机森林采用的是Bagging策略,关于随机森林与Bagging的一些知识,在个人总结:从决策树到随机森林中有所涉猎。谈到bagging,就不得不联想到集成学习的另外一种方式,boosting。它和bagging的主要区别是,bagging是一种并行的方式,每个基学习器之前的依赖关系弱;而boosting是一种串行的方式,每个基学习器之间存在强依赖关系。BoostingBoo...原创 2019-05-25 09:36:27 · 1759 阅读 · 0 评论 -
个人总结:降维 PCA的两种解释与推导
降维在维度灾难、冗余,这些在数据处理中常见的场景,不得不需要我们进一步处理,为了得到更精简更有价值的信息,我们所用的的各种方法的统称就是降维。降维有两种方式:(1)特征抽取:我觉得叫做特征映射更合适。因为它的思想即把高维空间的数据映射到低维空间。比如马上要提到的PCA即为一种特征映射的方法。还有基于神经网络的降维等。(2)特征选择:过滤式(打分机制):过滤,指的是通过某个阈值进...原创 2019-05-30 20:46:54 · 4240 阅读 · 0 评论 -
个人总结:决策树
决策树主要有ID3、C4.5、CART分类回归树。决策树的“规则”大体上来说类似于一个"if...then..."的过程。ID3ID3只能用于分类的问题。ID3不能使用连续特征,只能使用离散特征。ID3可以是多叉树。通过信息增益来达到分裂节点的目的,信息增益越大的特征,越可能成为被先选择分裂的节点。而信息增益,指的是在增加了该特征后,标签的不确定性减少的程度(熵减少的程度)。一般地,熵H(...原创 2019-05-23 22:54:17 · 981 阅读 · 0 评论 -
个人总结:降维 从 PCA 到 LDA
在个人总结:PCA中,对PCA的原理以及理由进行了一个概述,PCA应该是降维领域名声最大的算法,但是提到PCA,就不得不联想到另外一个名气也不小的降维算法 LDA : Linear Discriminant Analysis,线性判别分析。它在模式识别领域(人脸识别等图像识别领域)用途广泛。同时需要区分自然语言处理的LDA : Latent Dirichlet Allocation, 隐含狄利克雷...原创 2019-05-31 10:58:16 · 1417 阅读 · 0 评论 -
个人总结:从 AdaBoost 到 GBDT 梯度提升树
谈过了AdaBoost,就不由得要谈到提升树,谈到提升树,就不得不提到梯度提升树。提升树(boosting tree)。对于二类分类的算法,决策树内部为CART分类树,此时就为AdaBoost基学习器为CART分类树的特殊情况;对于回归问题,提升树内部决策树是二叉回归树,在每次迭代中通过拟合当前模型的残差生成一个新的回归树,并与之前的弱学习器结合生成新的强学习器,若最后生成的强学习器满足误差要...原创 2019-05-28 16:13:20 · 1767 阅读 · 0 评论 -
个人总结:从 SVM分类 到 线性支持回归SVR
回顾前面的SVM分类模型中,我们的目标函数是让最小,同时让各个训练集中的点尽可能远离自己类别一边的支持向量,即;若加入一个松弛变量,则目标函数变为,对应约束条件变为。线性支持回归也是尽量将训练集拟合到一个线性模型。但是损失不是使用常用的均方差作为损失函数,而是定义一个常量,对于某一个点,如果,则认定为没有损失。若,则对应的损失为。这个损失和均方差的区别在于,就会有损失。如图蓝色透明...原创 2019-06-14 11:16:10 · 1383 阅读 · 0 评论 -
个人总结:从 GBDT 到 XGBoost和LightGBM 用统一的视角看待它们
上次讲到GBDT,就不得不提到现在应用最广泛,效果也是数一数二的XGBoost,我们可以用统一的视角看待它们,因为它们本质上其实是一样的,可以把XGBoost看作GBDT的工程实现。如果非要说一些区别的话,最明显的是,GBDT使用了一阶泰勒公式展开(梯度下降/最速下降),而XGBoost使用了二阶泰勒公式展开(牛顿法),但是这些并不影响它们其实是同样的东西。如果你很熟悉下面的基础知识,那么可...原创 2019-06-03 20:30:06 · 1265 阅读 · 1 评论 -
个人总结:从 线性回归 到 逻辑回归 为什么逻辑回归又叫对数几率回归?
逻辑回归不是回归算法,是分类算法,可以处理二元分类以及多元分类。线性回归线性回归的模型是求出特征向量Y和输入样本矩阵X之间的线性关系系数θ,满足Y = Xθ。此时Y是连续的,所以是回归模型。对应n维样本数据,对应的模型是这样的:其中θ为模型参数。一般用均方误差作为损失函数,损失函数的代数法表示如下:用矩阵形式表示为:采用梯度下降法,则θ的迭代公式为:如果采...原创 2019-06-04 15:13:19 · 2596 阅读 · 0 评论 -
个人总结:从 白化(whitening) 到 批标准化(Batch Normalization)
白化 Whitening由于图像中像素之间具有很强的相关性,所以用于训练时输入是冗余的。白化的目的是降低输入的冗余性,我们希望通过白化过程使得算法的输入有如下性质:1、特征间相关性较低。2、所有特征具有相同的方差。z-score白化将图片调整为平均像素值为0,方差为单位方差的分布。PCA白化假设输入数据是冗余的,经过白化处理后:1、特征间相关性较低。2、所有特征具有相同的方差。...原创 2019-06-20 14:47:43 · 2912 阅读 · 3 评论 -
个人总结 :SVM 与 拉格朗日函数、对偶问题 和 KKT条件 以及 SMO算法
提到SVM,可能首先想到的是令人头大的公式推导,通过确定思想,公式等式转化,拉格朗日函数,求梯度,约束变换,KKT、SMO。。。最后终于得到我们的最优解。而在这其中,不免作为核心的就是拉格朗日函数以及KKT条件,就像建筑高楼大厦前需要打地基,如果说SVM这个模型方法是高楼大厦的话,拉格朗日函数和KKT这些最优化方法就是我们需要提前打好的地基。只有对这两个东西有了理解后,才能对SVM的公式推导能够有...原创 2019-06-10 20:03:08 · 1679 阅读 · 0 评论 -
数据挖掘 数据分析 数据处理 EDA 常用API笔记(持续更新)
import numpy as npimport pandas as pdnp.arrage(num)生成一个 0~num-1 的List np.random.shuffle[list] 将list的内部顺序完全打乱,该方法无返回值,直接调用即可,调用完List就会改变 pd.DataFrame.head()打印df的前五行 pd.DataFrame.tail()打印df的最末尾五...原创 2018-12-07 22:44:17 · 699 阅读 · 0 评论