机器学习:建模流程
2024-09-12 14:24:44 0 举报
AI智能生成
机器学习 模型建模流程 基本概念
作者其他创作
大纲/内容
参考
一文全览机器学习建模流程(Python代码)<br>
一文看懂机器学习指标:准确率、精准率、召回率、F1、ROC曲线、AUC曲线
明确问题
明确业务场景,明确需要解决何种业务问题,抽象化业务问题
确定建模目标
分类问题
二分类
多分类
回归问题
线性回归
非线性回归
数据选择
“数据和特征决定了机器学习结果的上限,而模型算法只是尽可能逼近这个上限”
重点
数据的代表性
数据质量差或无代表性,会导致模型拟合效果差
数据时间范围
对于监督学习的特征变量X及标签Y,如与时间先后有关,则需要划定好数据时间窗口,<br>否则可能会导致数据泄漏,即存在和利用因果颠倒的特征变量的现象。<br>如预测明天会不会下雨,但是训练数据引入明天温湿度情况<br>
数据业务范围
明确与任务相关的数据表范围,避免缺失代表性数据或引入大量无关数据作为噪音。
数据收集
数据源选择
数据采集方法
特征工程
特征工程就是对原始数据分析处理转化为模型可用的特征,这些特征可以更好地向预测模型描述潜在规律,从而提高模型对未见数据的准确性。
三个步骤
EDA<br>探索性数据分析<br>
数据分布、缺失、异常及相关性等情况
数据预处理
异常值处理
收集的数据由于人为或者自然因素可能引入了异常值(噪音),这会对模型学习进行干扰。 <br>通常需要处理人为引起的异常值,通过业务或技术手段(如3σ准则)判定异常值,<br>再由(正则式匹配)等方式筛选异常的信息,并结合业务情况删除或者替换数值。<br>
缺失值处理
数据缺失值可以通过结合业务进行填充数值、不做处理或者删除。
处理方式
缺失率较高,并结合业务可以直接删除该特征变量。
缺失率较低,结合业务可使用一些缺失值填充手段。
Pandas的fillna方法
训练回归模型预测缺失值并填充
不做处理
部分模型如随机森林、xgboost、lightgbm能够处理数据缺失的情况,不需要对缺失数据再做处理。
数据离散化
离散化是将连续的数据进行分段,使其变为一段段离散化的区间,分段的原则有等宽、等频等方法。
通过离散化一般可以增加抗噪能力、使特征更有业务解释性、减小算法的时间及空间开销(不同算法情况不一)。
数据标准化
数据各个特征变量的量纲差异很大,可以使用数据标准化消除不同分量量纲差异的影响,加速模型收敛的效率。
常用方法
min-max 标准化
可将数值范围缩放到(0, 1)且无改变数据分布。
z-score 标准化
可将数值范围缩放到0附近, 经过处理的数据符合标准正态分布。
特征提取
特征表示
数据需要转换为计算机能够处理的数值形式
图片类的数据需要转换为RGB三维矩阵的表示。
字符类的数据可以用多维数组表示,有Onehot独热编码表示(用单独一个位置的1来表示)、word2vetor分布式表示等;
特征衍生<br>特征构建
特征衍生是对现有基础特征的含义进行某种处理(聚合/转换之类)
结合业务的理解做人工衍生设计
特征组合<br>
计数
最大值
最小值
平均数
自定义函数
特征转换
数值类
加减乘除等运算
排序编码
多列统计
字符串类型
截取
统计频次
统计字符长度
日期类型
日期间隔
月份、周几、小时数
使用自动化特征衍生工具
Featuretools
聚合(agg_primitives)
转换(trans_primitives)
自定义方式
特征选择
特征选择的目标是寻找最优特征子集,通过筛选出显著特征、摒弃冗余特征,减少模型的过拟合风险并提高运行效率。
方法
过滤法
计算特征的缺失情况、发散性、相关性、信息量、稳定性等类型的指标对各个特征进行评估选择,<br>常用如缺失率、单值率、方差验证、pearson相关系数、chi2卡方检验、IV值、信息增益及PSI等方法。<br>
包装法
通过每次选择部分特征迭代训练模型,根据模型预测效果评分选择特征的去留,如sklearn的RFE递归特征消除。
嵌入法
直接使用某些模型训练得到特征重要性,在模型训练同时进行特征选择。<br>通过模型得到各个特征的权值系数,根据权值系数从大到小来选择特征。<br>常用如基于L1正则项的逻辑回归、XGBOOST特征重要性选择特征。<br>
特征降维
如果特征选择后的特征数目仍太多,这种情形下常会有数据样本稀疏、距离计算困难的问题(称为 “维数灾难”),可以通过特征降维解决。<br>
常用降维方法
PCA<br>principle component analysis<br>主成分分析法<br>
主成分分析法是一个非监督的机器学习算法,是一种用于探索高维数据结构的技术,主要用于对数据的降维,通过降维可以发现更便于人理解的特征,加快对样本有价值信息的处理速度,此外还可以应用于可视化(降到二维)和去噪。
模型训练
数据集划分
常用方法
Holdout cross validation<br>留出法<br>
对于一个整理好的数据集,随机选择一部分样本作为训练数据即训练集,用于训练模型,剩下的部分用于测试模型,作为测试集。 <br>在划分训练集和测试集的时候,须要遵循的原则之一是保持数据分布的一致性。<br>
LOO<br>Leave-One-Out<br>留一交叉验证<br>
LPO<br>Leave-P-Out<br>留P法<br>
k-fold cross validation<br>k折交叉验证<br>
划分
训练集<br>training set<br>
训练集<br>training set<br>
用于运行学习算法,训练模型。
开发验证集<br>development set<br>
用于调整超参数、选择特征等,以选择合适模型。
测试集<br>test set
只用于评估已选择模型的性能,但不会据此改变学习算法或参数。
模型方法选择
结合当前任务及数据情况选择合适的模型方法。
常用方法
scikit-learn 工具包
结合多个模型做模型融合
训练过程
模型的训练过程即学习数据经验得到较优模型及对应参数(如神经网络最终学习到较优的权重值)。<br>整个训练过程还需要通过调节超参数(如神经网络层数、梯度下降的学习率)进行控制优化的。<br>
超参数调试
调节超参数是一个基于数据集、模型和训练过程细节的实证过程,需要基于对算法的原理理解和经验,借助模型在验证集的评估进行参数调优
自动调参技术
网格搜索
随机搜索
贝叶斯优化
正则化技术
L1正则化
L2正则化
Elastic Net
训练过程监控
损失函数监控
过拟合与欠拟合监控
模型评估
机器学习的直接目的是学(拟合)到“好”的模型,不仅仅是学习过程中对训练数据的良好的学习预测能力,根本上在于要对新数据能有很好的预测能力(泛化能力),所以客观地评估模型性能至关重要。
评估指标
图例
混淆矩阵分析
TP<br>真正例<br>真阳性
FP<br>假正例<br>假阳性
TN<br>真反例<br>真阴性
FN<br>假反例<br>假阴性
分类模型评估指标
Accuracy<br>准确率
准确率 =(TP+TN)/(TP+TN+FP+FN)
预测正确的结果占总样本的百分比
Precision<br>精确率<br>差准率<br>查准率<br>
精确率 =TP/(TP+FP)
查准率是指分类器分类正确的正样本(TP)个数占该分类器所有预测为正样本个数(TP+FP)的比例
Recall<br>查全率<br>召回率<br>
召回率=TP/(TP+FN)
实际为正的样本中被预测为正样本的概率
查全率是指分类器分类正确的正样本(TP)个数占所有的正样本个数(TP+FN)的比例。
F1-score<br>F1 分数
F1_score = (2×Precision×Recall)/(Precision+Recall)
F1-score是查准率P、查全率R的调和平均
回归模型评估指标
MSE<br>均方误差<br>
反馈的是预测数值与实际值的拟合情况。
RMSE<br>均方根误差<br>
MAE<br>平均绝对误差<br>
R2 score<br>决定系数<br>
聚类模型评估指标
external index<br>外部指标<br>
将聚类结果与某个“参考模型”的结果进行比较
例如
兰德指数
FM指数
internal index<br>内部指标<br>
直接考察聚类结果而不利用任何参考模型
例如
紧凑度
分离度
模型评估及优化
误差
training error<br>训练误差
在训练数据上的误差
test error<br>测试误差<br>
也叫
generalization error<br>泛化误差
在测试数据上的误差
模型拟合(学习)程度
通过训练误差及测试误差评估模型的拟合程度。
Underfitting<br>欠拟合<br>
欠拟合是指相较于数据而言模型结构过于简单,以至于无法学习到数据中的规律。
拟合良好<br>
Overfitting<br>过拟合<br>
过拟合是指模型只过分地匹配训练数据集,以至于对新数据无良好地拟合及预测。
图例
模型决策
决策应用是机器学习最终目的,对模型预测信息加以分析解释,并应用于实际的工作领域。<br>需要注意的是,工程上是结果导向,模型在线上运行的效果直接决定模型的成败,不仅仅包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性的综合考虑。<br>
模型部署
模型部署流程
环境准备
模型封装
接口设计
模型监控与迭代
性能监控
错误分析
模型更新策略
0 条评论
下一页