Python sklearn LDA报错:存在意外关键字参数'covariance_estimator'
问题解决说明
报错原因
LinearDiscriminantAnalysis的covariance_estimator参数是scikit-learn 1.2.0版本才新增的功能,你本地安装的scikit-learn版本低于该版本,因此初始化时无法识别该参数,触发类型错误。
解决方案
方案1:升级scikit-learn版本(推荐)
直接执行升级命令即可适配官方示例代码:pip install --upgrade scikit-learn>=1.2.0
升级完成后重新运行原代码即可正常输出结果。
方案2:适配旧版本scikit-learn
若环境限制无法升级依赖,可手动调用OAS计算协方差矩阵后替换LDA内部的默认协方差结果,将原代码中clf3的定义部分替换为如下逻辑即可:
oa = OAS(store_precision=False, assume_centered=False) # 手动用OAS拟合训练数据计算协方差 oa.fit(X) # 初始化无收缩的LDA clf3 = LinearDiscriminantAnalysis(solver='lsqr', shrinkage=None).fit(X, y) # 替换默认协方差为OAS估计结果 clf3.covariance_ = oa.covariance_
内容的提问来源于stack exchange,提问作者bensw
相关产品推荐
相关产品推荐

