过拟合

Python机器学习笔记:SVM(4)——sklearn实现

喜欢而已 提交于 2020-08-08 04:27:42
  上一节我学习了SVM的推导过程,下面学习如何实现SVM, 具体的参考链接都在第一篇文章中 ,SVM四篇笔记链接为: Python机器学习笔记:SVM(1)——SVM概述 Python机器学习笔记:SVM(2)——SVM核函数 Python机器学习笔记:SVM(3)——证明SVM Python机器学习笔记:SVM(4)——sklearn实现   对SVM的概念理清楚后,下面我们对其使用sklearn进行实现。 1,Sklearn支持向量机库概述   我们知道SVM相对感知器而言,它可以解决线性不可分的问题,那么它是如何解决的呢?其思想很简单就是对原始数据的维度变换,一般是扩维变换,使得原样本空间中的样本点线性不可分,但是在变维之后的空间中样本点是线性可分的,然后再变换后的高维空间中进行分类。   上面将SVM再赘述了一下,下面学习sklearn中的SVM方法,sklearn中SVM的算法库分为两类,一类是分类的算法库,主要包含LinearSVC,NuSVC和SVC三个类,另一类是回归算法库,包含SVR,NuSVR和LinearSVR三个类,相关模块都包裹在sklearn.svm模块中。   对于SVC,NuSVC和LinearSVC 三个分类的库,SVC和NuSVC差不多,区别仅仅在于对损失的度量方式不同,而LinearSVC从名字就可以看出,他是线性分类

从 0 开始机器学习

寵の児 提交于 2020-08-08 00:59:38
今天跟大家分享下如何诊断一个算法是否存在偏差或者方差的问题,以及如何选择优化算法的方向。 一、如何确定下一步的计划? 当我们设计了一个机器学习算法,比如线性回归或逻辑回归,并且算法已经能够正常工作,只是效果还不是太好,那用什么方法来提高算法的性能或者准确度呢?或者说在想办法提升性能之前,有没有一种方法来告诉我们下一步对我们设计的机器学习算法该采取什么步骤,比如: 获得更多的训练样本 尝试减少特征的数量 尝试获得更多的特征 尝试增加多项式特征 尝试减少正则化程度 尝试增加正则化程度 ... 上面 6 种思路都可以作为提升一个算法性能的选择,可是我们对一个算法到底该选择哪一种优化的思路呢?今天就跟大家分享下如何来评估一个机器学习算法,也称为 机器学习诊断法 ,这个方法可以明确地告诉我们: 要想进一步提升算法的性能,我们到底该采取什么方法是比较有效地,是增加训练集数量,还是增加或者减少特征数等。 使用这个方法的必要性是可以帮助我们节省时间,让我们可以更加明确优化算法的方向,不至于像无头苍蝇一样胡乱的选择优化思路,最终效果还不行。 二、训练集、交叉验证集,测试集 在学习诊断法之前,需要先对训练数据集进行处理,对于特征变量比较少的情况,我们可以直接画出假设函数在训练集上的拟合效果,比如: 但是当特征数量很多以至于不能用曲线表示拟合效果时

七月算法机器学习 7 工作流程与模型调优

柔情痞子 提交于 2020-08-07 19:32:28
目录 特征工程 模型选择 交叉验证 模型参数含义 模型效果优化 模型状态 o  小笑话两则 模型状态验证工具: 学习曲线 不同模型状态处理 线性模型的权重分析 Bad-case分析 模型融合 Bagging Adaboost Gradient Boosting Tree 特征工程 模型选择 选择模型后,在一些超参数,需要选择不同的值 线性回归 特征的次数可以变化 交叉验证 模型参数含义 模型效果优化 模型状态 左边欠拟合,中间刚合适,右边边拟合 o  小笑话两则 一個非洲酋長到倫敦訪問, 一群記者在機場截住了他。 早上好, 酋長先生“ , 其中一人問道: 你的路途舒適嗎? 酋長發出了一連串刺耳的聲音哄、 哼、 啊、 吱、 嘶嘶, 然后用純正的英語說 道 : 是的, 非常地舒適。 那麼! 您准備在這里待多久? 他發出了同樣的一連串噪音, 然後答: 大約三星期, 我想。 酋長, 告訴我, 你是在哪學的這樣流利的英語? 迷惑不解的記者問。 又是一陣哄、 吭、 啊、 吱、 嘶嘶聲, 酋長說: 從短波收音機裡。 欠拟合: 觉得自己将来的白马王子又会赚钱又有颜 过拟合: 遇到几个渣男就得出结论“男人没一个好东西” 欠拟合: “ 你太天真了” 过拟合: “你想太多了” 模型状态验证工具: 学习曲线 欠拟合,过拟合,正适合 都很低可以欠拟合 训练集准确度很高但在交叉验证集上不好-----过拟合

