机器学习复习整理
机器学习复习整理
绪论
基本术语
数据
数据集:训练集,测试集
示例/样本
属性/特征
标记

任务
预测目标
分类(classification):离散值(比如好瓜,坏瓜)
二分类:好瓜;坏瓜
多分类:冬瓜;南瓜;西瓜
回归(regression):连续值(比如西瓜的成熟度0.95,0.37)
瓜的成熟度
聚类:无标记信息
有无标记信息
根据训练数据是否拥有标记信息,学习任务大致分为两大类:监督学习,无监督学习
监督学习:分类、回归
无监督学习:聚类
半监督学习:两者结合
泛化能力
机器学习的目标是使得学到的模型能很好的适用于“新样本”,而不仅仅是训练集合,我们称模型适用于新样本的能力为泛化(generalization)能力
通常假设样本空间中的样本服从一个未知分布\(D\),样本从这个分布中独立获得,即“独立同分布”(i.i.d)
一般而言训练样本越多越有可能通过学习获得强泛化能力的模型
假设空间
把学习的过程看做一个在所有假设组成的空间中搜索的过程,搜索目标是找到与训练集“匹配”的假设,即能够将训练集中的瓜正确判断的假设
假设的表示一旦确定,假设空间及其规模大小就确定了

如图,色泽有2种,根蒂有3种,敲声有3种
但是每一个都加了个1:取任意值,也就是不定
最后加的1:空集,啥都不是
\(3*3*4+1=49\)
归纳偏好
学习过程中对某种类型假设的偏好称作归纳偏好

归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或“价值观”
“奥卡姆剃刀”是一种常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,选最简单的那个”
具体的现实问题中,学习算法本身所做的假设是否成立,也即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能
NoFreeLunch


发展历程
推理期
知识期
学习期

对应学派
符号主义学习:决策树和基于逻辑的学习
连接主义学习:基于神经网络
统计学习:支持向量机和核方法
连接主义学习:深度学习
模型评估与选择
经验误差与过拟合
错误率和误差
错误率:错分样本的占比
m个样本里有a个样本分类错误,\(E=\dfrac{a}{m}\)
精度:1-错误率
误差:样本真实输出与预测输出之间的差异
经验(训练)误差:训练集上
测试误差:训练集
泛化误差:除训练集以外的所有样本
由于事先并不知道新样本的特征,我们只能努力使经验误差最小化
很多时候虽然能在训练集上做到分类错误率为零,但多数情况下这样的学习器并不好
过拟合
学习器把训练样本学习的“太好”,将训练样本本身的特点当做所有样本的一般性质,导致泛化性能下降
解决方法:
优化目标加正则项
early stop
欠拟合
对训练样本的一般性质尚未学好
解决方法:
决策树:拓展分支
神经网络:增加训练轮数

评估方法
通过实验测试来对学习器的泛化能力进行评估
现实任务中往往会对学习器的泛化性能、时间开销、存储开销、可解释性等方面的因素进行评估并做出选择
我们假设测试集是从样本真实分布中独立采样获得,将测试集上的“测试误差”作为泛化误差的近似,所以测试集要和训练集中的样本尽量互斥
对数据集进行适当处理,分为训练集S和测试集T
留出法
直接将数据集划分为两个互斥集合
训练/测试集划分要尽可能保持数据分布的一致性
一般若干次随机划分、重复实验取平均值
训练/测试样本比例通常为2:1~4:1
交叉检验法

将数据集D划分为k个子集同样存在多种划分方式,为了减小因样本划分不同而引入的差别,k折交叉验证通常随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,例如常见的“10次10折交叉验证”
留一法
留一法是交叉检验法的特例,若有m个样本:
令\(k=m\),则每次只剩下一个样本
不受随机样本划分方式的影响
结果往往比较准确
当数据集比较大时,计算开销难以忍受
自助法
有放回采样

实际模型与预期模型都使用\(m\)个训练样本
约有\(\dfrac{1}{3}\)的样本没在训练集中出现
从初始数据集中产生多个不同的训练集,对集成学习有很大的好处
自助法在数据集较小、难以有效划分训练/测试集时很有用
由于改变了数据集分布可能引入估计偏差,在数据量足够时,留出法和交叉验证法更常用。
性能度量
性能度量是衡量模型泛化能力的评价标准,反映了任务需求;使用不同的性能度量往往会导致不同的评判结果

