镇楼图:

1. 🔪KNN分类器
🏷分类算法
KNN也叫K近邻算法(K-nearest neighbors,KNN )是一种很基本朴实的机器学习方法,归属于分类算法。它是在所有样本空间中寻找距离最近的K个样本,通过投票(多数者获胜)来确定位置样本归属于哪一类,是一种十分简单但却效果很好的算法。

假设有三个类别,如图中所示,K=3(实线)时,待分类样本(绿色🟢)选取最近的3个样本,被划分为红色三角(🔴)所在的类;而当K=5(虚线)时,显然待分类样本被划分蓝色方块(🟦)所在的类。
1.1 超参
不难发现KNN只有两个超参数:
-
K的取值
如何选择一个最佳的K值取决于数据。一般情况下,在分类时较大的K值能够减小噪声的影响,但会使类别之间的界限变得模糊;而较小的K值易受噪声影响,边界也更加细分。K值的选择其实决定了KNN对样本空间的划分即决策边界,K越大,边界越平滑:

同样的,选择不同的K值,划分出的类别也有不同的偏差和方差:

小的K值偏差(即bias,用来衡量精确度)小,但方差大(variance,衡量离散度);而大的K值恰恰相反;我们不可能既要又要,总要舍弃一些才能获得更好的效果,这就要根据实际的项目来确定了。
-
距离度量方法
一般距离度量都为Lp距离:
Lp(xi,xj)=[l=1∑nxi(l)−xj(l)p]p1
常用的有三种,分别为p=1,p=2,p=+∞:
-
L1距离(曼哈顿距离)
Li(xi,xj)=l=i∑nxi(l)−xj(l)
-
L2距离(欧氏距离)
L2(xi,xj)=l=1∑nxi(l)−xj(l)2
-
切比雪夫距离(p为无穷时)
L=max(∣x1k−x2k∣)
1.2 优缺点
优点:
缺点:
- 原始的KNN算法只考虑近邻不同类别的样本数量,而忽略掉了距离;
- 样本库容量依赖性较强对KNN算法在实际应用中的限制较大
- KNN算法必须指定K值,K值选择不当则分类精度不能保证
- 样本类别预测时间长
KNN的不需训练的优点决定了它预测时间长的缺点,一个不需要训练的算法,每次预测新样本都要在整个进行数据集上计算,性能可想而知,当然,在一些小型数据集上这个缺点也就不存在了。
2. 📈线性回归&逻辑回归
🏷估值&分类算法
线性回归有点像插值,预测某个未知样本的映射值,但插值常常在区间内部,而线性回归则是往往在区间右侧。线性回归的输出是无边界的,而逻辑回归是经过激活函数将线性回归的值归定在0到1之间,这样它的输出便能解释为概率,进而解释为某个类别的概率用来分类。

3. 📊贝叶斯分类器
🏷分类算法(生成式)
对于某一个待分类样本X,我们假定它有n个属性 (a1,a2,..,an) ,这里的属性可以简单的理解为样本向量的某一维度的值,假设X可能的类别有m类,分别为 ( y1,y2,...,ym ) ,现在对于这个样本,我们要预测它属于哪一类,可以怎样操作?
我们可以计算该样本属于不同类别的概率,取最大的概率值对应的类即可,用数学语言描述一下[1]
:
P(yk∣X)=max{P(y1∣X),P(y2∣X),P(y3∣X),…,P(yn∣X)}, 则X∈yk
把目光聚焦到一个类别上来,要计算 P(yi∣X) ,根据条件概率(这里先挖一个坑,后面填),有[2]
:
P(yi∣X)=P(X)P(X,yi)=P(X)P(X∣yi)P(yi)
对于每个类别 yi 来说,P(X)即该样本的概率是不变的,所以上述优化问题转化为[3]
:
P∗(yk∣X)=1≤i≤nmax{P(X∣y1)⋅P(yi)}, 则X∈yk
因此,我们只需考虑两项 P(X∣yi) 和 P(yi) ,后者为某类的概率,可以用样本集合来估计,对于前者也可用查找在类yi中X的数量即可计算而出,至此我们便得到了贝叶斯分类方法,他将[1]式中计算后验概率 P(yi∣X) 转化为[3]式中的先验概率 P(X∣yi) 。
至此,要计算后验概率(判断属于哪个类),只需计算 P(X∣yi)⋅P(yi) 即P∗(yi∣X) ,考虑如下只有两个属性和两个类别的例子,右侧是数据集:

那么
P∗(y=0∣X=(0,2))=P(X=(0,2)∣y=0)⋅P(y=0)=0P∗(y=1∣X=(0,2))=P(X=(0,2)∣y=0)⋅P(y=1)=41⋅104=0.1
3.1 朴素贝叶斯方法
因此X=(0,2) 便根据P∗ 归类为y=1。在上面的例子中,由于数据集的有限性,我们在y=0中寻找X的样本时数量为0,这显然是不合理的,因此我们需要进一步优化贝叶斯分类器,便有了朴素贝叶斯分类器:
条件独立假设(Conditional independent assumption):即样本的属性 (a1,a2,..,an) 相互独立,这是朴素贝叶斯的前提也是基础。
因此有:
P(X∣yi)=P((a1,a2,..,an)∣yi)=P(a1∣yi)⋅P(a1∣yi)⋅⋅⋅P(an∣yi)
故[3]式转化为[4]
:
P∗(yk∣X)=1≤i≤nmax{P(X∣y1)⋅P(yi)}=1≤i≤nmax{P(a1∣yi)⋅P(a1∣yi)⋅⋅⋅P(an∣yi)⋅P(yi)}
因此上面的例子便可如下计算:

上面例子视频中最后的判断条件出错了,最后还要乘以P(Y=0)和P(Y=1)才能判断,当然,最后算完也是类别1,只是他缺了一步。
3.2 拉普拉斯修正
使用朴素贝叶斯,当数据集中某类没有属性ai时,也会面临零概率问题。零概率问题,指的是在计算实例的概率时,如果某个量 x,在观察样本库(训练集)中没有出现过,会导致整个实例的概率结果是 0 .在文本分类的问题中,当「一个词语没有在训练样本中出现」时,这个词基于公式统计计算得到的条件概率为0 ,使用连乘计算文本出现概率时也为0 。这是不合理的,不能因为一个事件没有观察到就武断的认为该事件的概率是 0 。
为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。假定训练样本很大时,每个分量 x 的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。普拉斯平滑处理后的条件概率计算公式为:
P(ai∣y)=Ny+nαN(ai∣yi)+α
其中 α 表示平滑值且 α∈[0,1]。
3.3 含连续值的Bayes分类器
当特征中数据是连续型时,通常有两种方法来估计条件概率:
- 把每一个连续的数据离散化,然后用相应的
离散区间
替换连续数值。这种方法对于划分离散区间的粒度要求较高,不能太细,也不能太粗。
- 假设连续数据服从某个
概率分布
,使用训练数据估计分布参数,通常我们用高斯分布来表示连续数据的类条件概率分布。对数据集计算均值μ和标准差σ后,便可可以使用高斯概率密度函数(或者分布函数)来评估一个给定的特征值的概率。
4. 🌳决策树
5. ↗支持向量机(SVM)
6. 🔍聚类
7. 📚Reference