ml

第一章 绪论

  • 什么是机器学习

  • 基本概念

    1. 有监督学习
    2. 无监督学习
    3. 输入与输出空间
    4. 训练集
    5. 假设空间Н
    6. 奥卡姆剃刀(Occam’s razor)原则
    7. 回归(regression)和分类(classification)
  • 常用评价指标

    1. 错误率E=α/m
    2. 正确率或称准确率Acc=1-E
    3. 误差(error)
      • 经验(训练)误差
      • 泛化误差(generalization error)
      • 方差和均方差
        • E(f;T) = 1/m∑i=1m(f(xi)-yi)2
        • σ= E(f;T)1/2
    • 过拟合(over-fitting)欠拟合
    • 置信度(confidence level)
    • 置信区间
  • 常用公式和函数

    • 欧氏距离d(P1,P2) = ((x1-x2)2+(y1-y2)2)1/2
    • 曼哈顿距离(街区距离)d(p1,p2) = |x1-x2|+|y1-y2|
    • 闵可夫斯基距离d(A,B) = (∑k=1n(|xk-yk|p))1/p
    • 海明距离-对应位置的不同字符数
    • 杰卡德(Jaccard)相似度 J(A,B) = |A∩B| / |A∪B|
    • 余弦相似度cos(Θ)=(a.b) /(||a||×||b||)
    • 先验概率P(A)
    • 联合概率P(A,B) = P(A) ×P(B)
    • 条件概率(后验概率)P(B|A) = P(A,B)/P(A)
    • 正态分布(高斯分布)
    • 符号函数sign
    • 指示函数
    • 损失/代价函数(loss function)L(y,f(x))
      • 0-1损失函数
      • 平方损失函数
      • 绝对损失函数
      • 对数损失函数
      • hinge损失函数 max(0,1-z)
      • 指数损失函数
    • 阶跃函数sgn
    • sigmoid函数
    • 正则化(regularizayion)
      • 正则化方法
      • 不适定问题
      • 目的:防止过拟合
      • 本质:约束(限制)要优化的参数
      • 正则化通过添加一些约束,使原问题解空间得到了压缩,简化了模型。
    • 测试集组织
      • 留出法(hold-out)
      • 交叉验证法(cross validation)
      • 自助法(bootstrapping)

第二章 贝叶斯分类器

单属性情况

派的样例-贝叶斯公式为:
P(pos|thick)=P(thick|pos)×P(pos)/P(thick)
P(neg|thick)=P(thick|neg)×P(neg)/P(thick)
分母一致故只需要计算分子比较大小

离散多属性情况

朴素贝叶斯假设 P(ci|x)=P(x|ci)P(ci)/P(x)
朴素贝叶斯分类器-argmax(P(ci)*连乘P(x|ci))

  • 属性之间不相互独立
    • case1: 可以忽略影响
    • case2: 不能忽略影响时,计算P(x|cj)可采取的办法有
      1. 采用更加复杂的公式或方法
      2. 去除冗余的属性
      3. 用一个新的属性替换相关联的属性
      4. 采用其他分类方法
        例子-判断类别
  • 朴素贝叶斯分类算法
    • 属性少的时候
    • 问题
      1. 未覆盖全样本空间->概率0 -拉普拉斯修正
      2. 稀少事件的概率估算 -使用m-估值

连续属性情况

  1. 离散化方法
  2. 概率密度函数

贝叶斯公式
p(ci|x)=p(x|ci)P(ci)/p(x)
x处的概率密度函数为:
p(x|ci|)=∏p(xi|cj)
高斯钟形函数–近似计算概率密度函数方法
例子-瓜的好坏-连续值得用高斯函数


