机器学习笔记2 - 机器学习的一般流程


image.png

1、数据基本处理

数据集的划分

  • 根据用途可将获取到的数据划分为训练集和测试集,有时还会有验证集。
  • 一般而言训练集用于训练模型,测试集用于测试模型的效果(泛化误差)。严格来讲,测试集的数据不能直接或间接(根据测试结果来调整模型参数)的用于模型训练。
  • 验证集在模型训练阶段不会带入模型进行训练,但当模型训练结束之后,我们会把模型带入验证集进行计算,通过观测验证集上模型运行结果,判断模型是否要进行调整,验证集也会模型训练,只不过验证集训练的不是模型参数,而是模型超参数。
  • 训练集和测试集的划分:可以随机划分,一般情况下70%-80%作为训练集、20%-30%作为测试集。
  • 总的来说,测试集是严格不能带入训练的数据集,在实际建模过程中我们可以先把测试集切分出来,然后"假装这个数据集不存在",在剩余的数据集中划分训练集和验证集,把训练集带入模型进行运算,再把验证集放在训练好的模型中进行运行,观测运行结果,再进行模型调整。
  • 在一些不太严谨的情况下会混用测试集和验证集,不对二者进行区分;但在一些情况下(如在线提交结果的数据竞赛),是需要对二者做严格的区分的。
  • 在机器学习理论体系中,一个更加严谨的做法,是先划分训练集和测试集,然后再在训练集上划分测试集,并且"训练集-测试集"划分方法用于进行模型参数训练,而"训练集-验证集"的划分方法主要用于进行模型超参数选取。

2、特征工程

  • 使用专业知识是的特征能在机器学习算法上发挥更好的作用的过程。

2.1 特征提取

特征通常来自文献调研,看同行在解决同类问题时都使用了哪些特征;也可自行引入新的特征。

2.2 特征预处理

2.3 特征降维

去掉对模型影响不大的特征

常用的线性降维方法,如PCA;非线性降维方法,如tSNE,UMAP。

3、机器学习

3.1 提出基本模型

基于对数据的初步认识,或者分析的需求,提出一个模型。

3.2 确定损失函数(可自定义)

根据模型确定损失函数并进行构建

3.3 根据损失函数的性质,选择优化放法(求最小值)

  • 最小二乘法(适用范围有限)

3.4 利用优化算法进行损失函数求解

计算出模型的测试/泛化误差

3.5 调参或更换其他模型

基于测试结果调整模型参数

若调整参数仍无法得到理想的结果,则可以考虑更换模型,并重复3.2 ~ 3.4的步骤。

4、模型评估

机器学习笔记3-模型评估
© 著作权归作者所有,转载或内容合作请联系作者

喜欢的朋友记得点赞、收藏、关注哦!!!

相关推荐
Pitayafruit19 小时前
Spring AI 进阶之路05:集成 MCP 协议实现工具调用
spring boot·后端·llm
韩立学长19 小时前
【开题答辩实录分享】以《自助游网站的设计与实现》为例进行选题答辩实录分享
java·mysql·spring
不像程序员的程序媛19 小时前
Spring的cacheEvict
java·后端·spring
谷哥的小弟20 小时前
Spring Framework源码解析——PropertiesLoaderUtils
java·后端·spring·框架·源码
JIngJaneIL21 小时前
基于java+ vue助农电商系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
q_191328469521 小时前
基于Springboot+MySQL+RuoYi的会议室预约管理系统
java·vue.js·spring boot·后端·mysql·若依·计算机毕业设计
VX:Fegn08951 天前
计算机毕业设计|基于springboot + vue乡村振兴服务系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
岳轩子1 天前
DDD领域驱动设计:核心概念、实践结构与框架对比
java·spring
何中应1 天前
Bean的三种注入方式
开发语言·spring boot·后端·spring
Lucky_Turtle1 天前
【Springboot】解决PageHelper在实体转Vo下出现total数据问题
java·spring boot·后端