深入浅出机器学习算法
力求用最通俗的语言推导主流的机器学习算法原理
TOMOCAT
知乎可私信: TOMOCAT
展开
-
[机器学习算法]主成分分析
引入在对实际问题进行数据挖掘时,涉及到的特证数即数据维度往往是成百上千的,出于以下两个原因可能导致数据集质量不佳:噪声特征:该特征并不能对我们建模产生正向作用,或者同关注的变量基本上是不相关的特征之间可替代性:当两个特征包含几乎一模一样的信息时,其中一个特征往往是可以剔除的(比如温度和体感温度变量)主成分分析Principal Component Analysis, PCA是最常用的降...原创 2020-03-28 19:08:06 · 818 阅读 · 0 评论 -
[机器学习原理]泊松回归
需要泊松回归的原因对因变量是离散型变量的问题建模时,普通的线性回归模型、定序回归模型和逻辑回归模型已经能解决我们大部分的需求。但有一类特殊的因变量记录某个特定事件出现的次数(有序的非负整数),它们被称之为“计数数据”。如果我们按照普通的线性回归模型建模:freq=β0+β1x1+β2x2+ϵfreq = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \epsil...原创 2020-01-31 03:28:00 · 3671 阅读 · 0 评论 -
[机器学习算法]逻辑回归模型
前言线性回归模型可以用于回归模型的学习,当我们需要用线性模型实现分类问题比如二分类问题时,需要用一个单调可微函数将线性回归的连续结果映射到分类回归真实标记的离散值上。推导过程考虑二分类任务,其输出标记:y∈{0,1}y\in\{0,1\}y∈{0,1}但是线性回归模型产生的预测值是实值z,因此我们需要将实值zzz转化为0/10/10/1的离散值,最理想的函数就是“单位阶跃函数”uni...原创 2020-01-28 14:47:01 · 187 阅读 · 0 评论 -
[机器学习算法]集成学习算法背后的原理
集成学习的概念集成学习指先产生一组弱学习器week learner(指泛化性能略优于随机猜测的学习器),随后根据某种策略将这些弱学习器组合起来得到最终预测结果的方法。集成学习提升模型性能的原理先考虑一个简单的例子:在二分类任务中,假设三个分类器在三个测试样本上的表现如下图所示,集成的结果通过投票法产生。在(a)(a)(a)中每个分类器精度为66.666.6%66.6,集成结果提升了模型性...原创 2020-01-28 14:18:04 · 437 阅读 · 0 评论 -
[机器学习算法]朴素贝叶斯
以二分类问题为例,我们假设特征集合为xxx,样本所属类别为ccc,后验概率P(c∣x)P(c|x)P(c∣x)为:P(c∣x)=P(c)P(x∣c)P(x)P(c|x)=\frac{P(c)P(x|c)}{P(x)}P(c∣x)=P(x)P(c)P(x∣c)其中P(c)P(c)P(c)是类的先验概率;P(x∣c)P(x|c)P(x∣c)是样本xxx相对于类标记ccc的类条件概率;P(x)...原创 2020-01-28 14:10:40 · 262 阅读 · 0 评论 -
[机器学习算法]线性回归模型
基本形式给定包含mmm条记录的数据集DDD:D=(x1,y1),(x2,y2),...,(xm,ym)D={(x_1,y_1),(x_2,y_2),...,(x_m,y_m)}D=(x1,y1),(x2,y2),...,(xm,ym)线性回归模型试图学习一个线性模型以尽可能地预测因变量yyy:f(x)=w1x1+w2x2+...+wdxd+bf(x)=w_1x_1+w_2...原创 2020-01-28 13:54:30 · 402 阅读 · 0 评论 -
[机器学习算法]Adaboost与提升树
前言前面我们已经通过数学公式验证过,将众多“好而不同”的弱学习器组合起来可以提升模型的准确性。并且根据个体学习器之间是否存在强依赖关系,我们将集成学习分为boosting和bagging两大类(强依赖性体现在弱学习器的抽样方法)。本篇我们主要讲boosting算法中的代表性提升算法AdaBoost,然后介绍提升方法的实例——提升树(boosting tree)Adaboost算法原理步...原创 2020-01-28 02:25:20 · 425 阅读 · 0 评论 -
[机器学习算法]聚类学习
简介在无监督学习中unsupervised learning中,训练样本的标记信息是未知的,其目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。而此类学习任务中应用最广、研究最多的即聚类clustering。以通俗的语言讲解,聚类学习将数据集中的样本分成若干个互不相交的子集(称为簇cluster)。保持簇内差异尽可能小而簇间差异尽可能大我们...原创 2020-01-01 21:31:36 · 399 阅读 · 0 评论 -
[机器学习算法]XGBoost算法是如何一步一步推导的
简介XGBoost算法是以CART为基分类器的集成学习方法之一,由于其出色的运算效率和预测准确率在数据建模比赛中得到广泛的应用。与随机森林赋予每一颗决策树相同的投票权重不同,XGBoost算法中下一棵决策树的生成和前一棵决策树的训练和预测相关(通过对上一轮决策树训练准确率较低的样本赋予更高的学习权重来提高模型准确率)。相比于其他集成学习算法,XGBoost一方面通过引入正则项和列抽样的方法提高了...原创 2020-01-26 15:39:42 · 666 阅读 · 0 评论 -
[机器学习算法]关联分析
相关概念1.关联分析全球零售巨头沃尔玛分析消费者购物行为时偶然发现男性顾客同时购买啤酒和尿布的比例较高,于是通过将啤酒和尿布捆绑销售的方式提高了两者的销量。这种用于发现隐藏在大型数据集中的有意义联系的分析方法即是关联分析association analysis,所发现的规则可以用关联规则association rule或频繁项集的形式表示:{尿布}→{啤酒}\{\text{尿布}\} \r...原创 2020-01-23 15:37:08 · 1238 阅读 · 0 评论 -
[机器学习算法]多种聚类学习算法背后的原理
简介在无监督学习中unsupervised learning中,训练样本的标记信息是未知的,其目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。而此类学习任务中应用最广、研究最多的即聚类clustering。以通俗的语言讲解,聚类学习将数据集中的样本分成若干个互不相交的子集(称为簇cluster)。保持簇内差异尽可能小而簇间差异尽可能大我们就可以将每个簇映...原创 2020-01-01 21:23:56 · 522 阅读 · 0 评论 -
[机器学习算法]决策树引论和CART算法
决策树综述决策树的工作原理决策树(decision tree)分类法是一种简单但广泛使用的分类技术。以是否贷款违约的二分类问题为例,当我们希望根据给定的训练集习得一个模型对新出现的贷款人进行分类时,经常需要从大量的贷款申请单中识别出来哪些贷款人是劣质的贷款人(容易拖欠贷款)。想象一下客户经理和助手针对一个贷款者进行的如下对话:经理:他有房吗?助手...原创 2019-06-26 11:25:00 · 355 阅读 · 0 评论 -
[机器学习算法]随机森林原理
随机森林单棵决策树的劣势有时候单棵决策树可能难以实现较高的准确率,这主要是由以下几个方面决定的:求解一棵最优(泛化误差最小)的决策树是一个NP难(无法穷极所有可能的树结构)问题,往往得到的是局部最优解。单棵树构建的模型往往不够稳定,样本变动很容易引起树结构的变动解决过拟合问题除划分测试集和训练集外依赖于剪枝随机森林简述随机森林是一种以决策...原创 2019-06-23 23:47:00 · 2960 阅读 · 0 评论 -
[机器学习算法]支持向量机SVM原理简介
一、问题和超平面描述给定训练集分类学习最基本的想法就是基于训练集在样本空间中找到一个划分超平面,将不同类别的样本分开,但能将训练样本分开的划分超平面可能有很多,如下图所示:直观来看,应该去找位于两类训练样本“正中间”的划分超平面,因为该平面受影响最小,从而产生的分类结果是最鲁棒的,对未见示例的泛化能力最强。1、划分超平面记2、样本空间中任意点到超平面的距离:3、...原创 2018-09-07 12:14:37 · 27767 阅读 · 0 评论 -
[机器学习必知必会]全局最小与局部极小
梯度法众所周知,基于梯度的搜索是使用最为广泛的参数寻优方法。在此类方法中,我们从某些初始解出发,迭代寻找最优参数值。每次迭代中,我们先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向。例如由于负梯度方向是函数值下降最快的方向,因此梯度下降法就是沿着负梯度方向搜索最优解。若误差函数在当前点的梯度为零,则已达到局部最小,更新量为零,参数的迭代更新停止。缺陷:当误差函数具有多个局部最小,...原创 2018-09-07 09:50:52 · 30350 阅读 · 0 评论 -
[机器学习算法]BP神经网络原理简介
M-P神经元模型神经元接收到来自个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收的总输入值将于神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。感知机与多层网络感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元。感知机能容易地实现与、或、非运算。感知机只能解决线性可分问题。要解决非线性可分问...原创 2018-09-06 18:11:22 · 34112 阅读 · 0 评论 -
[机器学习算法]决策树详解(属性划分+剪枝+缺失值/连续值处理)
决策树简述决策树是一种用于对实例进行分类的树形结构。决策树由节点(node)和有向边(directed edge)组成。节点分成根节点、内节点(表示一个特征或者属性的测试条件)和叶子节点(表示一个分类)。决策树的生成是一个递归过程。在决策树算法中,有三种情形会导致递归返回。(1)当前结点包含的样本全属于同一类别,无需划分;(2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分。(...原创 2018-09-04 16:14:21 · 31272 阅读 · 0 评论 -
[机器学习必知必会]类别不平衡问题
类别不平衡对数据分析的影响大部分的分类学习方法都有一个默认的假设:不同类别的训练样例数目相当。如果不同类别的训练样例数目稍有差别,通常影响不大。比如如果一个1000个样例的数据集中,有998个反例只有两个正例。那么学习方法只需要返回一个预测值斗士反例的模型则正确率就可以达到99.8%,这显然是不合理的。类别不平衡问题定义类别不平衡(class imblance)指分类问题中不同类别的训...原创 2018-08-31 17:31:25 · 24575 阅读 · 0 评论 -
[机器学习算法]线性模型(逻辑回归+LDA)
一、基本形式二、线性回归给定数据集,线性回归即试图学得一个线性模型以尽可能准确地预测实值输出标记。1、模型2、参数估计方法,通过偏导等于0得到最小二乘估计3、变形(1)对数线性回归(2)广义线性模型,其中是单调可微函数三、对数几率回归1、单位跃阶函数和对数几率函数单位阶跃函数:2、对数几率函数注:逻辑回归的原理就是把线性回...原创 2018-08-26 19:02:30 · 28917 阅读 · 0 评论 -
[机器学习算法]GBDT梯度提升决策树
参考:https://blog.csdn.net/google19890102/article/details/51746402/一、回顾1、有监督学习方法(1)、模型:给定自变量和因变量进行预测或者分类(2)、参数:模型中需要学习的东西(3)、目标函数:损失+正则,误差函数(解决模型中多拟合数据的问题),正则化项(惩罚复杂模型)(4)、优化算法:给定目标函数后怎么学的问题...原创 2018-07-26 21:05:42 · 25294 阅读 · 0 评论 -
[机器学习算法]机泊松回归算法原理详解和应用
一、为什么计数数据需要泊松回归 如果采用普通回归分析,则线性回归模型如下,因变量是非负整数,而等式右边可以是任意小数,从而线性模型不适用。 0-1变量回归和定序回归不能够分析是因为这两种回归模型处理的都是没有数值意义的数据。但是,计数数据确实是有数值意...原创 2018-07-22 21:46:14 · 29806 阅读 · 0 评论 -
[机器学习算法]随机森林
单棵决策树的劣势有时候单棵决策树可能难以实现较高的准确率,这主要是由以下几个方面决定的:求解一棵最优(泛化误差最小)的决策树是一个NP难(无法穷极所有可能的树结构)问题,往往得到的是局部最优解。单棵树构建的模型往往不够稳定,样本变动很容易引起树结构的变动解决过拟合问题除划分测试集和训练集外依赖于剪枝回顾:元算法从统计学的角度来讲,将模型的性能寄希望于单棵决策树是不稳健的,这意味着...原创 2019-12-19 00:32:27 · 1558 阅读 · 0 评论 -
[机器学习算法]决策树和CART树
决策树综述决策树的工作原理决策树(decision tree)分类法是一种简单但广泛使用的分类技术。以是否贷款违约的二分类问题为例,当我们希望根据给定的训练集习得一个模型对新出现的贷款人进行分类时,经常需要从大量的贷款申请单中识别出来哪些贷款人是劣质的贷款人(容易拖欠贷款)。想象一下客户经理和助手针对一个贷款者进行的如下对话:经理:他有房吗? 助手:没有 经理:他结婚了吗? 助...原创 2019-06-26 11:00:37 · 3625 阅读 · 0 评论 -
[机器学习算法]逻辑回归模型
写在前头线性回归模型可以用于回归模型的学习,当我们需要用线性模型实现分类问题比如二分类问题时,需要用一个单调可微函数将线性回归的连续结果映射到分类回归真实标记的离散值上。推导过程考虑二分类任务,其输出标记:y∈{0,1}y\in\{0,1\}y∈{0,1}但是线性回归模型产生的预测值是实值z,因此我们需要将实值z转化为0/1的离散值,最理想的函数就是“单位阶跃函数”(unit-ste...原创 2019-06-26 09:02:52 · 452 阅读 · 0 评论 -
[机器学习算法]knn算法和kd树
引言k近邻算法(k-Nearest Neighbor,简称kNN):给定一个训练数据集,对于新的输入实例,在训练数据集中找到与该实例最接近的kkk个实例,通过这kkk个实例投票决定该输入实例的类别。k近邻算法输入: 训练集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2...原创 2019-06-26 08:59:39 · 688 阅读 · 0 评论