【问题标题】:Linear Discriminant Analysis in sklearn fail to reduce the features sizesklearn 中的线性判别分析无法减小特征大小
【发布时间】:2019-03-26 05:02:33
【问题描述】:

据我所知,线性判别分析 (LDA) 是一种减少输入特征数量的技术。维基也有同样的声明

线性判别分析 (LDA)、正态判别分析 (NDA) 或判别函数分析是 Fisher 线性判别式的推广,这是一种用于统计、模式识别和机器学习的方法,用于找到表征或分隔两个或多个类别的对象或事件。得到的组合可以用作线性分类器,或者更常见的是,在以后分类之前进行降维。

但是,当我尝试使用来自sklearn.discriminant_analysisLinearDiscriminantAnalysis 时,我无法获得功能减少的数据。

from sklearn.datasets import make_blobs
from sklearn.model_selection import train_test_split
import numpy as np
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

X, y = make_blobs(40000,600,2,cluster_std=20,random_state=101)
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3,random_state=101)

model = LinearDiscriminantAnalysis(n_components=100)
model.fit(X_train,y_train)

X_train_new = model.transform(X_train)
print(X_train_new.shape)
>>> (28000, 1)

我的原始数据有 600 个特征,我想使用 LDA 将其减少到只有 100 个特征。但是来自sklearnLDA 给了我形状 (28000,1)。

为什么 LDA 转换后只有 1 个特征?我做错了什么?

【问题讨论】:

  • 我想你想在这种情况下使用PCA。 LDA 会找到导致类之间差异最大的属性。因此,n_components 应该小于类数 - 1。

标签: python scikit-learn


【解决方案1】:

您的 LDA 将您的数据集仅转换为一个特征,因为 LDA 将转义 n_components > (n_classes - 1)。 这里有两个类=> 2 - 1 = 1 feature。 请参考LDA for two classes on Wikipedia

例如,将您的中心数更改为 200,您会看到不同

Xx, yy = make_blobs(40000, 600, centers=200, cluster_std=5)
X_train, X_test, y_train, y_test = train_test_split(Xx, yy, test_size=0.3)
model = LinearDiscriminantAnalysis(n_components=100)
model.fit(X_train, y_train)
X_train_new = model.transform(X_train)
print(X_train_new.shape)
>> (28000, 100)

使用PCASVD 否则

from sklearn.decomposition import TruncatedSVD
svd = TruncatedSVD(n_components=100)
X_train_new = svd.fit_transform(X_train)
svd.explained_variance_ratio_.sum() # should be > 0.90
print(X_train_new.shape)
>>> (28000, 100)

【讨论】:

  • 但是我的真实数据是一个二分类问题。是否仍然可以将功能从 600 减少到 100?或者是否有任何文献将 LDA 维度限制为始终小于类数?
  • 如果它解决了您的问题,请查看编辑并接受答案:)
猜你喜欢
  • 2022-06-22
  • 2020-02-03
  • 2013-06-19
  • 2013-12-10
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多