机器学习-生命周期

devtools/2025/2/21 10:02:15/

假如一个用户向银行申请贷款,银行该如何对这个用户进行评估?很明显,银行首先需要调查清楚该用户的资金储备情况和信用历史等,然后再决定是否向其放款。

整个机器学习生命周期如下图所示:

1、定义问题

在使用机器学习中的术语表述上述用户申请贷款的例子时,可转换为二分类法评估用户的信用:信用好可以放款,信用差则拒绝放款。
针对评估用户的信用问题,我们有哪些解决方案?人工审核或者采用机器学习的方式。假如确定采用机器学习的方式:


最重要的是,应该如何衡量机器学习的结果,这个结果和期望相差多少如何减小这种差距。第一步便是定义问题,这需要团队成员同思考,给出各自的建议和理解,确定解决问题的思路。

2、收集数据

收集数据的数量和质量一定程度上决定了模型预测的效果。通常来说,数据量越大,训练出的模型质量越好

在模型评估阶段,我们还需要对数据集进行划分,以一定的比例将其划分为训练集和测试集。举个例子,若以 7:3 的比例划分,则数据集的 7/10 作为训练数据剩下的 3/10 是测试数据,

3、特征工程

数据收集过程中,获取到的原始数据由于可能存在空值或者错误值等,通常是不能直接应用于模型的,因此需要将其通过业务理解、数据变换、特征交叉与组合的方式转化成模型训练和预测可直接使用的特征。

如图所示,特征就是原始数据经过挖掘处理后的数值表示获取特征的过程称为特征工程,即原始数据会经过数据预处理,然后对数据进行挖掘处理后的数据


特征挖掘表示基于业务需求、收集到的数据和技术(压缩感知、稀疏编码等),构造出能够帮助描述问题的特征。例如,银行在判断是否向某个用户放款时,可以使用 30 天内信用卡是否逾期作为一维特征。
特征选择就是挑选出能够深刻描述研究问题特征的过程。如果在构造的特征中多数特征不合适(与研究问题没有很大的相关性),那么型训练的困难和成本将会提高,甚至训练过程中会出现一些影响模型性能的错误。

4、训练模型

4.1、模型选择

可以根据实际的数据结构和业务需求对模型进行初步的筛选。如果数据是时序数据,则擅长学习时序关系的模型是比较好的选择,如果是图片数据,那么卷积神经网络会更合适。

4.2、调参

这些经验可能来源以下几个方面:

  • 对模型评估指标的理解。
  • 对数据和业务的经验。
  • 通过不断地评估模型,选择使模型效果最优的参数。

调参的目的提高模型的某个评估指标最简单的调参方式是在学习曲线上找出最优值,以便能够将准确率修正到一个比较高的水平。

4.3、模型评估

在建模过程中,由于只使用了有限的数据,因此模型很可能会出现过拟合或者欠拟合的问题。

在模型评估时,经常要对数据集进行划分(分为训练数据集测试数据集),划分数据通常要保证两个条件。

  • 训练数据集和测试数据集的分布要与样本的真实分布一致,即训练集和测试集都要保证是从样本中独立采样得到的。
  • 训练数据集和测试数据集要互斥,即两个子集之间没有交集。

基于划分方式的不同,评估方法可以分为留出法、交叉验证法及自助法。基于不同方法的特点,在样本量较多的情况下,一般选择留出法或交叉验证法来对数据进行分类,在样本较少的情况下采用自助法。

分类问题中最常用的两个性能度量标准是准确率错误率。这两个标准是分类问题中简单、直观的评价标准。但它们都存在一个问题,即在类别不平衡的情况下,它们都无法有效评价模型的泛化能力。由于此种隐患的存在,又构造了其他相对公平的评估标准,如精确率、召回率、ROC和AUC 等。

5、模型部署

机器学习生命周期的最后一步是部署。如果开发模型能够按照我们的要求以可接受的速度生成准确的结果,那么就可以将该模型部署到实际系统中。


http://www.ppmy.cn/devtools/160653.html

相关文章

VirtualBox 中使用 桥接网卡 并设置 MAC 地址

在 VirtualBox 中使用 桥接网卡 并设置 MAC 地址,可以按照以下步骤操作: 步骤 1:设置桥接网卡 打开 VirtualBox,选择你的虚拟机,点击 “设置” (Settings)。进入 “网络” (Network) 选项卡。在 “适配器 1” (Adapt…

rustdesk编译修改名字

最近,我用Rust重写了一个2W行C代码的linux内核模块。在此记录一点经验。我此前没写过内核模块,认识比较疏浅,有错误欢迎指正。 为什么要重写? 这个模块2W行代码量看起来不多,却在线上时常故障,永远改不完。…

nginx配置:nginx.conf配置文件

nginx.conf配置文件说明 基本结构 全局块:位于最外层,定义影响整个Nginx服务器的设置。事件块:配置网络连接相关的设置。HTTP块:定义HTTP服务器以及反向代理、负载均衡等特性。Server块:定义虚拟主机,即响…

常见Linux命令

第八章 常见Linux命令 学习目标 1 熟练文件目录类命令 2 熟悉用户管理命令 3 熟悉组管理命令 4 熟练文件权限命令 5 熟悉搜索查找类命令 6 熟练压缩和解压缩命令 7 熟练进程线程类命令 8 了解磁盘分区类命令 第一节 文件目录类命令 (1)pwd打印…

网络安全“挂图作战“及其场景

文章目录 一、网络安全挂图作战来源与定义1、网络安全挂图作战的来源2、网络安全挂图作战的定义 二、挂图作战关键技术三、挂图作战与传统态势感知的差异四、挂图作战主要场景五、未来趋势结语 一、网络安全挂图作战来源与定义 1、网络安全挂图作战的来源 网络安全挂图作战的…

Python Cookbook-2.1 读取文件

任务 文件中读取文本或数据。 解决方案 最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中: all_the_text open(thefile.txt).read()#文本文件中的所有文本 all_the_data open(abinfile,rb).read() #二进制文件中的所有数据为了安全起见,最好还…

拦截器VS过滤器:Spring Boot中请求处理的艺术!

目录 一、拦截器(Interceptor)和过滤器(Filter):都是“守门员”!二、如何实现拦截器和过滤器?三、拦截器和过滤器的区别四、执行顺序五、真实的应用场景六、总结 🌟如果喜欢作者的讲…

Chrome Edge 开启多线程下载

开启步骤 Chrome浏览器 地址栏输入并回车:chrome://flags/#enable-parallel-downloading Edge浏览器(Chromium 内核) 地址栏输入并回车:edge://flags/#enable-parallel-downloading 将默认的 Default 改成 Enabled 然后重启即可