小样本学习方法(FSL)演变过程

删除回忆录丶 提交于 2020-08-07 07:52:19
本文重点介绍了下小样本学习方法(FSL)演变过程以及MAML和度量学习的区别所在。 小样本学习一般会简化为N-way K-shot问题,如图[1]。其中N代表类别数量,K代表每一类中(支持集)的样本量; 图[1] N-way K-shot 解决分类问题,人们最先想到的是采用传统监督学习的方式,直接在训练集上进行训练,在测试集上进行测试,如图[2],但神经网络需要优化的参数量是巨大的,在少样本条件下,几乎都会发生过拟合; 图[2] 传统监督学习 为了解决上述问题,人们首先想到的是通过使用迁移学习+Fine-tune的方式,利用Base-classes中的大量数据进行网络训练,得到的Pre-trained模型迁移到Novel-classes进行Fine-tune,如图[3]。虽然是Pre-trained网络+Fine-tune微调可以避免部分情况的过拟合问题,但是当数据量很少的时候,仍然存在较大过拟合的风险。 图[3] Pre-trained网络+Fine-tune微调 接下来讲的就是小样本学习中极具分量的Meta-learning方法,现阶段绝大部分的小样本学习都使用的是Meta-learning方法。Meta-learning,即learn to learn,翻译成中文是元学习。Meta-learning共分为Training和Testing两个阶段,Training阶段的思路如图

决策树和随机森林

一个人想着一个人 提交于 2020-08-06 20:09:25
作者|PRATEEK JOSHI 编译|VK 来源|Analytics Vidhya 决策树与随机森林的简单类比 让我们从一个思维实验开始,它将说明决策树和随机森林模型之间的区别。 假设银行必须为客户批准一笔小额贷款,而银行需要迅速做出决定。银行检查此人的信用记录和财务状况,发现他们还没有偿还旧贷款。因此,银行拒绝了申请。 但问题是,对于银行庞大的金库来说,贷款数额非常小,他们本可以在非常低风险的情况下批准贷款。因此,银行失去了赚钱的机会。 现在,又一个贷款申请将在几天内完成,但这一次银行提出了一个不同的策略——多个决策过程。有时它先检查信用记录,有时它先检查客户的财务状况和贷款金额。然后,银行结合这些多个决策过程的结果,决定向客户发放贷款。 即使这一过程比前一个过程花费更多的时间,银行也可以利用这一方法获利。这是一个典型的例子,集体决策优于单一决策过程。现在,你知道这两个过程代表了什么吧? 这些分别代表决策树和随机森林!我们将在这里详细探讨这个想法,深入探讨这两种方法之间的主要区别,并回答关键问题,你应该使用哪种算法? 目录 决策树简介 随机森林简介 随机森林与决策树的冲突 为什么随机森林优于决策树? 决策树与随机森林—你什么时候应该选择哪种算法? 决策树简介 决策树是一种有监督的机器学习算法,可用于分类和回归问题。决策树仅仅是为了达到特定结果而做出的一系列顺序决策

深度学习中的正则化(一)

