无法安装特定旧版本的 sklearn 来解决 pyadio 分析库中不兼容的"SVC attribute error"



下面的代码用于音频文件分割。

from pyAudioAnalysis import audioSegmentation as aS
[flagsInd, classesAll, acc, CM] = aS.mtFileClassification("diarizationExample.wav", "svmSM", "svm", True, 'dar.segments.txt')

它给了我这个警告:

C:UsersKenzhegaliyev_EKAppDataLocalContinuumanaconda3libsite-packagespydubutils.py:165: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
C:UsersKenzhegaliyev_EKAppDataLocalContinuumanaconda3libsite-packagessklearnutilsdeprecation.py:144: FutureWarning: The sklearn.svm.classes module is  deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.svm. Anything that cannot be imported from sklearn.svm is now part of the private API.
warnings.warn(message, FutureWarning)
C:UsersKenzhegaliyev_EKAppDataLocalContinuumanaconda3libsite-packagessklearnbase.py:318: UserWarning: Trying to unpickle estimator SVC from version 0.19.1 when using version 0.22.1. This might lead to breaking code or invalid results. Use at your own risk.
UserWarning)

和这个错误:

C:UsersKenzhegaliyev_EKAppDataLocalContinuumanaconda3libsite-packagessklearnsvm_base.py in predict(self, X)
583         """
584         check_is_fitted(self)
--> 585         if self.break_ties and self.decision_function_shape == 'ovo':
586             raise ValueError("break_ties must be False when "
587                              "decision_function_shape is 'ovo'")
AttributeError: 'SVC' object has no attribute 'break_ties'

显然,这是sklearn中旧版本SVC和新版本之间的冲突。

在警告中,它告诉我可能应该使用 sklearn 版本 = 0.19.1

我尝试安装当前并升级到较旧的sklearn。我不能使用 shell,它受到限制,所以我在 jupyter 中运行所有代码:

!pip install sklearn
Installing collected packages: sklearn
Successfully installed sklearn-0.0
import sklearn
sklearn.__version__
'0.22.1'
!pip install --upgrade sklearn==0.19.1
ERROR: Could not find a version that satisfies the requirement sklearn==0.19.1 (from versions: 0.0)
ERROR: No matching distribution found for sklearn==0.19.1

SKLEARN官方网站上没有0.19.1版本:

基于 Web 的文档可用于下面列出的版本:

Scikit-learn 0.23.dev0 (dev( 文档 (PDF 48.5 MB(

Scikit-learn 0.22.1 (稳定版( 文档 (PDF 48.5 MB(

Scikit-learn 0.21.3 文档 (PDF 46.7 MB(

Scikit-learn 0.20.4 文档 (PDF 45.2 MB(

Scikit-learn 0.19.2 文档 (PDF 42.2 MB(

Scikit-learn 0.18.2 文档 (PDF 46.5 MB(

Scikit-learn 0.17.1 文档 (PDF 46.0 MB(

Scikit-learn 0.16.1 文档 (PDF 56.8 MB(

我尝试安装任何其他旧的 sklearn,有什么可用的:

!pip install --upgrade sklearn==0.18.2
ERROR: Could not find a version that satisfies the requirement sklearn==0.18.2 (from versions: 0.0)
ERROR: No matching distribution found for sklearn==0.18.2
!pip install --upgrade sklearn==0.19.2
ERROR: Could not find a version that satisfies the requirement sklearn==0.19.2 (from versions: 0.0)
ERROR: No matching distribution found for sklearn==0.19.2

如何安装正确的旧 sklearn 以使用较旧的兼容 SVC 来消除错误?

很少有sklearn的版本。这是因为正确的名称是scikit-learn: https://pypi.org/project/scikit-learn/#history

所以运行

!pip install --upgrade scikit-learn==0.19.1

最新更新