最近在进行一个产品推荐课题时,由于产品的特性导致正负样本严重失衡,远远大于3:1的比例(个人认为3:1是建模时正负样本的一个临界点),这样的样本不适合直接用来建模,例如正负样本的比例达到了50:1,就算算法全部预测为另一样本,准确率也会达到51/50=98%.具有很大的局限性. 处理不平衡样本的方法 解决方法主要分为两个方面. 第一种方案主要从数据的角度出发,主要方法为抽样,既然我们的样本是不平衡的,那么可以通过某种策略进行抽样,从而让我们的数据相对均衡一些: 第二种方案从算法的角度出发, 考虑…
http://blog.csdn.net/weixin_36604953/article/details/78324834 想必通过前一篇的介绍,各位小主已经对word2vec以及CBOW和Skip-gram有了比较清晰的了解.在这一篇中,小编带大家走进业内最新潮的文本分类算法,也就是fastText分类器.fastText与word2vec的提出者之所以会想到用fastText取代CNN(卷积神经网络)等深度学习模型,目的是为了在大数据情况下提高运算速度. 其实,文本的学习与图像的学习是不同的…
Adaboost提升算法是机器学习中很好用的两个算法之一,另一个是SVM支持向量机:机器学习面试中也会经常提问到Adaboost的一些原理:另外本文还介绍了一下非平衡分类问题的解决方案,这个问题在面试中也经常被提到,比如信用卡数据集中,失信的是少数,5:10000的情况下怎么准确分类? 一 引言 1 元算法(集成算法):多个弱分类器的组合:弱分类器的准确率很低 50%接近随机了 这种组合可以是 不同算法 或 同一算法不同配置 或是 数据集的不同部分分配给不同分类器; 2 bagging:把原始数…
提升方法的基本思路 在概率近似正确(probably approximately correct,PAC)学习的框架中, 一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的: 一个概念,如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,那么就称这个概念是弱可学习的. Schapire后来证明强可学习与弱可学习是等价的,也就是说,在PAC学习的框架下, 一个概念是强可学习的充分必要条件是这个概念是弱可学习的.   对于分类问…
在前段时间做本科毕业设计的时候,遇到了各个类别的样本量分布不均的问题——某些类别的样本数量极多,而有些类别的样本数量极少,也就是所谓的类不平衡(class-imbalance)问题. 本篇简述了以下内容: 什么是类不平衡问题 为什么类不平衡是不好的 几种解决方案 SMOTE过采样算法 进一步阅读 什么是类不平衡问题 类不平衡(class-imbalance)是指在训练分类器中所使用的训练集的类别分布不均.比如说一个二分类问题,1000个训练样本,比较理想的情况是正类.负类样本的数量相差不多:而如…
写在前面 准备近期将微软的machinelearning-samples翻译成中文,水平有限,如有错漏,请大家多多指正. 如果有朋友对此感兴趣,可以加入我:https://github.com/feiyun0112/machinelearning-samples.zh-cn 基于二元分类和PCA的信用卡欺诈检测 ML.NET 版本 API 类型 状态 应用程序类型 数据类型 场景 机器学习任务 算法 v0.7 动态API 更新至0.7 两个控制台应用程序 .csv 文件 欺诈检测 二元分类 Fa…
https://www.weixin765.com/doc/gmlxlfqf.html 在对不平衡的分类数据集进行建模时,机器学**算法可能并不稳定,其预测结果甚至可能是有偏的,而预测精度此时也变得带有误导性那么,这种结果是为何发生的呢?到底是什么因素影响了这些算法的表现? 在不平衡的数据中,任一算法都没法从样本量少的类中获取足够的信息来进行精确预测因此,机器学**算法常常被要求应用在平衡数据集上那我们该如何处理不平衡数据集?本文会介绍一些相关方法,它们并不复杂只是技巧性比较强 本文会介绍处理非…
在前段时间做本科毕业设计的时候,遇到了各个类别的样本量分布不均的问题——某些类别的样本数量极多,而有些类别的样本数量极少,也就是所谓的类不平衡(class-imbalance)问题. 本篇简述了以下内容: 什么是类不平衡问题 为什么类不平衡是不好的 几种解决方案 SMOTE过采样算法 进一步阅读 什么是类不平衡问题 类不平衡(class-imbalance)是指在训练分类器中所使用的训练集的类别分布不均.比如说一个二分类问题,1000个训练样本,比较理想的情况是正类.负类样本的数量相差不多:而如…
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文来自云+社区翻译社,作者ArrayZoneYour 在分类问题当中,数据不平衡是指样本中某一类的样本数远大于其他的类别样本数.相比于多分类问题,样本不平衡的问题在二分类问题中的出现频率更高.举例来说,在银行或者金融的数据中,绝大多数信用卡的状态是正常的,只有少数的信用卡存在盗刷等异常现象. 使用算法不能获得非平衡数据集中足以对少数类别做出准确预测所需的信息.所以建议使用平衡的分类数据集进行训练. 在本文中,我们将讨论如何使用R来解决…
分类技术或模型试图从观测值中得出一些结论. 在分类问题中,我们有分类输出,如“黑色”或“白色”或“教学”和“非教学”. 在构建分类模型时,需要有包含数据点和相应标签的训练数据集. 例如,如果想检查图像是否属于汽车. 要实现这个检查,我们将建立一个训练数据集,其中包含与“车”和“无车”相关的两个类. 然后需要使用训练样本来训练模型. 分类模型主要用于人脸识别,垃圾邮件识别等. 在Python中构建分类器的步骤 为了在Python中构建分类器,将使用Python 3和Scikit-learn,这是一…
  一.决策树的原理 决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法 . 二.决策树的现实案例 相亲   相亲决策树 女儿:多大年纪了? 母亲:26. 女儿:长的帅不帅? 母亲:挺帅的. 女儿:收入高不? 母亲:不算很高,中等情况. 女儿:是公务员不? 母亲:是,在税务局上班呢. 女儿:那好,我去见见. 银行是否发放贷款 行长:是否有自己的房子? 职员:有. 行长:可以考虑放贷. 职员:如果没有自己的房子呢? 行长…
