欠拟合

机器学习之样本不均衡

余生长醉 提交于 2021-02-16 17:46:28
以下内容是个人通过查阅网上相关资料总结出的内容 具体说明数据不均衡会带来的问题: 1) 在一个二分类问题中,训练集中 class 1的样本数比class 2的样本数是60:1。使用逻辑回归进行分类, 最后训练出的模型可能会忽略了 class 2,即模型可能会将所有的训练样本都分类为class 1。 2)在分类任务的数据集中,有三个类别,分别为A,B,C。在训练集中,A类的样本占70%,B类的样本占25%,C类的样本占5%。最后我的 分类器对类 A的样本过拟合了,而对其它两个类别的样本欠拟合。 那么该如何解决这种样本不均衡问题? 1) 过抽样 抽样是处理不平衡数据的最常用方法, 基本思想就是通过改变训练数据的分布来消除或减小数据的不平衡。 过抽样方法通过增加少数类样本来提高少数类的分类性能 , 最简单的办法是简单复制少数类样本,缺点是可能导致过拟合,没有给少数类增加任何新的信息。 改进的过抽样方法通过在少数类中加入随机高斯噪声或 产生新的合成样本 等方法。 如何解决过采样中只是简单的复制少数类样本所带来的过拟合缺点? 采用过采样的典型算法 SMOTE(它是通过对训练集里的小样本类别进行插值来产生额外的小样本类别数据) 2) 欠抽样 欠抽样方法通过减少多数类样本来提高少数类的分类性能,最 简单的方法是通过随机地去掉一些多数类样本来减小多数类的规模,缺点是会丢失多数类的一些重要信息

李宏毅老师机器学习课程笔记_ML Lecture 2: Where does the error come from?

混江龙づ霸主 提交于 2021-02-12 04:39:45
####引言: 最近开始学习“机器学习”,早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程。今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子加深学生的印象。 视频链接(bilibili): 李宏毅机器学习(2017) 另外已经有有心的同学做了速记并更新在github上: 李宏毅机器学习笔记(LeeML-Notes) 所以,接下来我的笔记只记录一些我自己的总结和听课当时的困惑,如果有能够帮我解答的朋友也请多多指教。 ###一、误差来自哪里?该如何处理这些误差? 从第一课可以知道,越复杂的模型并不一定会带来越低的误差(error)。误差来自两方面: 偏差(bias) 方差(variance) 如果可以诊断误差的来源,就可以选择适当的方法来改进自己的模型。 看到这里我有一些困惑,误差、偏差、方差听起来太像了,到底有什么区别呢? 【此处与机器学习无关:图1真的挺难得,不知不觉有一种管理方面感触的代入感,左上角图表示好的领导(战略决策层)与好的员工(战术执行层)的配合,右上角图表示好的领导(战略决策层)与差的员工(战术执行层)的配合,左下角图表示差的领导(战略决策层)与好的员工(战术执行层)的配合,右下角图表示差的领导(战略决策层)与差的员工(战术执行层)的配合。从这方面可以看出,一个好的战略决策有多么重要!】 简单的模型(如一次方程

给女朋友买了只口红,结果她跟我说分手?掌握了机器学习再买买买吧!

↘锁芯ラ 提交于 2021-02-04 02:39:40
过完年,压岁钱到位,迟来的年终奖到账,钱包鼓起来但新的节日也不断跟上,情人节、元宵节、妇女节…… 说到底,还不是要买买买? 淘宝上的店铺又多又杂乱,一旦买错了, 面临的就是“女 ” 朋友的“果真直男审美 ” 的diss,或者人财两空的局面 接下去,来看看用机器学习技术如何甄别优质店铺,让你买到就是赚到! 分三步走: 第一步:找到阿里给出的店铺评价历史信息,分为训练集数据和测试集数据; 第二步:利用训练集数据构建机器学习模型; 第三步:使用测试集数据进行准确率判断并优化。 如此便可以建立一个相对科学的靠谱店铺预测模型。 首先,从阿里云天池开一份包含2000家店铺的评分,等级,评论等信息和数年交易记录的数据: 通过这份数据, 我们可以构建一套模型,根据店铺的访问、购买信息等数据,来评测该店铺是否为优质店铺。 一部分数据将用来作为训练集,另一部分数据会用来测试已经训练好模型的精确度。但训练的时候并不是精确度越高越好,过拟合和欠拟合都不是好事情。 欠拟合指模型没有很好地捕捉到数据特征,不能够很好地拟合数据: 过拟合通俗一点地说就是模型把数据学习的太彻底,以至于把噪声数据的特征也学习到了,这样就会导致在后期测试的时候不能够很好地识别数据,即不能正确的分类,模型泛化能力太差: 随后,完成了清理整合等预处理工作,得到了一份适合建模使用的样本数据: *完整代码可以在文末获取。考虑这份数据比较粗糙

