【问题标题】:Python error in SVM classifier.predict()SVM 分类器中的 Python 错误.predict()
【发布时间】:2015-06-28 16:40:35
【问题描述】:

当我在 Python 中使用以下命令对新数据进行分类时出现以下错误:

classifier.predict(new_data)

AttributeError: python 'SVC' object has no attribute _dual_coef_

不过,在我的笔记本电脑中,该命令运行良好!怎么了?

【问题讨论】:

  • 你在两台电脑上使用的是同一个版本吗?
  • 是的。这真的很奇怪,因为它是 scikit 学习工具包的基本功能
  • 你能提供导致错误的输入吗?

标签: python scikit-learn classification svm


【解决方案1】:

我有这个确切的错误 AttributeError: python 'SVC' object has no attribute _dual_coef_ 使用 scikit-learn 0.15.2 版训练的模型,当我尝试在 scikit-learn 0.16.1 版中运行它时。我确实通过在最新的 scikit-learn 0.16.1 中重新训练模型来解决它。

确保您正在加载正确版本的包。

【讨论】:

  • 太糟糕了,旧的保存模型不能在新版本上运行......希望将来有更安全的数据格式。
【解决方案2】:

您是否加载了您尝试预测的模型? 在这种情况下可能是版本冲突,尝试使用相同的 sklearn 版本重新学习模型。 你可以在这里看到类似的问题:Sklearn error: 'SVR' object has no attribute '_impl'

【讨论】:

  • 是的,一切都已加载。我在两台计算机上使用相同的编程管道
  • 您是否尝试过(或者您有可能)反转计算机角色以进行模型构建和预测?
  • 不幸的是,这在当前的计算机配置和当前数据集下无法完成
【解决方案3】:

我遇到了同样的问题,我使用的是 Sklearn 0.23.02 版,但我试图运行一个使用 0.18 版训练的存档......我的错误是:“'SVC' 对象没有属性 'break_ties'”,我刚刚用我的版本重新训练了模型并修复了我生成其他 svc.pickle 以使用 0.23.02 版本运行并替换旧版本的问题。

【讨论】:

  • 我也面临同样的问题
【解决方案4】:
"""
X = X_train 
y =  y_train 
"""
X = X_test 
y =  y_test

# Instantiate and train the classifier
from sklearn.neighbors import KNeighborsClassifier
clf = KNeighborsClassifier(n_neighbors=1)
clf.fit(X, y) 


# Check the results using metrics
from sklearn import metrics
y_pred = clf.predict(X)

print(metrics.confusion_matrix(y_pred, y))

【讨论】:

    猜你喜欢
    • 2021-10-14
    • 2017-01-31
    • 2018-05-15
    • 2020-06-01
    • 2013-12-08
    • 2013-06-07
    • 2023-04-08
    • 2020-06-12
    • 2018-05-20
    相关资源
    最近更新 更多