1. 1. 写在前面:一些重要的参数(持续更新中)
  • 1.R语言基础
    1. 1. 向量运算
    2. 2. 创建矩阵
    3. 3. 创建数组
    4. 4. 创建数据框
    5. 5. 数据输入
    6. 6. 处理数据对象的函数
    7. 7. 绘图函数
      1. 7.1. 散点图,箱线图
      2. 7.2. 多个变量之间关系的散点图
      3. 7.3. 分割画布的函数
      4. 7.4. 画方格辅助线的函数
      5. 7.5. 直方图
    8. 8. 描述性统计量
  • 2.参数方法:简单线性回归与多元线性回归
    1. 1. 要考虑到的问题?
      1. 1.1. 预测变量与响应变量:
        1. 1.1.1. (1)有关系吗?答:进行假设检验
      2. 1.2. case1:简单线性回归
    2. 2. *注意!
    3. 3. 重要结论:p值足够小,我们就可以拒绝零假设,认为预测变量与响应变量之间有关系
      1. 3.0.1. (2)关系有多强?观察:p值,r(相关系数)
    4. 3.1. case2:多元线性回归
  • 4. 问题:什么叫很大?到底应该多大我们才能拒绝零假设
    1. 4.1. 在p<n的前提下,取决于n,p的相对大小:
  • 5. 维度爆炸问题?考虑极端情况:p很大很大甚至p>n(维度爆炸!!)
  • 6. !此时考虑一些方法来自动选择更好的预测变量(向前选择法以及第六章介绍的那些~)
  • 7. (2)判断一个模型的质量:预测的准不准?观察:
  • 8. (3)如何看图说话
    1. 8.1. 1.那那那四个重要的图像(仙之人兮列如麻)
      1. 8.1.1. 残差-预测值图
      2. 8.1.2. 共线性
      3. 8.1.3. 离群点
      4. 8.1.4. 高杠杆点
    2. 8.2. 去除高杠杆点比去除离群点对线性回归的影响更大
    3. 8.3. 2.summary()函数的结果怎么看
  • 9. (4)重要假设:误差项不可自相关
    1. 9.1. 为什么误差项会自相关?时间序列数据会呈现误差项自相关
    2. 9.2. 误差项自相关会导致什么问题?
  • 3.非参数方法:KNN 回归 与 参数方法:线性回归 的对比
    1. 0.1. 最优K值的选择:偏差,方差权衡问题
    2. 0.2. KNN存在的问题:
      1. 0.2.1. 1.对噪声敏感
      2. 0.2.2. 2.维度越高效果越差,需要保证每个维度有足够的预测变量:
    3. 0.3. 重要结论:若每个预测变量仅有少量观测,参数化方法往往优于非参数方法
      1. 0.3.1. 3.低维条件下可解释性不如线性回归模型
  • 1. PS:KNN分类与KNN回归的区别
  • 6.
  • 7.非线性
  • 4.分类
    1. 1. 逻辑斯蒂回归(p=1):
      1. 1.1. 使用极大似然估计回归系数
    2. 2. 多元逻辑斯蒂回归(p=1)
    3. 3. 线性判别分析:
      1. 3.1. 贝叶斯分类器:
      2. 3.2. p=1的线性判别分析
      3. 3.3. 线性判别方法:LDA
      4. 3.4. LDA在p>1的多元线性判别分析中的应用
      5. 3.5. QDA二次判别分析
    4. 4. (重要)判断分类模型好坏的标准:
    5. 5. 以上分类方法+KNN分类 比较
      1. 5.1. (1)逻辑斯蒂回归vs线性判别分析
      2. 5.2. (2)LDA vs 逻辑斯蒂回归
      3. 5.3. (3)LDA vs QDA
      4. 5.4. 总结
  • 5.重抽样方法:找到最合适的光滑度
    1. 0.1. (1)验证集方法:
    2. 0.2. (2)交叉验证法
      1. 0.2.1. 二者比较
    3. 0.3. (3)自助法(bootstrap)
  • 8.基于树的方法
  • 9.支持向量机
  • 10.无监督学习
  • 狗都不学R语言系列:一份问题驱动生成的机器学习笔记

    写在前面:一些重要的参数(持续更新中)

    n–预测变量的个数
    p–响应变量的个数
    –标准差
    –不可约误差

    1.R语言基础

    向量运算

    ![[Pasted image 20241116101340.png]]

    • sort():排序
    • rev():倒序
    • table():出现次数
    • unique():删除重复的元素/行

    创建矩阵

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    m<-matrix(1:20,nrow=5,ncol=4)

    #选择一行
    m[2, ]
    #选择一列
    m[ ,1]
    #选择一个元素
    m[2,3]

    a=b=matrix(1:12,nrow=3,ncol=4)
    #矩阵加法,减法
    a+b
    a-b
    #矩阵乘法
    b=matrix(1:12,nrow=4,ncol=3)
    a%*%b

    创建数组

    ![[Pasted image 20241116102306.png]]

    创建数据框

    1
    df <- dataframe(x = 1:3 , y = c('a','b','c'))

    ![[Pasted image 20241116102448.png]]
    ![[Pasted image 20241116102457.png]]

    数据输入

    1
    2
    3
    4
    5
    df=read.table(file="111.txt",header=TRUE)
    df=read.csv(file="111.csv",header=TRUE)

    write.table(df,file="111.txt")
    write.csv(df,file="111.csv")

    处理数据对象的函数

    1.删改

    • rm(obj,obj,…):删除一个或多个对象
    • fix(obj):直接编辑某个对象
    • newobj <- edit(obj):编辑并另存为newobj

    2.显示

    • head(obj):输出某个对象的开始部分
    • tail(obj):输出某个对象的结尾部分
    • ls():显示当前对象列表
    • dim():维度
    • str():结构
    • length():元素个数
    • mode():模式
    • class():类型
    • names():各个成分名称

    3.合并

    • c(obj,obj,…):合并多个对象
    • cbind(obj,obj,…):按列合并多个对象
    • rbind(obj,obj,…):按行合并多个对象

    ![[Pasted image 20241116103351.png]]

    绘图函数

    散点图,箱线图

    plot()

    多个变量之间关系的散点图

    pairs(var1,var2)

    分割画布的函数

    par()

    画方格辅助线的函数

    grid()

    直方图

    hists()

    描述性统计量

    sort()

    2.参数方法:简单线性回归与多元线性回归

    • 一种简单的监督学习方法
    • 假定:预测变量X{X1,X2,…}与响应变量Y之间存在线性关系
    • 参数:
    • 定义:****
    • 重要假设:误差项不可自相关

    要考虑到的问题?

    预测变量与响应变量:

    (1)有关系吗?答:进行假设检验

    case1:简单线性回归

    零假设

    备择假设

    数学上相当于检验


    进行假设检验的理由:如果则模型简化为,表达式跟预测变量无关

    检验零假设:t统计量与p值

    t统计量

    假设:不可约误差服从标准正态分布
    此时有t统计量服从t分布

    假设=0,可以得到任意观测值大于等于|t|的概率,在图像上其实|t|就是大于某个值的尾概率值,这个尾概率值就是p值
    这个尾概率值越小,|t|越大,越不可能为0,越能够拒绝零假设

    *注意!

    有时预测变量和响应变量之间不一定符合t分布,有可能是F,z分布或者其他,但是p值的定义和作用不变*

    重要结论:p值足够小,我们就可以拒绝零假设,认为预测变量与响应变量之间有关系

    (2)关系有多强?观察:p值,r(相关系数)

    针对某一个预测变量:如果p值小于某一个阈值,如0.05,则认为p值很小,可以拒绝零假设

    r的绝对值越接近1,相关性越强(r中的cor())

    case2:多元线性回归

    零假设:

    备择假设:

    进行假设检验的理由:如果
    则模型简化为
    表达式跟预测变量无关

    检验零假设:F统计量与p值

    区别:即使不可约误差不服从标准正态分布,样本数量n够多,F统计量依然近似服从F分布
    预测变量与响应变量无关,F统计量略小于1
    预测变量与响应变量有关,F统计量应该很大

    问题:什么叫很大?到底应该多大我们才能拒绝零假设

    在p<n的前提下,取决于n,p的相对大小:

    • 当n相对p很大时,F略大于1,我们就可以拒绝零假设
    • 当n相对p很小时,F远远大于1,我们才能拒绝零假设

    维度爆炸问题?考虑极端情况:p很大很大甚至p>n(维度爆炸!!)

    笑死,最小二乘根本用不了,更何况F统计量

    !此时考虑一些方法来自动选择更好的预测变量(向前选择法以及第六章介绍的那些~)

    • 向前选择
      从零模型开始,选择RSS最小的预测变量添加到模型中进行训练,找到使得新的模型RSS最小的预测变量加入模型得到更新的模型,以此类推
    • 向后选择
      从全模型开始,选择p值最大的预测变量从模型中剔除后再进行训练,找到使得新模型中最大p值的预测变量并将其剔除得到更新的模型,以此类推
    • 混合选择
      前两个加起来使用,效果会更好

    局限性:
    向前选择容易陷入局部最优
    向后选择不适用于响应变量p过多(p>n)维度爆炸的情况

    (2)判断一个模型的质量:预测的准不准?观察:


    取值范围:(0,1)

    局限性:虽然越接近1,表示模型性能越好,越能解释响应变量的大部分方差
    但是当实际训练时,不断增加预测变量n的数目,也可以让增加,更好地拟合训练数据,减少训练误差,但是不能保证这样就可以减少测试误差



    自由度:n-p-1
    有趣的现象:
    如果 RSS的减少量相对p(响应变量个数)的增加量更小p越多RSE越大

    (3)如何看图说话

    1.那那那四个重要的图像(仙之人兮列如麻)

    残差-预测值

    残差围绕一条水平直线分布无明显规律理想情况
    残差图呈现漏斗形,按非线性函数分布:预测变量与响应变量之间是非线性关系。如
    怎么办?用凹函数如对响应值y做变换

    共线性

    定义:两个或者多个变量高度线性相关

    共线性的衡量:

    • 等高线图:越扁,两个变量之间共线性关系越强,任何微小的扰动都可能导致参数的巨变,使得标准误变大
    • 相关系数矩阵:绝对值很大的元素,表示有一对变量高度相关,存在共线性问题
    • VIF(方差膨胀因子)越大共线性越高认为超过5或10就存在共线性问题,两个预测变量之间越有关,对参数预测的影响越大,导致参数预测的不确定性增加
    离群点

    对预测值xi来说,响应值yi异常的点
    残差图中:残差/学生化残差高的点
    学生化残差:残差/标准误

    高杠杆点

    对响应值yi来说,预测值xi异常的点
    杠杆-学生化残差图中,杠杆值高的点,即横坐标远大于其余点的点

    杠杆值promax:杠杆统计量,可以找到隐藏的高杠杆点
    杠杆统计量的取值范围:(1/n,1)
    如果给定杠杆统计量远大于(p+1)/n,则怀疑该点是高杠杆点

    去除高杠杆点比去除离群点对线性回归的影响更大

    2.summary()函数的结果怎么看

    (4)重要假设:误差项不可自相关

    为什么误差项会自相关?时间序列数据会呈现误差项自相关

    误差项自相关会导致什么问题?

    模型的置信度无法保障,95%的置信区间内包含真实参数的实际概率将远低于0.95,与模型相关的p值也会更低,会导致我们错误的认为本不相关的关系中,参数是统计显著的

    3.非参数方法:KNN 回归 与 参数方法:线性回归 的对比

    KNN
    参数:自然数K,中心点,点集
    定义:

    最优K值的选择:偏差,方差权衡问题

    • K值越小,拟合越灵活,偏差越小
    • K值越大,拟合越平滑,方差越小

    KNN存在的问题:

    1.对噪声敏感
    2.维度越高效果越差,需要保证每个维度有足够的预测变量:

    p=1或p=2时:

    • KNN略优于线性回归

    p=3时:

    • 差不多

    p=4时:

    • 线性回归优于KNN

    p>>4

    • 线性回归远优于KNN

    虽然低维条件下,KNN的可解释性更强,且对于非线性关系预测效果优于线性回归,但是在高维情况下,样本数被平分掉了,每一维度的样本数大大减少,导致在给定的观测点附近的邻点变少,分类不准,KNN的效果会大大变差

    重要结论:若每个预测变量仅有少量观测,参数化方法往往优于非参数方法

    3.低维条件下可解释性不如线性回归模型

    所以不如就用线性回归得了),大不了再调

    PS:KNN分类与KNN回归的区别

    6.

    解决维度爆炸问题:

    向前选择

    岭回归
    lasso

    主成分分析
    偏最小二乘

    7.非线性

    多项式回归
    三次样条
    自然样条

    4.分类

    分类与回归的区别:前者响应变量是离散值,后者是连续值

    逻辑斯蒂回归(p=1):

    二分类:p(x)(0,1)
    然而实际很有可能p(x)<0或>1
    使用sigmoid函数



    保证了p(X)的取值在(0,1)

    定义发生比

    定义对数发生比:逻辑斯蒂可视为对分数变换下X的一个线性模型

    也可以使用哑变量来分析定性变量

    使用极大似然估计回归系数

    与最小二乘相比,极大似然有更好的统计性质

    eg:银行违约率的例子
    基本思想的一个估计,代入P(X),使得所有违约人的值接近1,未违约的人接近0
    使得每个人的违约概率最大可能地与违约的观测情况接近

    多元逻辑斯蒂回归(p=1)


    用极大似然估计法求

    逻辑斯蒂回归中的混淆现象:在使用一个预测变量做逻辑斯蒂回归时,如果其他预测变量与之有关,则预测出的模型可能会不准确

    线性判别分析:

    贝叶斯分类器:

    • 假设K>=2
    • 先验概率:,给定观测属于响应变量Y的第k类的概率
    • 贝叶斯定理:

    p=1的线性判别分析

    • 假设:预测变量服从高斯分布/多元高斯分布
    • 贝叶斯分类器将观测分到

      最大的一组
    • 贝叶斯决策边界的点:
    • x大于时分为第一类,否则分为第二类

    线性判别方法:LDA

    • 实际上,即使服从高斯分布,也需要预测
    • 常使用如下参数估计:

      估计第k类方差:
      • 为观测总量,为第k类的观测量

        将上述估计值代入,得:

    呈现线性关系而得名
    决策边界点
    与贝叶斯决策边界相比,LDA的决策边界偏左

    LDA在p>1的多元线性判别分析中的应用

    • 假设服从一个均值不同,协方差矩阵相同的多元高斯分布
    • 多元高斯分布:假设每一个预测变量服从一个一维正态分布,每两个预测变量之间有一定相关性
    • 公式略

    QDA二次判别分析

    • 假设每一类观测都有自己的协方差矩阵
    • 的二次函数
    • 公式略

    (重要)判断分类模型好坏的标准:

    ![[Pasted image 20241117235806.png]]

    ROC:接收者操作特征曲线。越贴近左上方分类模型效果越好

    • 横坐标:假阳性率
    • 纵坐标:真阳性率

    ![[Pasted image 20241118000009.png]]

    AUC:ROC曲线与横坐标围成的面积。AUC越大分类模型效果越好
    准确率:越高越好
    错误率:越低越好

    以上分类方法+KNN分类 比较

    (1)逻辑斯蒂回归vs线性判别分析

    • 类的区分度很高时:线性判别分析。理由:逻辑斯蒂的参数估计不稳定,而线性判别分析不会
    • 样本量n较小线性判别分析。理由:且每一类响应分类预测变量X近似服从正态分布,线性判别分析更稳定
    • 响应分类>2时,线性判别分析更普遍

    (2)LDA vs 逻辑斯蒂回归

    • 二者相通
    • p>1,LDA二分类情况下

    • 此情况下,二者形式相同,都会产生一个线性决策边界
      区别:
    • 逻辑斯蒂回归的参数是由极大似然估计得出的
    • LDA的参数是由估计的正态分布均值和方差计算出来的
    • 二者得到的结果是相近的
    • 但当观测服从每一类协方差都相同的高斯分布这个假设成立时,LDA效果更好
    • 同样,当高斯分布的假设不成立时,逻辑斯蒂回归比LDA效果更好

    (3)LDA vs QDA

    • 偏差方差均衡问题:
    • 训练数据量少:LDA更优,降低方差更重要
    • 训练数据量多:QDA更优,假设服从一个均值不同,协方差矩阵相同的多元高斯分布不成立,选择LDA会导致比较大的偏差出现,降低偏差更重要

    总结

    • 决策边界为线性时:LDA除非不符合高斯分布假设,此时用逻辑斯蒂
    • 决策边界为非线性时:QDA
    • 决策边界高度非线性时:QDA可以对决策边界作出假设,在固定数据量上的训练优于KNN
    • 尽管当决策边界高度非线性时,KNN优于逻辑斯蒂和LDA,但还是建议慎用KNN这种非参数方法

    5.重抽样方法:找到最合适的光滑度

    为什么要使用重抽样方法?

    (1)验证集方法:

    (2)交叉验证法

    • 留一交叉验证(LOOCV)
    • k折交叉验证
    二者比较

    (3)自助法(bootstrap)

    8.基于树的方法

    决策树
    代价复杂剪枝

    9.支持向量机

    支持向量
    核函数

    10.无监督学习

    PCA主成分分析