SVM异常值检测报错:AttributeError: 'OneClassSVM' object has no attribute 'fit_predict'

在juyptor notebook中使用sklearn中的SVM算法进行异常值检测时出现的错误

#进行异常值检索
from sklearn import preprocessing #对数据进行标准化
from sklearn import svm
clf = svm.OneClassSVM(nu=0.05)
clf.fit_predict(preprocessing.scale(dfana))

但是运行结果报错显示:

AttributeError: 'OneClassSVM' object has no attribute 'fit_predict'

求问是什么原因?
我用的python版本是3.6

svm没有fit_predict这个方法,你拆开用fit来训练,用predict来预测就好了

【以下回答由 GPT 生成】

这个问题是因为sklearn中的OneClassSVM类没有fit_predict方法而导致的。

要解决这个问题,你可以尝试使用predict方法来代替fit_predict方法。

下面是修改后的代码:

# 进行异常值检测
from sklearn import preprocessing  # 对数据进行标准化
from sklearn import svm

clf = svm.OneClassSVM(nu=0.05)
clf.fit(preprocessing.scale(dfana))
clf.predict(preprocessing.scale(dfana))

使用fit方法来训练模型,然后使用predict方法来进行预测。

此外,你可以检查一下你所使用的sklearn库的版本,确保你的版本是3.6版本中的最新版本。你可以使用以下代码来获取sklearn库的版本:

import sklearn
print(sklearn.__version__)

如果你的sklearn版本确实是比较旧的版本,你可以尝试更新到最新版本来解决这个问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^