如何防止我的模型过拟合?这篇文章给出了6大必备方法

好久不见. 提交于 2021-01-23 10:55:16
选自Medium 作者:Mahitha Singirikonda 机器之心编译 编辑:小舟 原文链接: https://mp.weixin.qq.com/s/RP9iFbyw-aNMKx-UAOe-aA ​ mp.weixin.qq.com 正如巴菲特所言:「近似的正确好过精确的错误。」 在机器学习中,过拟合(overfitting)会使模型的预测性能变差,通常发生在模型过于复杂的情况下,如参数过多等。本文对过拟合及其解决方法进行了归纳阐述。 在机器学习中,如果模型过于专注于特定的训练数据而错过了要点,那么该模型就被认为是过拟合。该模型提供的答案和正确答案相距甚远,即准确率降低。这类模型将无关数据中的噪声视为信号,对准确率造成负面影响。即使模型经过很好地训练使损失很小,也无济于事,它在新数据上的性能仍然很差。欠拟合是指模型未捕获数据的逻辑。因此,欠拟合模型具备较低的准确率和较高的损失。 如何确定模型是否过拟合? 构建模型时,数据会被分为 3 类:训练集、验证集和测试集。训练数据用来训练模型;验证集用于在每一步测试构建的模型;测试集用于最后评估模型。通常数据以 80:10:10 或 70:20:10 的比率分配。 在构建模型的过程中,在每个 epoch 中使用验证数据测试当前已构建的模型,得到模型的损失和准确率,以及每个 epoch 的验证损失和验证准确率。模型构建完成后

面经 | 面试题目记录(美团)

*爱你&永不变心* 提交于 2021-01-12 09:10:23
以下内容带有部分提示性答案 无论是查找博客还是翻阅论文 大家还是要参照最全面的讲解哦~ 一、开发基础 TCP/IP C++虚函数 由两个部分组成的,虚函数指针与虚函数表 C++允许用户使用虚函数 (virtual function) 来完成“运行时决议 ” 这一操作,这与一般的“编译时决定 ” 有着本质的区别 “静态存储”和“动态存储” 静态存储:全局变量 动态存储:函数的形式参数 红黑树的原理 并发和并行的区别 https://www.jianshu.com/p/cbf9588b2afb 内存不够的情况下如何以最快速度进行排序 (海量数据类问题) 二、机器学习方向 讲一下LR (sigmoid) SVM介绍一下?为什么可以使用对偶来求解原始问题? 核函数了解吗?核函数解决什么问题? 为什么高斯核函数可以拟合无限维 (无穷泰勒展开) ID3缺点 (信息增益对可取值数目较多的属性有所偏好) 朴素贝叶斯公式 抽象一个分类问题[m个样本,n个特征,k种标签],问先验概率后验概率分别是什么 使用贝叶斯的前提条件 (贝叶斯公式没有前提条件) 使用朴素贝叶斯的前提条件 (所有特征相互独立的) GDBT和RF区别 三、深度学习方向 介绍熟悉的深度学习模型,并介绍优缺点 模型中方差,偏差怎么定义的 偏差,方差和过拟合,欠拟合的关系 怎么解决模型的方差偏大问题 降低模型的复杂度 减少数据维度:降噪

机器学习入门线性回归 岭回归与Lasso回归(二)

陌路散爱 提交于 2021-01-10 10:11:17
一 线性回归(Linear Regression ) 1. 线性回归概述   回归的目的是预测数值型数据的目标值,最直接的方法就是根据输入写出一个求出目标值的计算公式,也就是所谓的回归方程,例如y = ax1+bx2,其中求回归系数的过程就是回归。那么回归是如何预测的呢?当有了这些回归系数,给定输入,具体的做法就是将回归系数与输入相乘,再将结果加起来就是最终的预测值。说到回归,一般指的都是线性回归,当然也存在非线性回归,在此不做讨论。   假定输入数据存在矩阵x中,而回归系数存放在向量w中。那么对于给定的数据x1,预测结果可以通过y1 = x1Tw给出,那么问题就是来寻找回归系数。一个最常用的方法就是寻找误差最小的w,误差可以用预测的y值和真实的y值的差值表示,由于正负差值的差异,可以选用平方误差,也就是对预测的y值和真实的y值的平方求和,用矩阵可表示为: $$ (y - xw)T(y - xw) $$ 现在问题就转换为寻找使得上述矩阵值最小的w,对w求导为:xT(y - xw),令其为0,解得: $$ w = (xTx)-1xTy $$ 这就是采用此方法估计出来的. 案例: 糖尿病回归分析 import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib

机器学习【初探建模那些事儿】(五)

