gpt4 book ai didi

python - 如何从 scikit-learn 运行和解释 Fisher 的线性判别分析

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:00 26 4
gpt4 key购买 nike

我正在尝试运行 Fisher 的 LDA(12)以减少矩阵的特征数量。

基本上,如果我错了,请更正,给定 n 个样本,将其分为几类,Fisher 的 LDA 试图找到一个轴,该轴投影在其上应该使值 J(w) 最大化,它是总样本方差与总样本方差之和的比率不同类别内的差异。

我认为这可以用来为每个类找到最有用的特性。

我有一个包含 m 个特征和 n 个样本(m 行,n 列)的矩阵 X。

我有一个样本分类 y,即一个包含 n 个标签的数组,每个标签代表每个样本。

基于 y 我想减少特征的数量,例如,3 个最具代表性的特征。

使用 scikit-learn 我以这种方式尝试过(遵循 this documentation ):

>>> import numpy as np
>>> from sklearn.lda import LDA
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> y = np.array([1, 1, 1, 2, 2, 2])
>>> clf = LDA(n_components=3)
>>> clf.fit_transform(X, y)
array([[ 4.],
[ 4.],
[ 8.],
[-4.],
[-4.],
[-8.]])

此时我有点迷茫,如何获取最具代表性的特征?

最佳答案

安装分类器后,您正在寻找的特征位于 clf.coef_ 中。

请注意,n_components=3 在这里没有意义,因为 X.shape[1] == 2,即您的特征空间只有两个维度。

您不需要调用 fit_transform 来获得 coef_,调用 clf.fit(X, y) 就足够了。

关于python - 如何从 scikit-learn 运行和解释 Fisher 的线性判别分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23277958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com