首页 > 其他分享 >机器学习

机器学习

时间:2023-03-14 19:59:58浏览次数:28  
标签:机器 训练 模型 学习 测试 数据 评估

机器学习

西瓜书、南瓜书、沐神、吴恩达、哔站

1、概念:

经典定义:利用经验改善系统自身的性能。

机器学习主要研究如何使用计算机从给定数据中学习规律,并利用学习到的规律(模型)来对未知或无法预测的数据进行预测。

image-20230227170532640

学习方式:

1、监督学习

2、无监督学习——聚类

3、半监督学习

4、强化学习

学习结果:

1、回归

2、分类

2、泛化

机器学习泛化是指机器学习模型能够在之前未见过的数据上进行准确预测的能力。简而言之,泛化能力是指模型从训练集中学习到的规律能够应用到测试集或实际场景中的数据中,而不是简单地记忆训练数据。泛化能力是衡量机器学习模型好坏的重要指标之一,好的模型应该具备较强的泛化能力。

3、典型的机器学习过程

  1. 确定问题和目标:首先需要明确需要解决的问题以及希望达成的目标,例如分类、回归或聚类等。

  2. 数据收集和预处理:接下来需要收集相关数据,并且对数据进行处理,包括数据清洗、缺失值处理、特征选择和特征变换等。

  3. 特征工程:在数据预处理之后,需要对数据进行特征工程,提取并选择最有用的特征,以提高模型的准确性和泛化能力。

  4. 模型选择和训练:根据问题类型和数据情况,选择适当的机器学习算法和模型,并使用训练数据对模型进行训练和调参。

  5. 模型评估和优化:使用测试集对模型进行测试和评估,查看模型的性能表现并进行优化,如调整模型参数、选择更合适的特征等。

  6. 部署模型:最后,将优化后的模型部署到实际环境中,并进行实时预测和监控。需要确保模型的稳定性、可靠性和可维护性,并不断微调和更新模型。

4、评估方法有以下几种

  1. 留出法(Holdout Method):将数据集划分为训练集与测试集两部分,训练集用于模型的训练,测试集用于模型的测试和评估。
  2. 交叉验证法(Cross-validation Method):将数据集分成k个子集,每个子集都作为测试集,其他k-1个子集作为训练集,这样会产生k个模型,通过计算这k个模型的平均误差来评估模型的性能。
  3. 自助法(Bootstrap Method):利用自助采样技术从原始数据集中随机抽取采样得到一个新的采样数据集,这个采样数据集和原始数据集一样大小,但存在一些重复的样本数据,这样可以通过多次自助采样得到多组训练集和测试集,评估模型性能的平均误差。
  4. 基于学习曲线的评估方法(Learning Curve Method):将数据集分成训练集和测试集,逐步增加训练集的数量,计算模型的训练误差和测试误差随着训练集大小的变化而变化的曲线,通过判断误差曲线是否收敛,评估模型的性能。
  5. 基于预测结果的评估方法(Prediction Result Method):比较模型预测结果与实际结果的差别,包括准确率、精确率、召回率、F1值等指标。

5、调参与验证集

机器学习调参是指寻找最优模型的情况下,对模型中某些超参数进行修改,以达到更好的预测效果。常见的调参方法包括网格搜索、随机搜索、贝叶斯优化等。

在进行调参时,需要保证模型的泛化能力,因此需要使用验证集对模型进行评估,防止过拟合。

通常将数据集划分为训练集、验证集和测试集三部分,训练集用于模型的训练,验证集用于模型的验证和调参,测试集用于最终模型的评估。

在调参时,要注意避免使用测试集进行模型的选择和调参,否则测试集的性能评估就失去了意义。

6、比较检验

机器学习比较检验是指通过对数据中不同模型的性能进行比较来评估模型预测能力的方法。在比较检验中,通常采用交叉验证、留一法、自助法等方法来对模型进行评估。

常见的机器学习比较检验方法包括:

1.交叉验证:将数据集划分为训练集和测试集,通过多个实验来评估模型的性能。

2.留一法:将一个样本作为测试集,剩余的样本作为训练集,重复n次,最终取平均值作为性能评估。

3.自助法:有放回地从数据集中采样得到一组新的数据集,采样的数据可以重复,使用这些新数据集来训练和测试多个模型,通过比较性能来评估模型。

