机器学习笔记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-模型评估
© 著作权归作者所有,转载或内容合作请联系作者

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

相关推荐
青春不朽51218 分钟前
Python 里 a is b 有时 True 有时 False?小整数缓存和常量折叠的底层真相
python·spring·缓存
苏渡苇35 分钟前
Spring Insight:跨服务调用链路是怎么串起来的?
spring boot·后端·spring·系统监控·apm
夕除2 小时前
redis--主从还是集群,内存
java·spring·mybatis
白露与泡影2 小时前
Spring Boot 实现验证码:Hutool-captcha、AJ-Captcha、EasyCaptcha 到底怎么选?
java·spring boot·后端
seconp2 小时前
基于Spring Boot和Vue 3的智慧旅游网站:住宿预订、行程规划与千问接入
vue.js·spring boot·毕业设计·软件工程·课程设计·旅游·毕设
vx_bisheyuange2 小时前
基于SpringBoot的校园数字化图书馆系统
spring boot·毕业设计
小蒜学长2 小时前
基于Springboot+Vue的高校教师教学业绩综合管理系统的设计与开发(代码+数据库+LW)
java·数据库·spring boot·后端·教学业绩管理·三级权限
Mikko72 小时前
Spring Boot 3.5.16 自带的 Tomcat 10.1.55 中了哪些 CVE?其中一条是修上一个漏洞时带进来的
java·spring boot·后端·安全·tomcat
十年Java程序媛2 小时前
Java 内部类全解|成员 / 静态 / 匿名内部类,理清和 Lambda 的区别
java·spring boot·面试
霸道流氓气质3 小时前
AI 简历制作平台:结构化输出解析、多模板渲染与 PDF 导出的 Vue3 + Spring AI 全栈实战
人工智能·spring·pdf