无监督数据降维技术——线性判别分析

线性判别分析(LDA)是一种监督降维技术,用于特征提取和分类。与PCA类似,但LDA考虑类别信息,目标是最大化类别间的距离。本文详细介绍了LDA的基本原理,包括计算散布矩阵、类间和类内散布矩阵,以及如何使用scikit-learn进行LDA分析,并展示了在葡萄酒数据集上的应用,表明LDA在降低维数的同时保持了良好的分类效果。
摘要由CSDN通过智能技术生成

线性判别分析基本原理

线性判别分析(Linear Discriminant Analysis, LDA)是一种可作为特征提取的技术,它可以提高数据分析过程中的计算效率,同时,对于不适用于正则化的模型,它可以降低因维数灾难带来的过拟合。

LDA的基本概念与PCA非常相似,PCA试图在数据集中找到方差最大的正交的主成分分量的轴,而LDA的目标是发现可以最优化分类的特征子空间。LDA与PCA都是可用于降低数据集维度的线性转换技巧。其中,PCA是无监督算法,而LDA是监督算法。与PCA相比,LDA是一种更优越的用于分类的特征提取技术

下图解释了二类别分类中的LDA概念。类别1、类别2中的样本分别用叉号和圆点来表示:
LDA
如上图所示,在 x 轴方向(LD1),通过线性判定,可以很好地将呈现正态分布的两个类分开。虽然沿 y 轴(LD2)方向的线性判定保持了数据集的较大方差,但沿此方向无法提供关于类别区分的任何信息,因此他不是一个好的线性判定。

一个关于LDA的假设就是数据呈正态分布,此外,还假定各类别中数据具有相同的协方差矩阵,且样本的特征从统计上来讲是相互独立的。不过,即使一个或多个假设没有满足,LDA仍旧可以很好地完成降维工作。

LDA工作原理

计算散布矩阵

分别构建类内散布矩阵和类间散布矩阵。均值向量 mi m i 存储了类别 i 中样本的特征均值 um u m :
均值向量
葡萄酒数据集的三个类别对应三个均值向量:
葡萄酒均值向量

import pandas as pd
df_wine = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data', header=None)

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

X, y = df_wine.iloc[:, 1:].values, df_wine.iloc[:, 0].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

sc = StandardScaler()
X_train_std = sc.fit_transform(X_train)
X_test_std = sc.fit_transform(X_test)

import numpy as np
np.set_printoptions(precision=4)
mean_vecs = []
for label in range(1, 4):
    mean_vecs.append(np.mean(X_train_std[y_train == label], axis=0))
    print('MV %s: %s\n' % (label, mean_vecs[label - 1]))

计算结果如下:

MV 1: [ 0.9259 -0.3091  0.2592 -0.7989  0.3039  0.9608  1.0515 -0.6306  0.5354
  0.2209  0.4855  0.798   1.2017]

MV 2: [-0.8727 -0.3854 -0.4437  0.2481 -0.2409 -0.1059  0.0187 -0.0164  0.1095
 -0.8796  0.4392  0.2776 -0.7016]

MV 3: [ 0.1637  0.8929  0.3249  0.5658 -0.01   -0.9499 -1.228   0.7436 -0.7652
  0.979  -1.1698 -1.3007 -0.3912]

通过均值向量,计算类内散布矩阵

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值