在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版本确实是比较旧的版本,你可以尝试更新到最新版本来解决这个问题。