第三章 最近邻分类器(Nearest Neighbor)

  1. k近邻学习(kNN)-训练开销为0

  2. 三要素

    • k值选择、-交叉验证法或较小的奇数
    • 距离度量、-欧氏距离
    • 分类决策规则-多数投票
  3. 重点在于搜索-kd树

    1. 构造kd树定义和算法(四步)
    2. 例子
    3. kd树kNN搜索-例子
  4. 加权最近邻

  5. 几个问题

    • 不相关属性的影响
    • 属性值的尺度影响-解决办法:标准化属性尺度
    • 危险样例-预处理(两种情况)
      • 检测-托梅克(Tomck)连接技术(三个条件)
        • 删除存在的问题

第四章 线性和多项式模型

线性模型的定义:

f(x)=w0x0+w1x1+w2x2+…+wdxd
        =∑wixi
        =wx     

线性回归(linear r egression)

  • 最小二乘法,基于方差最小化的方法

  • 极大似然估计,均值为0方差为的平方的高斯分布

    • 转换为对数似然(连乘->连加)
      • 矩阵求导公式
    • 梯度下降算法
      • 梯度求导公式
      • 随机梯度下降算法(第一个为噪声样本则迭代偏离了,但比下面快)
      • 批量梯度下降方法(避免第一个样本)
      • mini-patch梯度下降(二者折中)
      • 例子
      • 正则化
  • 逻辑回归(logistic regression) -解决的是二分类问题

    • 逻辑回归模型

        if ∑wx>0 then output 1
                 else output 0
      
    • 单位阶跃函数、S形函数

    • 极大似然函数

      • 对数似然函数
  • 多分类问题

    • softmax回归
      • 建立似然函数
      • 目标函数采用对数似然
    • 二分类器组 一对多(建立多个而分类器,如四个二分类器组成四分类器)
      • n个二分类器
      • 一个分类器输出为1,其他为0
      • 若多个分类输出为1,则进行加权,选择最大的作为结果
    • 一对一
      • 需要 n(n-1)/2 个二分类器
      • 采用多数投票得到
      • 一对多每个分类器需要全部的训练数据,而一对一只需要两个类别的样例

非线性可分问题

  • 可采用多项式模型
  • 空间变换-将线性不可分问题转化为线性可分的问题
  • 容易过拟合

第五章 决策树(decision tree)

5.1 构造决策树

自顶向下的递归方法,其基本思想是以信息熵为度量,构造一棵熵值下降最快的树,到叶子结点处的熵值为0

  • 高度和节点数更小的比较好,开销较小
  • 存在问题,如分支没有全,如shape有三个,只显示两个,则预测结果不确定
    • 原因:数据样例不全

5.2 ID3决策树

  • 算法思想
grow(D)
取信息量最大的属性at
 将D划分为若干个子集Di
 对每个子集Di
		   if  Di中所有样例都属于同一个类别
           then  创建一个类标记的叶结点
           else  grow(Di)
  • 优缺点
  • 信息量定义,与概率值成反比,代表事件的不确定性
  • 熵-即平均信息量,代表系统的混乱程度,0.5的时候最大
    • 条件熵-经验熵(系统熵)-经验条件熵
  • 信息增益 G(D,at)=H(D)-H(D|at) 系统熵 - 条件经验熵
  • 选择信息增益最大生成决策树
  • 例子

5.3 C4.5决策树

  • 连续属性处理-主要是选择阈值
  • 计算阈值的信息增益
  • 增益率(避免偏向数目较多的属性)
    • 分裂信息量

5.4 过拟合

  • 剪枝(pruning)
    • 误差估计(训练集)
    • 准确率(测试集)
  • 预剪枝(prepruning)
    • 准确率
  • 后剪枝(postpruning)-自底向上
    • 准确率
  • 剪枝方案的选择
    • 误差

5.5 CART决策树

  • 采用基尼指数 gini(D) = 1 - sum(pk^2),与不确定性成反比
  • 选择基尼指数小的
  • CART剪枝(底部剪枝+交叉验证)
    • α的取值
    • 1.计算内部节点的所有α,取最小的,直至根节点
    • 2.交叉验证

