如何从 scikit-learn 线性判别分析对象中获取变化基矩阵?
对于数组X
有形状m x p
(m
样品和p
特征)和N
类,缩放矩阵有p
行和N-1
列。该矩阵可用于将数据从原始空间变换到线性子空间。
艾莉亚回答后编辑:
让我们考虑以下示例:
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)
我希望 scalings_ 矩阵形状为 (2,4),因为我有 2 个特征,并且 LDA 将提供 5-1 个分量。
让我们致电您的LinearDiscriminantAnalysis
object lda
。您可以访问缩放矩阵lda.scalings_
。显示了描述这一点的文档here http://scikit-learn.org/stable/modules/generated/sklearn.discriminant_analysis.LinearDiscriminantAnalysis.html#sklearn.discriminant_analysis.LinearDiscriminantAnalysis.
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)