1.K-近邻算法(KNN) 1.1 定义 (KNN,K-NearestNeighbor) 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 1.2 距离公式 两个样本的距离可以通过如下公式计算,又叫欧式距离. 简单理解这个算法: 这个算法是用来给特征值分类的,是属于有监督学习的领域,根据不断计算特征值和有目标值的特征值的距离来判断某个样本是否属于某个目标值. 可以理解为根据你的邻居来判断你属于哪个类别. 1.3 API sklea…
这一章也是本书基本理论的一章,我对这章后面有些公式看的比较模糊,这一会章涉及线性代数和概率论基础知识,讲了几种经典的线性模型,回归,分类(二分类和多分类)任务. 3.1 基本形式 给定由d个属性描述的示例 x =(x1:x2:… :xd),其中xi是x在第i个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即: f(x) = w1x1 + w2x2 + … + wdxd + b 一般用向量形式写成: f(x) = wTx + b 其中x =(x1…
1. 线性模型简介 0x1:线性模型的现实意义 在一个理想的连续世界中,任何非线性的东西都可以被线性的东西来拟合(参考Taylor Expansion公式),所以理论上线性模型可以模拟物理世界中的绝大多数现象.而且因为线性模型本质上是均值预测,而大部分事物的变化都只是围绕着均值而波动,即大数定理. 事物发展的混沌的线性过程中中存在着某种必然的联结.事物的起点,过程,高潮,衰退是一个能被推演的过程.但是其中也包含了大量的偶然性因素,很难被准确的预策,只有一个大概的近似范围.但是从另一方面来说,偶然…
使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异常值定义为与其余数据群1不一致的样本或事件.异常值通常包含有关影响数据生成过程2的系统和实体的异常特征的有用信息. 异常检测算法的常见应用包括: 入侵检测系统信用卡诈骗有趣的传感器事件医学诊断在本文中,我们将重点介绍异常检测 - 信用卡欺诈的最常见应用之一.通过一些简单的离群值检测方法,可以在真实世…
100道AI基础面试题 1.协方差和相关性有什么区别? 解析: 相关性是协方差的标准化格式.协方差本身很难做比较.例如:如果我们计算工资($)和年龄(岁)的协方差,因为这两个变量有不同的度量,所以我们会得到不能做比较的不同的协方差. 为了解决这个问题,我们计算相关性来得到一个介于-1和1之间的值,就可以忽略它们各自不同的度量. 2.xgboost如何寻找最优特征?是有放回还是无放回的呢? 解析: xgboost在训练的过程中给出各个特征的增益评分,最大增益的特征会被选出来作为分裂依据, 从而记忆…
简介 这一节主要是为模型打补丁,在这之前笔者已经介绍并实现了几种典型的机器学习模型,比如线性回归.logistic回归.最大熵.感知机.svm等,但目前它们都有一个共性,那就是构造的损失函数对每个样本都是"一视同仁"的,即每个样本在损失函数中权重都是一样的,为了方便,可以将它们的损失函数做如下抽象: \[L(w,x,y)=\sum_{i=1}^Nl(w,x_i,y_i) \] 这里\(L(\cdot)\)表示整体的损失函数,\(l(w,x_i,y_i)\)表示第\(i\)个样本的损失函…
Logistic回归虽然名字叫"回归" ,但却是一种分类学习方法.使用场景大概有两个:第一用来预测,第二寻找因变量的影响因素.逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种.通过历史数据的表现对未来结果发生的概率进行预测.例如,我们可以将购买的概率设置为因变量,将用户的特征属性,例如性别,年龄,注册时间等设置为自变量.根据特征属性预测购买的概率.逻辑回归与回归分析有很多相似之处,在开始介绍逻辑回归之前我们先来看下回归分析. 回归分…
SVM-非线性支持向量机及SMO算法 如果您想体验更好的阅读:请戳这里littlefish.top 线性不可分情况 线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,为了满足函数间隔大于1的约束条件,可以对每个样本$(x_i, y_i)$引进一个松弛变量$\xi_i \ge 0$,使函数间隔加上松弛变量大于等于1,, $$y_i (w \cdot x_i + b) \ge 1 - \xi_i$$ 目标函数变为 $$\frac 1 2 {||w||^2} + C \sum_{j=1…
一直想写Adaboost来着,但迟迟未能动笔.其算法思想虽然简单"听取多人意见,最后综合决策",但一般书上对其算法的流程描述实在是过于晦涩.昨日11月1日下午,邹博在我组织的机器学习班第8次课上讲决策树与Adaboost,其中,Adaboost讲得酣畅淋漓,讲完后,我知道,可以写本篇博客了. 无心啰嗦,本文结合邹博之决策树与Adaboost的PPT跟<统计学习方法>等参考资料写就,可以定义为一篇课程笔记.读书笔记或学习心得,有何问题或意见,欢迎于本文评论下随时不吝指出,th…
0 引言 一直想写Adaboost来着,但迟迟未能动笔.其算法思想虽然简单“听取多人意见,最后综合决策”,但一般书上对其算法的流程描述实在是过于晦涩.昨日11月1日下午,邹博在我组织的机器学习班第8次课上讲决策树与Adaboost,其中,Adaboost讲得酣畅淋漓,讲完后,我知道,可以写本篇博客了. 无心啰嗦,本文结合邹博之决策树与Adaboost 的PPT 跟<统计学习方法>等参考资料写就,可以定义为一篇课程笔记.读书笔记或学习心得,有何问题或意见,欢迎于本文评论下随时不吝指出,thank…
AdaBoost算法内容来自<统计学习与方法>李航,<机器学习>周志华,以及<机器学习实战>Peter HarringTon,相互学习,不足之处请大家多多指教! 提升算法是将弱学习算法提升为强学习算法的统计学习方法,在分类学习中,提升方法通过反复修改训练数据的权值分布,构建一系列基本的基本分类器,并将这些基本的分类器线性组合,构成一个强分类器.代表的方法是AdaBoost算法. 本卷大纲为: 1 提升方法AdaBoost算法2 AdaBoost算法解释3 提升树4 总结…
[Machine Learning]学习笔记-Logistic Regression 模型-二分类任务 Logistic regression,亦称logtic regression,翻译为"对数几率回归",是一种分类学习方法.和先前的线性回归模型不同的是,输出的y一般是离散量的集合,如输出\(y \in \{0,1\}\)的二分类任务. 考虑二分类任务,线性回归模型产生的\(Z=\theta ^TX\)是连续的实值,需要用一个函数\(g(\theta ^TX)\)将z转换为0/1值.…
注:本篇博文是根据其他优秀博文编写的,我只是对其改变了知识的排序,另外代码是<机器学习实战>中的.转载请标明出处及参考资料. 1 Adaboost 算法实现过程 1.1 什么是 Adaboost 算法 Adaboost是英文"Adaptive Boosting"(自适应增强)的缩写,它的自适应在于:前一个基本分类器被错误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器.同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的…
1 AdaBoost算法2 AdaBoost训练误差分析3 AdaBoost algorithm 另外的解释3.1 前向分步算法3.2 前向分步算法与AdaBoost4 提升树4.1 提升树模型4.2 梯度提升 Boosting在分类问题中,通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类性能.AdaBoost最具代表性,由Freund和Schapire在1995年提出:Boost树在2000年由Friedman提出. 1 AdaBoost算法 基本思想:对于分类而言…
集成学习(ensemble learning)通过构建并结合多个个体学习器来完成学习任务,也被称为基于委员会的学习. 集成学习构建多个个体学习器时分两种情况:一种情况是所有的个体学习器都是同一种类型的学习算法,比如都是决策树,或者都是神经网络.这样的集成是“同质”的,同质集成中的个体学习器称为“基学习器”,相应的算法称为“基学习算法”:另一种情况是集成学习中包含的个体学习器是不同类型的,比如同时包含了决策树或者神经网络算法,那么这样的集成是“异质”的,这时的个体学习器不能称为“基学习器”. 那么…
1. 历史及演进 提升学习算法,又常常被称为Boosting,其主要思想是集成多个弱分类器,然后线性组合成为强分类器.为什么弱分类算法可以通过线性组合形成强分类算法?其实这是有一定的理论基础的.1988年,Kearns和Valiant首先提出了“强可学习”和“弱可学习”的概念,他们指出,在概率近似正确(Probably Approximately Correct, PAC)学习的框架中,一个概念,如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的:如果正确率只是…
1. 提升方法 提升(boosting)方法是一种常用的统计学方法,在分类问题中,它通过逐轮不断改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能 0x1: 提升方法的基本思路 提升方法基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当(按照一定权重)的综合(例如线性组合加法模型)所得出的判断,要比其中任何一个专家单独的判断好 历史上,Kearns和Valiant首先提出了“强可学习(strongly learnable)”和“弱可学习(weekly l…
Adaboost 中文名叫自适应提升算法,是一种boosting算法. boosting算法的基本思想 对于一个复杂任务来说,单个专家的决策过于片面,需要集合多个专家的决策得到最终的决策,通俗讲就是三个臭皮匠顶个诸葛亮. 对于给定的数据集,学习到一个较弱的分类器比学习到一个强分类器容易的多,boosting就是从弱学习器出发,反复学习,得到多个弱分类器,最后将这些弱分类器组合成强分类器. boosting算法需要解决两个问题 每一轮如何改变训练样本的权重 如何将弱分类器组合成强分类器 adabo…
样本不平衡问题 如在二分类中正负样本比例存在较大差距,导致模型的预测偏向某一类别.如果正样本占据1%,而负样本占据99%,那么模型只需要对所有样本输出预测为负样本,那么模型轻松可以达到99%的正确率.一般此时需使用其他度量标准来判断模型性能.比如召回率ReCall(查全率:样本中所有标记为正样本的有多少被模型预测为正样本). 从数据层解决办法:  1.欠采样(undersampling):将模型中类别较多的样例除去一些,使类别样本数量平衡.但此法由于除去一些样本,导致丢失许多信息.一种改进办法是…