Scikit learn 如何利用scikit学习从线性判别分析中获取特征向量
如何从一个线性判别分析对象中获得基矩阵的变化 对于具有形状Scikit learn 如何利用scikit学习从线性判别分析中获取特征向量,scikit-learn,Scikit Learn,如何从一个线性判别分析对象中获得基矩阵的变化 对于具有形状mxp(m样本和p特征)和N类的数组X,缩放矩阵具有p行和N-1列。该矩阵可用于将数据从原始空间转换为线性子空间 根据Arya的回答编辑: 我们考虑下面的例子: from sklearn.datasets import make_blobs from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA X, label = make_blobs(
mxp
(m
样本和p
特征)和N
类的数组X
,缩放矩阵具有p
行和N-1
列。该矩阵可用于将数据从原始空间转换为线性子空间
根据Arya的回答编辑: 我们考虑下面的例子:
from sklearn.datasets import make_blobs
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
X, label = make_blobs(n_samples=100, n_features=2, centers=5, cluster_std=0.10, random_state=0)
lda = LDA()
Xlda = lda.fit(X, label)
Xlda.scalings_
#array([[ 7.35157288, 6.76874473],
# [-6.45391558, 7.97604449]])
Xlda.scalings_.shape
#(2, 2)
我希望缩放矩阵形状为(2,4),因为我有2个功能,LDA将提供5-1个组件。让我们称您的
线性描述分析
对象LDA
。您可以通过lda.scalings\uu
访问缩放矩阵。下面显示了描述这一点的文档
非常感谢您的关心。的确,对于iris数据集,它似乎工作正常(虽然结果与我从R获得的结果不同,但我猜这是由于一些规范化预处理。)然而,对于另一个例子,缩放矩阵无法满足之前对其形状的要求,请参阅我使用make_blob的答案`我编辑了我的问题,以展示一个缩放矩阵形状似乎错误的示例。这值得向scikit learn的维护人员提交一份报告。问题补充道:@aryamcarthy在这个示例中,lda.scalings是特征向量吗?
import sklearn.datasets as ds
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
iris = ds.load_iris()
iris.data.shape
# (150, 4)
len(iris.target_names)
# 3
lda = LDA()
lda.fit(iris.data, iris.target)
lda.scalings_
# array([[-0.81926852, 0.03285975],
# [-1.5478732 , 2.15471106],
# [ 2.18494056, -0.93024679],
# [ 2.85385002, 2.8060046 ]])
lda.scalings_.shape
# (4, 2)