Scikit-learn SVM SVC 简单问题

1 投票
1 回答
2425 浏览
提问于 2025-04-17 19:45

我遇到了一个问题,虽然我解决了,但我想确认一下我做得对不对。

在scikit-learn的文档中,关于支持向量机(SVM)和SVC,有一个例子讲的是如何处理不平衡的数据,方法是给不同的类别设置权重。

他们给了一个例子,说明在svm.SVC()中如何设置类别权重。

    wclf = svm.SVC(kernel='linear', class_weight={1: 10})

但是如果我在源代码中重复这个命令,就会出现以下错误:

    wclf = svm.SVC(kernel='linear', class_weight={1: 10})
    TypeError: __init__() got an unexpected keyword argument 'class_weight'

不过,如果我把类别权重放在fit()函数中,这个问题就解决了:

    wclf.fit(X, y, class_weight={1: 10})

我这样做对吗?有没有人遇到过这个问题?

1 个回答

2

在你现在使用的sklearn版本中,'class_weight'这个关键词还没有在SVC里实现,不过在SVC.fit()里是可以用的。sklearn更新功能的速度有时候比你想象的要慢,而你正在查看的文档可能是/dev/或者/stable/版本,而不是你当前使用的版本。

撰写回答