任务分为连续和离散,即回归和分类
均方误差
回归任务最常用的性能度量是“均方误差” \[ E(f;D)=\frac{1}{m}\sum_{i=1}^m(f(x_i)-y_i)^2 \]
错误率和精度
分类任务,错误率和精度是最常用的两种性能度量
错误率:分错样本占样本总数的比例
精度:分对样本占样本总数的比率

查准率和查全率
我们更关注的是“挑出来的西瓜有多少是好瓜”
对二分类问题,可以将样例根据真实类别与学习器预测类别的组合,分为TP, FP, TN, FN
TP:真正例,即预测是正,实际也是正
FP:假正例,即预测是正,实际是反
TN:真反例,即预测是反,实际也是反
FN:假反例,即预测是反,实际是正
TP+FP+TN+FN = 样例总数
列出对应的混淆矩阵:

查准率(Precision):\(P=\dfrac{TP}{TP+FP}\)
查全率(Recall):\(R=\dfrac{TP}{TP+FN}\)
理解查准率:预测对的正样本占全部预测的正样本的比例,即分母为TP+FP
理解查全率:预测对的正样本占全部正样本的比例,即分母为TP+FN

准确率就是所有预测正确的样本占全部样本的比例
\(Acc=\dfrac{TP+TN}{m}\)
下图展示了采用不同的阈值,最后的结果是不一样的
比如第一行,1代表阈值取大于0.9,则没有一个查出来是正样本,每一个样本都预测为负样本
第二行,1代表阈值大于0.8,所以0.9这个点就查出来是正样本,其他都认为是负样本,所以Precision查准率为1/1,Recall查全率为1/4

P-R曲线
Precision查准率和Recall查全率曲线

平衡点:P=R
比平衡点更常用的是F1度量:

比F1更一般的形式:

ROC与AUC
比较ROC曲线的面积,就是AUC
越大越好
ROC
ROC:受试者工作特征
以“假正例率”为横轴,“真正例率”为纵轴可得到ROC曲线,全称“受试者工作特征”
真正率和假正率


真正率(TPR)和查全率一样,都是预测正确的正样本占全部正样本的比例,\(TPR=\dfrac{TP}{TP+FN}\)
假正率(FPR)类似于真正率,是预测正确的负样本占全部负样本的比例,\[FPR=\dfrac{FP}{FP+TN}\]
AUC
比较ROC曲线的面积,AUC
图一乐就好


代价敏感错误率
代价矩阵


代价曲线


比较检验
二项检验
t检验
交叉验证t检验
5*2交叉验证法
McNemar检验
Friedman检验
Nemenyi后续检验
偏差与方差
除了通过实验对学习算法估计泛化性能,还希望了解“为什么”具有这样的性能
偏差-方差分解是解释学习算法泛化性能的重要工具



泛化误差\(E(f;D)\)可以分解为偏差\(bias^2(x)\)、方差\(var(x)\)与噪声\(\varepsilon^2\)之和,即 \[ E(f;D)=bias^2(x)+var(x)+\varepsilon^2 \]


线性模型
基本形式

把系数\(\omega\)和自变量x写成向量的形式
简单,是后续模型的基础模型,可解释性好
一元线性回归
这个推导要掌握,考试考
推导过程:

有\(m\)个样本
分清楚预测值\(wx_i+b\)和样本实际值\(y_i\)
推导的整体思路就是最小二乘法,\(b\)对应的\(a_0\),\(w\)对应的\(a_1\)
求对\(w\)和\(b\)分别求偏导数,使之等于0
只是最后解方程有些麻烦,\(w\)化简的时候分子分母同时除以\(m\)
先解出\(w\),再带回去求\(b\)
多元线性回归
这个推导不需要完全掌握,只用大致记得怎么做就好
公式推导:

有\(m\)个样本
在实际上的样本矩阵\(X\)最右端添加一列1
中途涉及到矩阵的迹,以及矩阵求导
对数几率回归
二分类任务
对二分类来说,输出就是0或1
输入进模型,输出一个z,想办法把z映射到0或1

