首页 > 其他分享 >经典分类:线性判别分析模型!

经典分类:线性判别分析模型!

时间:2022-10-20 16:31:59浏览次数:50  
标签:直线 协方差 样本 投影 判别分析 np 经典 线性


作者:小雨姑娘,康涅狄格大学,Datawhale成员

这几天看了看SVM的推导,看的是真的头疼,那就先梳理基础的线性判别分析模型,加深对SVM的理解。

线性判别分析是一种线性的分类模型。

线性分类模型是指采用直线(或超平面)将样本直接划开的模型,其形式可以表示成  的形式,划分平面可以表示成 。这里可以看出,线性分类模型对于样本的拟合并不一定是线性的,例如逻辑回归(外面套了一层sigmod函数)和感知机(外面套了一层激活函数)。

线性判别分析的基本思想是把所有样本投影到一条直线上,使样本在这条直线上最容易分类。

经典分类:线性判别分析模型!_协方差

设直线的方向向量为,则样本在直线上的投影为,如图:

经典分类:线性判别分析模型!_协方差矩阵_02

我们的目标是使两类样本的中心点在线上的投影距离大(两类样本区分度高),同时使每一类样本在线上投影的离散程度尽可能小(类内样本区分度低)。

令,,分别代表每一类的样本,每一类样本的均值向量,每一类样本的协方差矩阵。

若将所有样本都投影到直线上,则两类样本的中心点可分别表示为, 。

若将所有样本都投影到直线上,则两类样本的协方差可表示为, 。

协方差是什么?协方差表示的是两个变量总体误差的期望。如果两个变量的变化趋势一致,则为正值;若相反则为负值;变化趋势无关时为0,此时两个变量独立。

经典分类:线性判别分析模型!_协方差矩阵_03

协方差矩阵是什么?协方差矩阵的元素是任意两个变量之间的协方差。

经典分类:线性判别分析模型!_线性判别分析_04经典分类:线性判别分析模型!_协方差矩阵_05

因此我们如果要让两类样本在投影后离散程度尽可能小,我们就应该让他们之间的方差尽可能小。计算每一类元素投影后的方差在做向量化时,中间就是协方差矩阵(不好意思,下面第二个应该加个转置)。

经典分类:线性判别分析模型!_协方差_06

使两类样本的中心点在线上的投影距离大,同时使每一类样本在线上投影的离散程度尽可能小的表达式可以写为:


对于参数的优化问题可以做如下转换:

因为求的是一个方向向量,所以 同样也是所求的解,因此我们可以假定


(相当于为乘以一个系数使得其最后的和为1)

则问题转换为二次规划问题:

解得:

最后的判别模型可表示为:

其中b由于不在目标函数中,所以要手动去找,一般经验方法是:


Python实现如下:

import numpy as np

# 2 dm vectors
x_0 = np.array([[2.95,6.63],[2.53,7.79],[3.57,5.65],[3.16,5.47]])
x_1 = np.array([[2.58,4.46],[2.16,6.22],[3.27,3.52]])

# mean vectors
u_0 = np.mean(x_0, axis=0)
u_1 = np.mean(x_1, axis=0)

# S_w & S_b
S_w = np.cov(x_0, rowvar=False) + np.cov(x_1, rowvar=False)
S_b = np.matmul((u_0 - u_1).reshape(-1,1), (u_0 - u_1).reshape(1,-1))

# Result
w = np.matmul(np.linalg.inv(S_w), (u_0 - u_1))
b = -1 * np.dot((u_0+u_1)/2, w)

实验结果

利用 LDA 进行一个分类的问题:假设一个产品有两个参数柔软性 A 和钢性 B,来衡量它是否合格,如下图所示:

经典分类:线性判别分析模型!_协方差_07

X_0类:

for i in x_0:
print(np.dot(w , i) + b)

# 7.908179218783431
# 8.836977507881144
# 11.047547831774281
# 3.8717837839741094

X_1类:

for i in x_1:
print(np.dot(i , x_0[0]) + b)

# -39.39697440389426
# -28.96717440389427
# -43.59367440389427


经典分类:线性判别分析模型!_协方差矩阵_08


标签:直线,协方差,样本,投影,判别分析,np,经典,线性
From: https://blog.51cto.com/u_15699042/5780283

相关文章

  • 矩阵与线性方程组
    高斯消元当我们用线性方程组来理解矩阵时,我们有矩阵的高斯消元。高斯消元本质上是一系列的对矩阵的“变换”或者说“操作”,这种操作总共有三种:1)给某一整行乘上非零常数\(......
  • CF1743 E - FTL(线性DP)
    E-FTL(线性DP)题意​ 现在你有两支激光枪,枪A伤害为\(p_1\),冷却时间为\(t_2\);枪B伤害为\(p_2\),冷却时间为\(t_2\)。敌人的护甲为s,可以抵消每一次攻击中的s点伤害。请问最......
  • 图像分类经典项目:基于开源数据集Fashion-MNIST的应用实践
    Datawhale作者:何新,Datawhale优秀学习者简介:何新,武汉理工大学硕士​​https://github.com/whut2962575697​​图像分类是计算机视觉和数字图像处理的一个基本问题。传统的图......
  • 综述一:二十年的目标检测大综述(经典,必须收藏)
    作者:Edison_G不知不觉2021年“计算机视觉研究院”又陪伴大家快一年了,我们一直在陪伴,分享最好最有质量的知识,陪伴大家度过每一天。今天开始,我们准备分享一次综述性知识,有兴趣......
  • 10个python经典小游戏(上)-五一嗨起来(动图演示+源码分享)
    这些游戏你玩过几个?​​1.贪吃蛇​​​​2.吃豆人​​​​3.加农炮​​​​4.四子棋​​​​5.FlyBird​​​​6.记忆:数字对拼图游戏(欢迎挑战!用时:2min)​​​​7.乒乓球​......
  • 一元线性回归
    一元线性回归sklearn一元线性回归代码:https://github.com/xinxuann/MachineLearningNote/blob/main/sklearn-一元线性回归.ipynb梯度下降法-一元线性回归https://gi......
  • 多元线性回归和多项式回归
    多元线性回归直接用sklearn库里的调用代码:https://github.com/xinxuann/MachineLearningNote/blob/main/sklearn-多元线性回归.ipynb多项式回归也是直接调用skl......
  • 视频回放+PDF课件 | 博雅数智学堂通识课第7期:基于线性回归的加州房价预测
    2022年06月28日晚八点,博雅数智学堂“数据科学通识实验”第7期成功举办。本次课程采用腾讯会议、视频号、知乎和B站同步直播,使用爱数科平台进行在线实验。100余所院校800余名......
  • 数据结构—线性结构的类型定义
    线性表是一个相当灵活的数据结构,其长度可根据需要增长或缩短,即对线性表的数据元素不仅可以进行访问,而且可以进行插入和删除等操作。下面给出线性表的抽象数据类型定义:ADT......
  • 线性基
    所谓线性基,就是线性空间的一组基。基是线性空间的极大线性无关组。OI中的线性基一般指异或线性基。对于实数线性基,我们习惯用高斯消元来称呼它。在题目中,线性空间中的向......