こ雲淡風輕ζ 提交于 2020-08-06 12:03:39
本文首发自公众号: RAIS ,点击直接关注。 前言 本系列文章为《Deep Learning》读书笔记,可以参看原书一起阅读,效果更佳。本文我们聊一聊深度学习中的正则化。 深度学习中的正则化 一般来说,深度学习所要做的事情是用已有的训练集训练一个网络模型,然后针对新的数据给出预测,我们期望我们的模型在训练集和测试集上都有良好的表现,但是有的时候两者不可兼得。一种情况是在训练集上表现很好,在测试集上表现不好或表现一般;另一种情况是在训练集上表现不好或表现一般,在测试集上表现很好。相比较而言我们更倾向于后者,因为这是我们训练模型的目的。 为什么会出现这种情况,难道不是应该训练集上表现的越好在测试集上表现越好吗?不是的,我们在前面的文章中分析过,过度的拟合一个训练集往往会放大哪些没有那么重要的向量或因素,过拟合会导致泛化能力的下降,正则化就是为了减小测试误差的,虽然有的时候可能会以增大训练误差为代价,但是这是值得的,这些策略统称为正则化。下面给出一个简单的非严谨的正则化定义: 正则化:减小泛化误差而不是训练误差所做的对算法的修改 我们经常会对估计进行正则化,估计的正则化采取的方式是以偏差的增大来换取方差的减小,尤其是显著的减小方差而较小的增大偏差往往是我们追求的目标。接下来我们就分别分析介绍一下正则化的策略。 正则化的策略 参数范数惩罚 $$ \widetilde{J}(θ; X, y

第19期 FM脑科学新闻| 抑郁和认知障碍治疗新思路;大鼠也有同理心;视蛋白跨界啦

我们两清 提交于 2020-08-06 08:50:11
导读:行万里、刘厚、lhx、皮皮佳、circle 责编:Zhu Xiao 配音:小胡 背景音乐:iMovie主题声音 排版:麋鹿 FM脑科学新闻 | 抑郁和认知障碍治疗新思路;大鼠也有同理心;视蛋白跨界啦 ​ mp.weixin.qq.com Neuron|认知障碍者的救赎—米诺环素 生命因何而存在?不仅仅是我们的肉体,更重要的是我们与外在世界的互动,而这与β、γ波振荡密不可分。β、γ波,是脑电波中的2个种类,β波是我们维持清醒状态的基础,使我们对周围事物保持敏感性;γ波则与丘脑-皮层系统有关,具有易化突触可塑性以及调节神经网络的作用。有这么一群不幸的人,在出生时前额叶皮层浅层中的锥体神经元发生异常,导致β-γ波振荡出现混乱,引起认知障碍。他们无法学习,无法与人正常交流,给家人带来了无尽的痛苦和烦恼。 米诺环素(Minocycline)是一种广谱抗菌的四环素类抗生素,能与tRNA结合达到抑菌的效果。已证明米诺环素可以减轻因压力引发的炎症,减少精神分裂症患者小胶质细胞的病变,而小胶质细胞是大脑早期发育过程中的关键参与者,对神经元功能和心理发展具有深远影响。Mattia Chini团队的研究发现,在产后的第一个星期给予接受环境打击及相关基因(DISC1)敲除的双重打击小鼠米诺环素,可以弥补神经元的缺陷并恢复一定的认知能力,为早期认知障碍的治疗提供了新的方向。(导读 行万里) 文章链接:

一文读懂特征工程

杀马特。学长 韩版系。学妹 提交于 2020-08-04 12:49:04
一文读懂特征工程 作者:July 说明:本文是七月在线机器学习第九期第五次课 特征工程的课程笔记,课程主讲老师:寒小阳 加号 张雨石 Johnson,本笔记得到寒小阳等相关老师的校对。 时间:二零一八年七月三十一日。 0 前言 我所在公司七月在线每个月都是各种机器学习、深度学习、人工智能课程,通过三年半的打磨,内容质量已经足够精良,我也在这耳闻目染中不断被各种从传统IT成功转行转型转岗AI,然后拿到年薪30~50万的消息刷屏。 被刷的心痒痒不说,加上自己喜欢研究,擅长把艰深晦涩的东西通俗易懂的阐述出来,所以准备未来一个月三十篇ML课程笔记,平均每天一篇,类似之前的KMP SVM CNN 目标检测,发博客、公号、题库、社区。且联合公司的讲师团队确保专业,争取每个专题/模型 都成为每一个ML初学者必看的第一篇 ​​。 另外,每一篇笔记基本都将是带着beats耳机边用七月在线APP听课程边做笔记(恩,APP支持倍速1.5倍或2倍播放),为的是我确保通俗,讲授课程的讲师确保专业。还是那句老话,有何问题,欢迎在评论里留言指正,thanks。 1 什么是特征工程 有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。 但特征工程很少在机器学习相关的书中阐述,包括很多网络课程,七月在线还是第一个在机器学习课程里讲特征工程的课。但直到现在

第二次作业:卷积神经网络 part01

百般思念 提交于 2020-08-04 12:38:50
视频学习 机器学习的数学基础 特征向量形象化的描述: 对一个矩阵施加线性变换后,使矩阵发生尺度变化而不改变方向。 秩形象化的描述: 秩序,复杂度,一个数据分布很容易被捕捉,则秩小,很难被捕捉,则秩大。 数据降维: 只保留前R个较大奇异值及其对应的特征向量(较大奇异值包含了矩阵的主要信息)。 低秩近似 :保留决定数据分布的最主要的模式/方向(丢弃的可能是噪声或其他不关键的信息)。 概率/函数形式的统一: 问题补充: 逐层训练时,在训练下一层时,会冻结上一层的参数。 逐层预训练初始化参数是为了更好的初始化,使其落到比较好的区域里面。 策略设计:训练误差->泛化误差 免费午餐定理: 奥卡姆剃刀原理: “如无必要,勿增实体”, 即“简单有效原理”。如果多种模型能够同等程度地符合一个问题的观测结果,应选择其中使用假设最少的->最简单的模型。 欠拟合和过拟合的解决办法: 频率学派VS贝叶斯学派: 频率学派VS机器学习方法: 卷积神经网络基本组成结构 卷积神经网络的应用: 分类、检索、检测、分割人脸识别、人脸验证、人脸表情识别、图像生成图像风格转换、自动驾驶。 传统神经网络VS卷积神经网络: ​ 深度学习的三部曲: ​ 1.搭建神经网络结构 ​ 2.找到一个合适的损失函数 ​ 3.找到一个合适的优化函数,更新参数 ​ 损失函数: ​ 全连接网络处理图像的问题:参数太多:权重矩阵的参数太多-

Kaggle—So Easy!百行代码实现排名Top 5%的图像分类比赛

这一生的挚爱 提交于 2020-08-04 10:18:31
Kaggle—So Easy!百行代码实现排名Top 5%的图像分类比赛 作者:七月在线彭老师 说明:本文最初由彭老师授权翟惠良发布在公众号“七月在线实验室”上,现再由July重新编辑发布到本blog上。 Github: https://github.com/pengpaiSH/Kaggle_NCFM 前言 根据我个人的经验,学好AI,有五个必修:数学、数据结构、Python数据分析、ML、DL,必修之外,有五个选修可供选择:NLP、CV、DM、量化、Spark,然后配套七月在线的这些必修和选修课程刷leetcode、kaggle,最后做做相关开源实验。 今天,咱们就来看一看:如何用百行代码实现Kaggle排名Top 5%的图像分类比赛。 1. NCFM 图像分类 任务 简介 为了保护和监控海洋环境及生态平衡,大自然保护协会( The Nature Conservancy )邀请 Kaggle[1] 社区 的参赛者们开发能够出机器学习算法, 自动 分类和识别远洋捕捞船上 的 摄像头 拍摄 到的图片中鱼类的品种, 例如 不同种类的吞拿鱼和鲨鱼。大自然保护协会一共提供了 3777 张标注的图片 作为 训练集, 这些 图片 被 分为了 8 类, 其中7类 是不同种类的海鱼, 剩余1类则是 不含有鱼的图片, 每张图片 只属于 8类 中的某一类别。 图1给出了 数据集中的几张图片样例