python - 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'
解决方案
您需要使用 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.
推荐阅读
- corda - 在 Corda 中,知名、服务和机密身份有什么区别?
- java - Gson如何解析嵌套数组
- android - 如何删除此“任务':app:compileDebugJavaWithJavac'的执行失败”错误?(带有片段的导航视图)
- bash - 在特定字符之后和字符之前添加一个字符
- sql - 输出过去一年每个月的第一天的 where 子句
- database - “[FATAL] [DBT-10503]” 指定的模板文件无效
- java - 如何使用java在QBP ^ Q11中为QPD段设置样本ID
- java - 返回多个值的最佳实践?
- javascript - 延迟液体页面渲染,直到 Ajax 返回数据之后
- bash - 在查找命令行上插入排除项