淺唱寂寞╮ 提交于 2020-12-11 12:59:05
https://zhuanlan.zhihu.com/p/106927814 本篇你将了解过拟合和欠拟合的概念,并且能够使得你的模型更准确 (一)尝试不同的模型 既然你有一种可靠的方法来测量模型精度,那么你可以尝试使用其他模型,并查看哪种模型可以提供最佳预测。 可以在scikit-learn的文档中看到决策树模型有很多选项(比你想要的或需要的更多)。 最重要的选项决定了树的深度。 回想一下这个微课程的第一课,树的深度是衡量它在进行预测之前分裂的数量。 这是一棵相对较浅的树 在实践中,树在顶层(所有房屋)和叶子之间有10个分裂并不罕见。随着树木越来越深,数据集被切成了更少房屋的树叶。如果树只有1个分割,则将数据分为2组。如果每组再次拆分,我们将获得4组房屋。再次拆分每个将创建8个组。如果我们通过在每个级别添加更多分组来保持组的数量翻倍,那么当我们到达第10级时,我们将拥有210组房屋。这是1024片叶子。 当我们将房屋分成许多树叶时,每片叶子中的房屋数量也会减少。拥有极少数房屋的树叶将做出与房屋实际值非常接近的预测,但它们可能会对新数据做出非常不可靠的预测(因为每个预测仅基于少数房屋)。 这是一种称为过度拟合的现象,其中模型几乎完美地匹配训练数据,但在验证和其他新数据方面表现不佳。另一方面,如果我们使树很浅,它不会将房屋分成非常不同的组。 在极端情况下,如果一棵树将房屋分成2或4

机器学习【初探建模那些事儿】(五)

蹲街弑〆低调 提交于 2020-12-11 12:58:41
https://zhuanlan.zhihu.com/p/106927814 本篇你将了解过拟合和欠拟合的概念,并且能够使得你的模型更准确 (一)尝试不同的模型 既然你有一种可靠的方法来测量模型精度,那么你可以尝试使用其他模型,并查看哪种模型可以提供最佳预测。 可以在scikit-learn的文档中看到决策树模型有很多选项(比你想要的或需要的更多)。 最重要的选项决定了树的深度。 回想一下这个微课程的第一课,树的深度是衡量它在进行预测之前分裂的数量。 这是一棵相对较浅的树 在实践中,树在顶层(所有房屋)和叶子之间有10个分裂并不罕见。随着树木越来越深,数据集被切成了更少房屋的树叶。如果树只有1个分割,则将数据分为2组。如果每组再次拆分,我们将获得4组房屋。再次拆分每个将创建8个组。如果我们通过在每个级别添加更多分组来保持组的数量翻倍,那么当我们到达第10级时,我们将拥有210组房屋。这是1024片叶子。 当我们将房屋分成许多树叶时,每片叶子中的房屋数量也会减少。拥有极少数房屋的树叶将做出与房屋实际值非常接近的预测,但它们可能会对新数据做出非常不可靠的预测(因为每个预测仅基于少数房屋)。 这是一种称为过度拟合的现象,其中模型几乎完美地匹配训练数据,但在验证和其他新数据方面表现不佳。另一方面,如果我们使树很浅,它不会将房屋分成非常不同的组。 在极端情况下,如果一棵树将房屋分成2或4

波士顿房价预测

Deadly 提交于 2020-12-06 02:53:55
机器学习入门项目分享 - 波士顿房价预测 该分享源于Udacity机器学习进阶中的一个mini作业项目,用于入门非常合适,刨除了繁琐的部分,保留了最关键、基本的步骤,能够对机器学习基本流程有一个最清晰的认识; 项目描述 利用马萨诸塞州波士顿郊区的房屋信息数据训练和测试一个模型,并对模型的性能和预测能力进行测试; 项目分析 数据集字段解释: RM : 住宅平均房间数量; LSTAT : 区域中被认为是低收入阶层的比率; PTRATIO : 镇上学生与教师数量比例; MEDV : 房屋的中值价格(目标特征,即我们要预测的值); 其实现在回过头来看,前三个特征应该都是挖掘后的组合特征,比如RM,通常在原始数据中会分为多个特征:一楼房间、二楼房间、厨房、卧室个数、地下室房间等等,这里应该是为了教学简单化了; MEDV为我们要预测的值,属于回归问题,另外数据集不大(不到500个数据点),小数据集上的回归问题,现在的我初步考虑会用SVM,稍后让我们看看当时的选择; Show Time Step 1 导入数据 注意点: 如果数据在多个csv中(比如很多销售项目中,销售数据和店铺数据是分开两个csv的,类似数据库的两张表),这里一般要连接起来; 训练数据和测试数据连接起来,这是为了后续的数据处理的一致,否则训练模型时会有问题(比如用训练数据训练的模型,预测测试数据时报错维度不一致); 观察下数据量