用到的函数是\(y=\dfrac{1}{1+e^{-z}}\),名叫对数几率函数,也是“Sigmoid函数”,这个函数有个非常有意思的性质:\(f'(x)=f(x)\cdot(1-f(x))\)

把\(z=w^Tx+b\)带入,得到\(y=\dfrac{1}{1+e^{-w^Tx-b}}\)
即\(\ln{\dfrac{y}{1-y}}=z=w^Tx+b\)
\(\dfrac{y}{1-y}\)是几率,反应了\(x\)作为正例的相对可能性

注意:虽然叫做“对数几率回归”,但他不是连续的问题,因为他是二分类的问题
对数几率回归虽然叫回归,但是一个二分类的线性模型,是把连续的z投影到0和1上


这些推导,要注意最开始如何变换的
\(\ln{\dfrac{y}{1-y}}\),因为\(y\)只能取0或1,所以\(y\)就可以看做是\(P\{\hat{y}=1|x\}\)的概率,即取值为\(x\)时预测值等于1的概率,\(1-y\)同理
条件概率,求最大值,就是极大似然
我们为什么不和之前的线性模型一样,用均方误差最小化,最小二乘法?答案是\((\dfrac{1}{1+e^{-(w^Tx+b)}}-y)^2\)不是凸函数,因此我们解对率回归用极大似然法
极大似然法基本的思想就是\(P(真是+样本)\cdot P(预测为+样本)+P(真是-样本)\cdot P(预测为-样本)\)最大
极大似然法通常取对数,因为概率是个很小的值,很小的值连乘可能会造成浮点数的下溢,取对数就会变成加法 \[ \begin{align*} l(w,b)&=P(真是+样本)\cdot P(预测为+样本)+P(真是-样本)\cdot P(预测为-样本)\\ &=y\cdot \frac{1}{1+e^{-(w^Tx+b)}}+(1-y)\cdot (1-\frac{1}{1+e^{-(w^Tx+b)}})\\ 我们把w和b写成\beta^T:&=y\cdot \frac{e^{\beta^T x}}{e^{\beta^T x}+1}+(1-y)\cdot (1-\frac{e^{\beta^T x}}{e^{\beta^T x}+1})\\ &=y\cdot \frac{e^{\beta^T x}}{e^{\beta^T x}+1}+(1-y)\cdot \frac{1}{e^{\beta^T x}+1}\\\\ 现在取\ln,再求最大:\ln l(w,b)&=\ln \frac{ye^{\beta^T x}+1-y}{e^{\beta^T x}+1}\\ &=\ln(ye^{\beta^T x}+1-y)-\ln(e^{\beta^T x}+1)\\\\ y的取值只可能是0或1:\\ y=1时:&=\beta^T x-\ln(e^{\beta^T x}+1)\\ y=0时:&=0-\ln(e^{\beta^T x}+1)\\\\ 把这两种情况结合起来:&=y\cdot \beta^T x-\ln(e^{\beta^T x}+1) \end{align*} \]
最后就是最大化\(y\cdot \beta^T x-\ln(e^{\beta^T x}+1)\)
也可以加个负号取最小:\(\min(-y\cdot \beta^T x+\ln(e^{\beta^T x}+1))\)
线性判别学习

线性模型,如果是分类,就找一条直线分开两类样本点;如果是回归,就拿一条直线尽可能接近这些样本点
用另外一种思想:线性判别分析

如果用线性判别分析的思想,我们就不再拿一条直线给两类样本点分开,因为在高维可能会不好分,那么我们就找到一个方向,这个方向称为\(w\),我们让所有样本往这个方向做投影,做完投影以后,我们希望同一类样本点在\(w\)方向上的投影尽可能聚集,不同类样本,我们希望他们尽可能隔开
先看投影运算:

计算\(b\)在\(a\)上的投影,计算过程就是这样,大小为\(|\vec{b}|\cos\theta\),方向为\(\vec{a}\)的方向,所以最右边\(\dfrac{\vec{a}}{|\vec{a}|}\)是\(\vec{a}\)的方向
我们同时乘一个\(|\vec{a}|\)再除一个\(|\vec{a}|\),不改变原式的值,于是这个投影计算就变成\(|\vec{a}|\cdot|\vec{b}|\cos\theta\cdot\dfrac{\vec{a}}{|\vec{a}||\vec{a}|}\),就变成了\(\vec{a}\)和\(\vec{b}\)的内积乘以\(\dfrac{\vec{a}}{|\vec{a}||\vec{a}|}\),写成向量乘法就是\(a^Tb\)
用方差刻画波动情况,也就是聚合程度
如果数据是一维的,就是算方差;如果数据是多维的,就是算均方差矩阵


推广到多个类

多分类问题
拆解法:将一个多分类任务拆分为若干个二分类任务求解

OvO:C1C2训一个,C1C3训一个,C1C4训一个,C2C3训一个,C2C4训一个,C3C4训一个,总共\(C_N^2\)个;最后看结果谁输出最多,就分类为谁,比如这里C3出现最多,判断为C3
OvR:把其中的一类作为正样本,其他所有类当做负样本训练第一次
支持向量机
间隔与支持向量

这些黑线虽然都能把样本分开,但极其容易产生误判,因为黑线稍微扭动一点,就会误判

一看,就是红的更好,因为能分的开,留出了犯错的空间,红线稍微扭动也不影响分类的结果
有了鲁棒性(容错率),容忍性高,泛化能力强

比如我们现在已经有了这个红线的方向\(w\),我们把这个红线平移,移动到边界处,在边界处的样本就定义为“支持向量”,后续优化的过程与其他点都没关系,只与支持向量有关
两个超平面之间的距离:法向量

我们可以规定,在超平面上的两个线\(w^Tx+b\)一个等于1,一个等于-1,因为我们只需要\(w\)的方向,把\(w\)的值进行缩放,一定可以得到结果等于正负1的两条线,与\(b\)无关
所以,在边界线1以上,所有的值都大于1,在边界线-1以下,所有的点都小于-1
两个超平面:\(w^Tx+b-1=0\)和\(w^Tx+b+1=0\),这两个\(b\)是相等的
因此,求这两个超平面之间的距离:\(d=\dfrac{2}{||w||}\),定义为间隔
我们希望,这个间隔尽可能的大
\(y_i=1\)时,\(w^Tx_i+b\ge1\)
\(y_i=-1\)时,\(w^Tx_i+b\le-1\)
这两个式子左右都同时乘以\(y_i\),就可以化成一个式子:\(y_i(w^Tx_i+b)\ge1\),这个式子就是条件
支持向量机的模型就是这样,找到两个超平面,使他们的间隔达到最大

求个倒数,再求个平方(为了求导数消掉),求最小值;给定一个条件\(y_i(w^Tx_i+b)\ge1\)
即,带有不等式约束的条件极值问题

带有不等式约束的条件极值问题,解法很容易
找到对应的目标函数\(f(x)\),不等式约束(小于等于0)\(g(x)\),等式约束\(h(x)\)
拉格朗日乘值法解决这种问题

只需要满足前4个条件即可,第五个条件在非凸优化问题才用
- 对x求偏导等于0
- 拉格朗日系数\(\lambda\)大于等于0
- 拉格朗日系数乘约束条件等于0
- 约束条件小于等于0
比如:

目标函数\(f(x)=\dfrac{1}{2}(w_1^2+w_2^2)\)
不等式约束,注意符号问题,我们要的是小于等于0,如果是大于等于0,拉格朗日项的系数就是负的



对偶问题
如果不等式约束有\(m\)个,就需要讨论\(2^m\)量级种情况
因为每个参数\(\lambda\)都有两种情况,要么等于0,要么大于0,都要充分讨论
因此引入对偶方法
拉格朗日乘子法:


求解方法:SMO

核函数

左图就不能直接找一条直线给两种样本点分开
于是就将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分

原始空间维度有限,一定存在高维特征空间使样本线性可分
即:把\(x\)换成高维的\(\phi(x)\)
其他还是和SVM求解过程一样

但是高维的\(\phi(x)\)做内积,太难算了,开销是很大的
假设我们不需要直接算这两个内积,而是算另外的很好算的代替,我甚至都不需要知道原来的高维向量\(\phi(x)\)是什么
这就引入了核函数的概念

核函数的输入是低维空间的输入,处理的结果就等于在某一个高维空间中两个向量的内积
于是就把高维向量的内积转化为低维空间中对核函数求值
绕过了显式考虑特征映射,以及计算高维内积的困难
核函数怎么找?

板书来源:核函数

这个距离矩阵应该是对称的,半正定
核函数就类似于这个距离矩阵


虽然我们能找到一个K,但是我们不能保证这个K张成的高维空间一定可以让两类样本线性可分

SVM每一步都有理论支持,唯一一步可能带来很多不确定性的,就是核函数的选择
机器学习很多地方都是,一定有一个部分,你不可能找到最优
SVM最好的地方就是,不清楚的地方已经清楚地告诉你了,除了核函数的选择,其他都很清楚
神经网络
第一个神经元数学模型, 即M-P模型



神经元模型
神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的反应

一系列输入,乘一个\(w\)的权重,进入当前神经元,如果比阈值\(\theta\)大,\(f(x)\)就产生一个响应
这里用到的激活函数是之前在对率回归用到的“Sigmoid函数”

他有一个很有意思的性质:\(f'(x)=f(x)\cdot(1-f(x))\)
感知机与多层网络
感知机

输出部分就是刚刚看到的MP神经元

感知机学习很简单,引入一个参数\(\eta\),叫做学习率,用于调整权重
举个例子:用单层感知机学习“与”运算

此处激活函数用阶跃函数,大于等于0就取1,小于0就取0
真值表如上,x有3个维度的参数,其中与运算只看第2个维度和第3个维度,不看第一个维度\(x^{(0)}\)
感知机修改\(w\)的式子:\(w_i=w_i+\Delta w\),\(\Delta w=\eta (y-\hat{y})x_i\)
输入为\(x_1\)时,\(\hat{y_1}=sgn(w_0x_1^T)=sgn([0,1,1][1,0,0]^T)=sgn(0)=1\),分错了
更新权重为\(w_i=w_i+\Delta w=[0,1,1]+\eta (y-\hat{y})x_i=[0,1,1]+0.5\times(0-1)(1,0,0)^T=[0,1,1]+[-0.5,0,0]=[-0.5,1,1]\)
后面每次同理









直到所有样本正确分类为止
局限性
若两类模式线性可分, 则感知机的学习过程一定会收敛;否则感知机的学习过程将会发生震荡
单层感知机的学习能力非常有限, 只能解决线性可分问题
多层网络
隐层:输入层和输出层之间的层,也叫隐含层

多层网络:包含隐层的网络
前馈网络:神经元之间不存在同层连接,也不存在跨层连接
隐层和输出层神经元也称“功能单元”
万有逼近性

误差逆传播算法(BP)

先把符号搞清楚
输入的是一个样本的多个维度,如图,这个样本就有\(d\)个维度
对应乘不同的权重\(v_{ih}\),输入到隐层
图中的隐层,一个神经元接收到的信号输入和为\(\alpha_h=\sum_{i=1}^{d}v_{ih}x_i\)
隐层的阈值为\(\gamma\)
隐层一个神经元的输出为\(b_h\)
输出层一个神经元的输入为\(\beta_j\)
输出层的阈值为\(\theta\)
引进符号是为了后面处理的方便
回归问题,考虑的就是均方误差\(E_k=\dfrac{1}{2}\sum_{j=1}^l(\hat{y}_j^k-y_j^k)^2\)
如图,输入有\(d\)个维度,隐层有\(q\)个维度,输出有\(l\)个维度
需要学习的参数就是\(dq+ql+q+l\)
\(dq\)是输入层和隐层之间权重\(v\)的个数,\(ql\)是隐层和输出层之间权重\(w\)的个数
单独一个\(q\)是隐层阈值\(\gamma\)的个数,单独一个\(l\)是输出层阈值\(\theta\)的个数
BP算法在每一轮中也用到广义感知机学习规则:\(w=w+\Delta w\)
所以多层前馈网络也叫“多层感知机”
BP算法基于“梯度下降”策略,以目标的负梯度方向对参数进行调整
对误差\(E_k\),给定学习率\(\eta\),有\(\Delta w_{hj}=-\eta\dfrac{\partial E_k}{\partial w_{hj}}\)

这个求导过程叫“链式法则”

为了写的方便,设置了\(g_j\)

学习的轮数:数据集里每一个样本都过一次训练,叫一轮
多层前馈网络表示能力
只需要一个包含足够多神经元的隐层, 多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数
即“万有逼近性”
多次前馈网络局限
神经网络由于强大的表示能力,经常遭遇过拟合。表现为:训练误差持续降低,但测试误差却可能上升
如何设置隐层神经元的个数仍然是个未决问题
实际应用中通常使用“试错法”调整神经元个数
缓和过拟合
早停:在训练过程中,若训练误差降低,但验证误差升高,则停止训练
正则化:在误差目标函数中增加一项描述网络复杂程度的部分,例如连接权值与阈值的平方和
贝叶斯分类器
贝叶斯决策论
贝叶斯决策论,是在概率框架下实施决策的基本理论
\(\lambda_{ij}\)表示第\(j\)类样本误分为第\(i\)类样本产生的损失
如果把一个样本\(x\)分到了第\(i\)类,这时候的风险就是: \[ R(c_i|x)=\sum_{j=1}^N\lambda_{ij}P(c_{j}|x) \] 定义\(R(c|x)\)为“条件风险”
解释一下,首先\(x\)这个样本可能属于很多类别中间的某一个,就用一个概率刻画这件事,即如果\(x\)属于第\(j\)类,概率就是\(P(c_{j}|x)\),把这个概率定义为“后验概率”
乘以对应的风险\(\lambda_{ij}\),再把所有项用\(j\)求和,就是最后总风险
在此基础上,把\(x\)分到所有类的\(R(c|x)\)都能算出来,在此基础上求一个最小值(取风险最小的一个),就是贝叶斯判定准则

注意,\(\lambda_{ij}\)是客观存在的,具体来说,如果目标是最小化分类错误率,那么\(\lambda_{ij}\)可以写成:

若\(x\)为第\(i\)类,此时的条件风险可以化为: \[ \begin{align*} R(c_i|x)&=\sum_{j=1}^N\lambda_{ij}P(c_{j}|x)\\ &=\sum_{j=1,j\ne i}^N1\cdot P(c_{j}|x)\\\\ &=1-P(c_{i}|x) \end{align*} \] 即\(R(c|x)=1-P(c|x)\)
但是后验概率\(P(c|x)\)这个条件概率没有办法事先知道,在现实中通常很难获得
所以,机器学习就是为了把\(P(c|x)\)找出来(这只是从贝叶斯决策论的角度对机器学习的理解)

判别式模型和生成式模型基本的区别就是,判别式模型拿到了数据集就直接处理,生成式模型是希望把数据集原来的分布求出来
根据生成式模型,可以用联合概率分布求得后验概率:\(P(c|x)=\dfrac{P(x,c)}{P(x)}\)
假设独立同分布,就可以用贝叶斯公式化为: \[ P(c|x)=\frac{P(c)\cdot P(x|c)}{P(x)} \]

极大似然估计
首先要假设某种概率分布形式,再基于训练样本对参数进行估计
假定\(P(x|c)\)具有确定的概率分布形式,并且这个分布被参数\(\theta_c\)唯一确定,任务就是利用训练集\(D\)估计参数\(\theta_c\),即把数据集背后的分布估计出来
假设\(x\)独立同分布
\(\theta_c\)对于训练集\(D\)中第\(c\)类样本组成的集合\(D_c\)的似然为: \[ P(D_c|\theta_c)=\prod_{x\in D_c}P(x|\theta_c) \]
对\(\theta_c\)进行极大似然估计,但因为小的数连乘问题,会导致浮点数下溢,所以再加一个\(\log\),即对数似然(Log-Likelihood) \[ LL(\theta_c)=\log P(D_c|\theta_c)=\sum_{x\in D_c}\log P(x|\theta_c) \] 极大似然估计就是\(\hat{\theta}_c=\max LL(\theta_c)\)
这就是极大似然法解决问题的框架,是一个方法论
先把似然函数写出来,每一个样本都是独立随机事件,考虑每一个样本都出现,似然最大,连乘换成连加
比如,假设概率密度函数

朴素贝叶斯分类器
从贝叶斯公式出发: \[ P(c|x)=\frac{P(c)\cdot P(x|c)}{P(x)} \]
假设属性相互独立,就可以把\(P(x|c)\)写成累乘 \[ P(c|x)=\frac{P(c)}{P(x)}\cdot \prod_{i=1}^d P(x_i|c) \] \(P(x)\)对所有类别相同,于是不考虑\(P(x)\) \[ h_{nb}(x)=\max P(c)\cdot\prod_{i=1}^d P(x_i|c) \]
估计\(P(c)\):\(P(c)=\dfrac{|D_c|}{|D|}\),用第\(c\)个类的样本数除以样本总数,比如现在有100个瓜,有70个是好的,那好瓜就是0.7,坏瓜就是0.3
估计\(P(x|c)\):
对于离散属性,令\(D_{c,x_i}\)表示\(D_c\)中在第\(i\)个属性上取值为\(x_i\)的样本组成的集合,则: \[ P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|} \] 举个例子:比如\(D_c\)是好瓜的集合,\(D_{c,x_i}\)是好瓜里颜色是青绿色的集合
对连续属性,考虑概率密度函数,假定高斯分布:

例子:
很明显好瓜的概率比坏瓜大,就认为是好瓜
半朴素贝叶斯分类器
朴素贝叶斯分类器的这个“朴素”假设(即特征之间相互独立)在许多实际应用中可能并不成立
这就引出“半朴素贝叶斯”




聚类
聚类任务

聚类也叫“集簇”


性能度量




距离计算


聚类分类

原型聚类
K均值算法




LVQ
LVQ假设数据样本带有类别标记,即“有监督学习”

K均值和LVQ