在比较检验的过程中,需要注意的是选择适当的性能指标,如准确率、召回率、F1值等,在选用性能指标时要考虑实际应用场景的需求。同时还需要考虑所比较的模型的特性,如有些模型适用于稠密数据,有些适用于稀疏数据,应根据数据的特点选择合适的模型。

7、Scikit-learn

Scikit-learn是一个开源的Python机器学习工具包,它是基于numpy, scipy和matplotlib库开发而来。它提供了众多的机器学习算法,比如分类、回归、聚类、降维等,同时也提供了数据预处理、模型选择、模型评价等功能。

Scikit-learn提供了简单而一致的API,非常适用于机器学习初学者。它也提供了大量的文档与示例程序,用户可以通过阅读文档和运行示例程序来学习和使用这个工具包。

以下是一些Scikit-learn提供的的机器学习算法和方法:

  • 分类算法:支持向量机、决策树、朴素贝叶斯、最近邻、神经网络等。
  • 回归算法:线性回归、岭回归、Lasso回归、弹性网络、SVR等。
  • 聚类算法:K-Means、高斯混合模型、谱聚类等。
  • 降维算法:PCA、LDA、Kernel PCA、t-SNE等。
  • 数据预处理:特征提取、特征缩放、特征选择、数据清洗等。
  • 模型选择与评价:交叉验证、网格搜索、评价指标等。

Scikit-learn同时也提供了一些适用于大数据量的机器学习算法扩展,如通过多处理器并行计算和外部内存计算来加速训练和预测过程。

标签:机器,训练,模型,学习,测试,数据,评估
From: https://www.cnblogs.com/fyuan0206/p/17216080.html

相关文章

  • 机器学习日志 泰坦尼克飞船 Spaceship Titanic
    PassengerId——乘客编号。每个编号的形式都表示乘客与是否是组团旅行有关,比如家庭出游,集体出差等,因此编号中有部分是表示他们在团队中的号码。但有部分乘客是独自旅行。H......
  • Docker学习
    阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors  docker启动命令1启动dockersystemctlstartdocker2关闭dockersystemc......
  • 使用iptabels将主机的所有流量转发至其他机器
    iptables是一个Linux内核中的包过滤工具,可以用来过滤、转发、修改、控制网络流量等。如果想要将主机的所有流量转发至其他机器,可以使用iptables进行配置。以下是具体步骤:......
  • 系统化学习前端之浏览器(V8)
    V8浏览器内核:内容排版引擎(HTML和CSS)和JavaScript引擎。V8是Google开源的JavaScript引擎,目前应用在Chrome浏览器和NodeJs中,其本质是JavaScript虚拟机,可以......
  • Linux & 标准C语言学习 <DAY13>
    一、字符串  字符:类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号  串:是一种数据结构,存储类型相同的若干个数据,对于串型结构......
  • 操作系统学习笔记(二)
    操作系统接口什么是操作系统接口?系统调用。POSIX:PortableOperatingSystemInterfaceofUnix(IEEE制定的一个标准族)分类POSIX定义描述任务管理fork创建一个......
  • TypeScript 学习笔记 — infer 类型推导、类型兼容 (九)
    目录1.ReturnType返回值类型2.Parameters参数类型3.InstanceType实例类型4.ConstructorParameters构造函数参数类型5.infer实践更改元组类型将元组转换成联合类型获取......
  • MarkDown 学习1
    常用弥补MarkDown的HTML标签字体字体及字体颜色和大小字体颜色换行使用html标签<br/>换行文本居左文本居中文本居右下划线typeIMyService=interfaceproc......
  • 机器人与无人驾驶软件架构设计所需要注意的几个点
    1.由于系统可能与多端通信,应尽量采用json作为外部通信格式。因为json是在各平台都被较好支持的一种数据格式。它可以较好的兼容与Android、Qt、Web等多端的通信。2.系统......
  • 【教程】万字长文保姆级教你制作自己的多功能QQ机器人
    ​​前言​​​​功能清单​​​​免费领取轻量应用服务器​​​​SSH连接服务器​​​​常见Ubuntu软件安装与问题修复​​​​搭建mirai环境​​​Python控制mirai篇​​......