省流版
1. 基本知识点:介绍机器学习中一些“基础”但没那么基础的知识点
2. 数理统计:介绍机器学习中必要的数理统计知识点
3. 有监督学习——回归模型
4. 有监督学习——分类模型
5. 无监督学习
内容很多,创作不易,还请三连支持~
文中部分内容来自GPT4.0生成,他已经成为我最重要的的生产力工具。更多使用教程请参见这篇博客:GPT4.0升级使用教程
基本知识点
过拟合
- 定义:过拟合是指模型过于贴合训练集,导致损失函数在验证集上很大,泛化性能很差
- 解决:
- 增加数据量(把原本弯曲的拟合曲线拉直)
- 正则化
正则化
- 定义:在损失函数中加入正则项,达到控制过拟合的目的。
- 方法:通过设置惩罚系数λ,使得影响较小的特征的系数衰减到0,只保留重要的特征,从而减少模型复杂度,进而达到规避过拟合的目的。常用的有L1和L2正则化。
- 目的:
- 模型可能考虑到很多没必要的特征,这些特征对于模型来说就是噪声,正则化可以通过消除噪声从而减少模型复杂度
- 模型特征存在多重共线性(变量之间相互关联)的话可能导致模型多解,而多解模型的一个解往往不能反映模型的真实情况,正则化可以消除关联的特征提高模型稳定性
- L1正则化和L2正则化的区别
L1 | L2 | |
---|---|---|
惩罚项 | λ*Σ|βi| | |
对参数的影响 | 会将不重要参数缩减到0,产生稀疏解(很多参数是0) | 只缩小参数,不缩减参数,让解更平滑,减少参数之间的差异 |
是否选择特征 | 是 | 否 |
鲁棒性 | 受异常值和噪声影响更小 | 易受噪声影响,可以增大惩罚系数λ来解决 |
样本不均衡
- 定义:在一个分类问题中,不同类别的样本数量差异较大,其中一些类别的样本数量明显少于其他类别。这种情况在实际的数据集中是非常常见的,例如在医疗诊断、信用评分、欺诈检测等领域中,正例(少数类别)通常会比负例(多数类别)更为稀少。样本不均衡可能会导致机器学习模型倾向于预测出现频率较高的类别,而忽略了出现频率较低的类别。这可能会导致对少数类别的识别和分类效果不佳,影响模型的预测性能和泛化能力。
- 解决方法
- 欠采样:减少多数类的采样数量
- 过采样:尽量多地增加少数类的的样本数量
- 数据增强:是在不实质性的增加数据的情况下,从原始数据加工出更多数据的表示,提高原数据的数量及质量,以接近于更多数据量产生的价值,从而提高模型的学习效果。
- 改进损失函数:代价敏感学习(为不同的分类错误给予不同惩罚力度(权重),在调节类别平衡的同时,也不会增加计算复杂度)。如sklearn的class weight参数。
例:
其中clf = LogisticRegression(class_weight='balanced', random_state=42)
将会根据训练集中每个类别的样本数量来自动计算权重,使得模型更加关注少数类别。在实际应用中,你也可以手动设置class_weight='balanced'
class_weight
参数为一个字典,指定每个类别的权重。
评价指标
- 混淆矩阵
预测为正例(Positive) | 预测为负例(Negative) | |
---|---|---|
实际为正例(Positive) | True Positive (TP) | False Negative (FN) |
实际为负例(Negative) | False Positive (FP) | True Negative (TN) |
在混淆矩阵中,各项含义解释如下:
- True Positive (TP):模型将正例正确地预测为正例的数量。
- True Negative (TN):模型将负例正确地预测为负例的数量。
- False Positive (FP):模型将负例错误地预测为正例的数量(误报)。
- False Negative (FN):模型将正例错误地预测为负例的数量(漏报)。
2. 准确率(Accuracy):模型预测正确的样本数与总样本数的比率,可通过混淆矩阵的对角线元素之和除以总样本数来计算
3. 精确率(Precision):精确率是指模型在预测为正类的样本中,预测正确的比例,可通过混淆矩阵中正类预测正确的样本数除以所有预测为正类的样本数来计算。
4. 召回率(Recall):召回率是指模型正确识别出的正类样本数占所有正类样本的比例,可通过混淆矩阵中正类预测正确的样本数除以所有真实正类的样本数来计算。
5. F1分数(F1 Score):精确率和召回率的调和平均值,综合考虑了精确率和召回率。
6. ROC曲线和AUC(ROC Curve and AUC):适用于二分类问题,ROC曲线是以假阳率(False Positive Rate)为横轴,真阳率(True Positive Rate)为纵轴的曲线,AUC表示ROC曲线下的面积,即模型将正类排在负类前面的概率。ROC曲线展示了不同阈值下真阳率与假阳率之间的权衡关系,AUC表示模型整体性能,AUC值越接近1,模型性能越好。(一般认为ROC曲线是评价模型性能的最好指标)
大样本 / 小样本
-
大样本:样本量趋于无穷
-
小样本:样本量有限
数理统计知识点
协方差 / 相关系数 / 独立性
协方差
-
定义:两个变量总体的误差,反映两个变量之间的变化趋势(eg. 一个上升,另一个也上升,则协方差为正值)
-
特点:协方差的取值范围是负无穷到正无穷,无法直观地判断两个变量之间的相关性强弱.
相关系数
-
定义:相关系数是协方差的标准化版本,它表示的是两个变量之间的线性关系强度和方向。
-
取值范围:[-1, 1],接近1表示变量之间存在强正相关,接近-1表示变量之间存在强负相关,接近0表示变量之间不存在线性关系。由于样本标准差为正,相关系数和协方差同号。
独立
-
定义:联合概率分布 = 各自的边缘概率分布的乘积
-
辨析:协方差 = 0 ——> 不相关、相关系数 = 0,不能推出彼此独立
-
协方差是相关系数的分子,相关系数反映变量线性相关性
-
线性不相关的变量之间可能存在非线性的影响,因此并不一定是独立的。只有当两个变量既不相关又相互独立时,才能确保它们之间没有任何关系。
显著性水平 / 置信度 / 置信区间
定义:第一类错误的概率也称为显著性水平α,置信度 = 1 - α。置信区间是参数范围(分位数)
置信区间大小的影响因素
-
样本大小:样本量越大,置信区间越窄。
-
置信水平:置信水平越高,置信区间越宽。
-
样本标准差:标准差越大,置信区间越宽。
假设检验是什么?
假设检验:
-
定义:检测实验组与对照组之间是否存在差异以及差异是否显著的办法。在检验之前先确定假设,一般把要检验的假设设为原假设H0,对应的为备择假设H1。
-
过程:先对总体参数提出假设值,再利用样本信息判断假设是否成立
-
方式:单侧检验,双侧检验
-
单侧检验比双侧检验更严格,相同的统计量(如Z),会更靠近单侧拒绝域的分位数,更容易被拒绝
p值
-
定义:实验组和对照组的差别是由随机性导致的可能性大小。p值越小,越证明差异非随机,是差异显著的。
-
通常把要拒绝的假设设置为原假设,p value < α则拒绝原假设。p value此时即表示犯第一类错误的概率(小于α)。
第一类错误:
-
定义:原假设为真,而检验的结论却劝你放弃原假设。
-
显著性水平和置信度:第一类错误的概率也称为显著性水平α,置信度 = 1 - α(原假设为真,劝你接受原假设,称为置信度 = 1 - α)
-
犯第一类错误的原因:错误地拒绝了一个真实为真的假设,通常是由于设定了过高的显著性水平α,导致错误地拒绝了原假设。
第二类错误:
-
定义:原假设不为真,而检验的结论却劝你接受原假设。
-
统计功效:第二类错误的概率被定义为β,统计功效(power,也被称为检验效力),被定义为1-β,表示的是“正确拒绝假设的概率”(原假设为假,也发现了原假设为假,称为统计功效=1-α)
-
**犯第二类错误的原因:**过低的显著性水平,过少的样本量导致忽略了本来存在的效应(对应本来很小的p-value)
减少第一类和第二类错误的方法
-
减少第一类:提高置信水平(降低显著性水平α)
-
减少第二类:提高统计功效 1 - β
-
具体:
三种经典分布
t分布:Python:scipy.stats.t.pdf(x)
卡方分布:Python:scipy.stats.chi2.pdf(x)
Z分布:Python:scipy.stats.norm(x, 0,