第六章 人工神经网络(neural network)

6.1 神经元(neuron)模型

6.2 多层感知机(perceptron)

  • 感知机
  • 多层感知机

6.3 前向传播

6.4 反向传播BP算法

  • 过拟合问题的解决

    • 早停止
    • 正则化项
  • 局部最小和全局最小

    • 跳出局部最小的三个方法
    • 几个激活函数sigmoid tanh relu

6.5 神经网络的结构问题

6.6 径向基函数网络(Radial Basis Function)

  • RBF也是一种属性变换的方法 , 线性不可分–>线性可分

  • 基本思想 输入到隐层无权重 经过高斯函数

  • 训练三个参数w(隐层到输出),高斯中心,σ值


第七章 支持向量机(Support Vector Machine)

7.1 支持向量

有多个划分划分超平面,如何选择

  1. 计算任一点到超平面的距离
  2. 支持向量即一些样本点,位于边界上
  3. 间隔:支持向量到超平面的距离之和
  4. 求间隔最大 =》转成最小化的形式(对偶问题)

7.2 对偶问题

  • 原始问题(约束问题)

  • 引入拉格朗日函数(先求拉格朗日的最大化)再进行最小化,将原始问题转化为拉格朗日极小极大问题

  • 对偶问题:先对拉格朗日最小化 再最大化 (因为x比较好求,拉格朗日乘子不好求)–》极大极小问题

  • 拉格朗日乘子法

  • 建立目标函数后得到新的拉格朗日目标函数

  • 最小化得到w,b

  • 带入w,b到拉格朗日函数,进行最大化,即得到了对偶问题

  • 添加符号变成最小化,满足kkt文件的即是支持向量

  • SMO算法,解出λ*,b*,w*,固定两个λ做变量,其他为常量

  • SMO例子-见视频
    在这里插入图片描述

在这里插入图片描述

7.3 核函数

线性不可分问题,除了用高阶多项式函数拟合,也可采用升维的方式变换为线性可分问题。即将样本从原始空间映射到更高维特征空间。(通过核函数)

  • 空间变换

    • 存在的两个问题(找不到映射函数和训练复杂度高),工程上难以实现
  • 核技巧

    • 样本映射到高维空间后的内积怎么求,提高svm的速度
    • 先升维到高维空间后,计算超平面的时候内积又变换到了低维,故运算速度提升了
    • 核函数K(xi,xj)=φ(xi)Tφ(xj),故定义核函数即可,无需显示的定义映射函数
  • 常用的五个核函数

  • 核函数的组合

  • 核函数的两个问题

    • 如何知道一个函数是否是核函数
      • K是有效的核函数《=》核函数矩阵K是对称的半正定矩阵,Kij=Kji
    • 哪个核函数是最适合的(未解决)

7.4 软间隔

  • 允许支持向量机在一些样本上出错
  • 松弛变量,加上了松弛因子,多了一个拉格朗日乘子

7.5 支持向量回归—SVR

样本映射到高维空间后的内积怎么求,提高svm的速度

  • 先升维到高维空间后,计算超平面的时候内积又变换到了低维,故运算速度提升了

  • 核函数K(xi,xj)=φ(xi)Tφ(xj),故定义核函数即可,无需显示的定义映射函数

  • 常用的五个核函数

  • 核函数的组合

  • 核函数的两个问题

    • 如何知道一个函数是否是核函数
      • K是有效的核函数《=》核函数矩阵K是对称的半正定矩阵,Kij=Kji
    • 哪个核函数是最适合的(未解决)

7.4 软间隔

  • 允许支持向量机在一些样本上出错
  • 松弛变量,加上了松弛因子,多了一个拉格朗日乘子

7.5 支持向量回归—SVR

SVR容忍f(x)和y之间可以有ε的偏差,只有当偏差大于时ε才计算损失。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值