热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

机器学习笔记【一】

过拟合和欠拟合:1、欠拟合欠拟合是指模型不能在训练集上获得足够低的误差。换句换说,就是模型复杂度低,模型在训练集上就表现很差,

过拟合和欠拟合:
1、欠拟合
欠拟合是指模型不能在训练集上获得足够低的误差。换句换说,就是模型复杂度低,模型在训练集上就表现很差,没法学习到数据背后的规律。
欠拟合基本上都会发生在训练刚开始的时候。可以通过增加网络复杂度、增加特征、增加数据,这些都是很好解决欠拟合的方法。
2、过拟合
过拟合是指训练误差和测试误差之间的差距太大。换句换说,就是模型复杂度高于实际问题,模型在训练集上表现很好,但在测试集上却表现很差。或者称为泛化能力差
造成原因主要有以下几种:
1、训练数据集样本单一,样本不足。 如果训练样本只有负样本,然后那生成的模型去预测正样本,这肯定预测不准。所以训练样本要尽可能的全面,覆盖所有的数据类型。
2、训练数据中噪声干扰过大。 噪声指训练数据中的干扰数据。过多的干扰会导致记录了很多噪声特征,忽略了真实输入和输出之间的关系。
3、模型过于复杂。 模型太复杂,已经能够“死记硬背”记下了训练数据的信息,但是遇到没有见过的数据的时候不能够变通,泛化能力太差。我们希望模型对不同的模型都有稳定的输出。模型太复杂是过拟合的重要因素。
采用正则化预防过拟合。 正则化是指修改学习算法,使其降低泛化误差而非训练误差。常用的正则化方法根据具体的使用策略不同可分为:
(1)直接提供正则化约束的参数正则化方法,如 L1/L2正则化(L1正则化:全部权重 w的绝对值的和;L1正则项会产生稀疏解。L2正则化:全部权重w的平方和; L2正则项会产生比较小的解);
(2)通过工程上的技巧来实现更低泛化误差的方法,如提前终止(Early stopping)和 Dropout
Dropout 指的是在训练过程中每次按一定的概率(比如50%)随机地“删除”一部分隐藏单元(神经元)。
Dropout平衡训练和测试时的差异:在训练时,失活概率为p,那么输出数据 将除以(1-p)作为神经元失活的补偿。如果训练时没有进行缩放,那么测试阶段每个神经元参数权重 需要乘以概率p)
为什么Dropout可以防止过拟合:(主要原因)dropout掉不同的隐藏神经元就类似在训练不同的网络,随机删掉一半隐藏神经元导致网络结构已经不同,整个dropout过程就相当于对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,一些互为“反向”的拟合相互抵消就可以达到整体上减少过拟合。
(3)不直接提供约束的隐式正则化方法,如 数据增强等。

决策树属性选择方法区别:
ID3:根据“最大信息增益”原则选择划分当前数据集最好的特征,按照特征的所有取值进行划分。一旦按照某种特征进行切分后,该特征在之后的计算中就不再起作用。
C4.5:ID3的划分原则有个缺点,它一般会选择属性值较多的特征,C4.5使用“信息增益率”来作为特征切分的准则,同时C4.5还弥补了ID3不能处理特征属性值连续的问题。在信息增益大于平均水平的基础上,选择增益率最大的属性。
CART:它是一棵树,采用二元切分法将数据切成两份分别进入左子树和右子树,采用Gini系数作为切分标准,主要反映切分后数据的不纯度。回归树采用方差缩减作为切分标准。

分类和回归的区别:
回归问题通常是用来预测一个值,如预测房价、未来的天气情况等等,例如一个产品的实际价格为500元,通过回归分析预测值为499元,我们认为这是一个比较好的回归分析。一个比较常见的回归算法是线性回归算法(LR)。另外,回归分析用在神经网络上,其最上层是不需要加上softmax函数的,而是直接对前一层累加即可。回归是对真实值的一种逼近预测。

分类问题是用于将事物打上一个标签,通常结果为离散值。例如判断一幅图片上的动物是一只猫还是一只狗,分类通常是建立在回归之上,分类的最后一层通常要使用softmax函数进行判断其所属类别。分类并没有逼近的概念,最终正确结果只有一个,错误的就是错误的,不会有相近的概念。最常见的分类方法是逻辑回归(使用的函数是sigmoid),或者叫逻辑分类。
回归的方法可以做分类,反之不行!

