机器学习概念一观
机器学习
频率视角
贝叶斯视角
模型的分类方式
参数模型 --> 数据模型(求未知参数θ,学习对象是随机参数)
典型:线性回归
-
非参数模型(算法模型)的引出
可问题是,如何确定输入与输出之间真实的对应关系是否满足特定的假设呢?当某个数据模
型被以先验的方式确定后,学习的对象就不再是输入输出之间的作用机制,而是这个数据模
型本身。绝大部分数据模型都有简明的解释方式,可如果简单模型不能充分体现出复杂作用
机制(比如医学数据或经济数据)时,它的预测精度就会不堪入目。这种情况下,再漂亮的
解释又有什么意义呢?
非参数模型 --> 算法模型(求未知的映射f(),学习的对象是这个映射)
如:随机森林算法(相对于决策树算法,精确度上升,可解释性下降)
模型的设计准则
无免费的午餐定理(NFL):具体问题具体分析,以特点为根据
奥卡姆剃刀:性能相同,选择简单的模型(关注模型复杂度)
-
误差
-
偏差:模型预测值的期望和真实结果之间的区别
- 方差:同样大小的训练集的变动所导致的学习性能的变化,即数据扰动所造成的影响
-
-
残差:观测值与样本量估计值的差距
除了偏差和方差之外,还存在着噪声(也称为不可约误差)
抛开噪声不论,模型的误差就等于偏差的平方与方差之和。
- 过于简单模型-->欠拟合,偏差较大,方差较小
- 过于复杂模型-->过拟合,偏差较大,方差较小
模型的验证方法
关键词:精度(accuracy),泛化性能
基本的原则就是确保训练集、验证集和测试集三者两两互不相交
留出法(hold-out)
随机采样出一部分数据作为训练集,再采样出另一部分作为验证集
如果机器学习过程不使用验证步骤,那么这种划分方式就相当于拿出大部分数据做训练,剩下的全部留做测试,这也是“留出”这个名称的含义。
k折交叉验证法( k-fold cross validation)
典型的不放回的重采样
原始数据集随机划分为 k 个相同大小的子集,并进行 k 轮验证。每一轮验证都选择一个子集作为验证集,而将剩余的 k-1 个子样本用作训练集。
自助采样(bootstrap)
是有放回的重采样
每次随机从原始数据集中随机抽取一个样本并拷贝到训练集中,将这个样本放回到原始数据集,再重复以上的步骤。在每一轮次的自助采样中,没有被采到的样本会作为测试数据使用。
缺点:这种放回重采样的方式会导致某些数据可能在同一轮验证中多次出现在训练集内,而另一些数据可能从头到尾都没有参与到模型的训练当中。
模型的评估指标
最直观的性能度量指标就是分类的精度(accuracy,与下面的准确率不是一个东西)
机器学习采用了混淆矩阵(confusion matrix),也叫列联表(contingency table)来对不同的划分结果加以区分
准确率P(positive predictive value):
召回率R(true positive rate)
通俗地说,准确率要求把尽可能少的 真实负 判定为 预测正,召回率则要求把尽可能少的 真实正 判定为 预测负
对假阴性(FN)的要求比对假阳性(FT)的要求更加严格
误警率(fall-out):也称假阳性率
受试者工作特征曲线(receiver operating characteristic curve)
简称ROC 曲线
ROC 曲线描述的是真正例率和假正例率之间的关系,也就是收益(真正例)与代价(假正例)之间的关系
在这个正方形里,从 (0, 0) 到 (1, 1) 的对角线代表了一条分界线,叫作无识别率线,它将 ROC 空间划分为左上/右下两个区域
无识别率线描述的是随机猜测的模型,以 0.5 的概率将新来的实例判定为正例,这种模型的 TPR 和 FPR 是处处相等的。
也就是熵值最大,最混乱
在无识别率线左上方,所有点的 TPR 都大于 FPR,意味着分类结果优于二选一的随机猜测;
而在无识别率线右下方,所有点的 TPR 都小于 FPR,意味着分类结果劣于随机猜测
ROC 曲线下面积(Area Under ROC Curve)
简称 AUC,其取值必然在 0 到 1 之间
模型的最优 AUC 大于 0.5,达到比随机猜测更好的判别效果。
如果模型的 AUC 比 0.5 还小,这样的模型可以通过求解其镜像,也就是将分类结果反转来获得优于随机猜测的结果。
特征预处理
数据决定了机器学习的上限,而算法只是尽可能逼近这个上限
这里的数据可不是硬件采集或者软件抓取的原始数据,而是经过特征工程处理之后的精修数据。
特征工程(feature engineering)才是机器学习的关键。
特征缩放
目的:保证所有的特征数值具有相同的数量级
标准化(standardization):
归一化(normalization):
偏度
异常点
可能存在着异常点(outlier)。
首先,检测这些数据的可靠性,判断异常取值是不是由错误或者失误导致,比如那个混进维秘模特里的相扑选手
其次,考虑异常点和正常点是否来源于不同的生成机制,从而具有不同的概率分布。如果对异常点所在的分布的采样数据较少,就不足以体现出分布的特性,导致单个数据点看起来显得突兀。
对于像决策树这类对异常点比较敏感的算法来说,不管来源如何,异常点都需要被处理。
最直接的处理办法就是将异常点移除
但当数据集容量较小时,这种一刀切的方式会进一步减少可用的数据,造成信息的丢失,这时就需要采用名为“空间标识”(spatial sign)的数值处理方法。
数据尺度不一致
即使在没有异常点的情况下,数据依然可能呈现出有偏的分布,这在数字图像处理中并不罕见。有偏分布的一个明显特点是最大值和最小值之间相差较大,通常可以达到20 倍或者更高。
对数据进行去偏度处理的常用方法就是取对数变换(log transformation)
除了对数之外,求平方根和求倒数也是移除偏度的常见处理方式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律