首页 > 解决方案 > sklearn 的线性判别分析

问题描述

我遇到了 sklearn.discriminant_analysis 无法识别输入的问题。

我已经将所有标签从 str 更改为数值。

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
print(labels)
print(type(labels))
Fit_Features_2 = LDA(n_components = 1)
Fit_Features_2 = LDA.fit(features_NiFe, labels)

#The type for labels
<class 'pandas.core.frame.DataFrame'>

类型错误:fit() 缺少 1 个必需的位置参数:'y'

标签: pythonscikit-learn

解决方案


您需要使用 LDA 的实例。

改变

Fit_Features_2 = LDA.fit(features_NiFe, labels)

Fit_Features_2 .fit(features_NiFe, labels)

确保标签是数组类型。因此,使用将数据框转换为 numpy 数组df.to_numpy()

还要检查拟合函数的 X 和 y 参数的尺寸

        X : array-like, shape (n_samples, n_features)
            Training data.
        y : array, shape (n_samples,)
            Target values.

推荐阅读