分类和回归的区别在于输出变量的类型。
定量输出称为 回归,或者说是 连续变量预测;
定性输出称为 分类,或者说是 离散变量预测

生成方法与判别方法区别:
生成方法:由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型即生成模型。典型的生成模型有朴素贝叶斯和隐马尔可夫模型。

判别方法:由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测模型即判别模型。判别方法关心的事对给定的输入X应该预测什么样的输出Y。典型的判别模型包括:kNN,感知机,决策树,LR,最大熵模型,支持向量机,提升方法和条件随机场等。

在监督学习中,生成方法和判别方法各有优缺点:生成方法可以还原联合概率分布,判别方法不能;生成方法收敛速度快;生成方法可以学习存在隐变量的模型,判别方法就不能用;判别方法学习的准确率更高且可以简化学习问题。

正负样本不平衡时:
1.过采样
(1)过采样方法通过增加少数类样本来提高少数类的分类性能,最简单的办法是简单复制少数类样本,缺点是可能导致过拟合, 没有给少数类增加任何新的信息。
(2)SMOTE算法:设置向上采样的倍率为N,即对每个少数类样本都需要产生对应的N个少数类新样本;对少数类中的每一个样本x,搜索得到其k(通常取5)个少数类最近邻样本,并从中随机选择N个样本,记为y1,y2,…,yN(可能有重复值);构造新的少数类样本rj=x+rand(0,1)∗(yj−x),其中rand(0,1)表示区间(0,1)内的随机数。

2.欠采样
欠采样方法通过减少多数类样本来提高少数类的分类性能,最简单的方法是通过随机地去掉一些多数类样本 来减小多数类的规模,缺点是会丢失多数类的一些重要信息,不能够充分利用已有的信息。

3.代价敏感方法
(1)重构训练集的方法。不改变已有算法,而是根据样本的不同错分代价给训练集中的每一个样本赋一个权值,接着按权重对原始样本集进行重构。
(2)引入代价敏感因子,设计出代价敏感的分类算法。通常对小样本赋予较高的代价,大样本赋予较小的代价,期望以此来平衡样本之间的数目差异。

主成分分析PCA:
PCA降维的目标就是:找到一种投影方式,将原来的M维样本y 变成 D维样本x,并且使得投影之后的D维样本x,能够尽可能多地保存原来的样本y中的信息。
https://www.cnblogs.com/hapjin/p/6728697.html

支持向量机:
须记:原公式、利用拉格朗日乘字、对偶公式、KTT条件

线性回归公式推导:
需要的矩阵求导公式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 利用Java与Tesseract-OCR实现数字识别
    本文深入探讨了如何利用Java语言结合Tesseract-OCR技术来实现图像中的数字识别功能,旨在为开发者提供详细的指导和实践案例。 ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 解决Python中 'NoneType' 对象无属性 'find_all' 错误
    本文详细探讨了在Python编程中遇到的常见错误——'NoneType'对象没有属性'find_all',并深入分析其原因及解决方案。通过理解find_all函数的工作原理和常见用法,帮助读者避免类似问题。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • LambdaMART算法详解
    本文详细介绍了LambdaMART算法的背景、原理及其在信息检索中的应用。首先回顾了LambdaMART的发展历程,包括其前身RankNet和LambdaRank,然后深入探讨了LambdaMART如何结合梯度提升决策树(GBDT)和LambdaRank来优化排序问题。 ... [详细]
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 百度搜索结果链接提取工具 UrlGetter V1.43
    该工具专为获取百度搜索引擎的结果页面中的网址链接而设计,能够解析并转换为原始URL。通过正则表达式匹配技术,精准提取网页链接,并提供详细的使用说明和下载资源。 ... [详细]
  • 本文介绍了一段使用jQuery实现的用户注册页面表单验证代码,适用于前端开发人员学习和参考。该示例结合了HTML、CSS和JavaScript,确保用户输入的数据格式正确。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
author-avatar
就是!有梦想
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有