gpt4 book ai didi

python - scikit-learn 中对象没有属性,如何访问它?

转载 作者:行者123 更新时间:2023-11-30 09:01:25 26 4
gpt4 key购买 nike

我想使用 scikit 的 SVC classifier 的不同参数与 cross-vlidation ,所以我尝试了以下方法:

然后,让我们使用SVC算法:

from sklearn import svm
print('Support vector machine(SVM): {:.2f}'.format(metrics.accuracy_score(
y, stratified_cv(X, y, svm.SVC(kernel='linear')))))

但似乎我无法访问该对象:

AttributeError                            Traceback (most recent call last)
<ipython-input-16-dacd8d429376> in <module>()
5
6 print('Support vector machine(SVM): {:.2f}'.format(metrics.accuracy_score(
----> 7 y, stratified_cv(X, y, svm.SVC(kernel='linear')))))
8

AttributeError: 'SVC' object has no attribute 'SVC'

有趣的是,当我尝试这个时:

print('Support vector machine(SVM):   {:.2f}'.format(metrics.accuracy_score(
y, stratified_cv(X, y, svm.SVC))))

我得到:

Support vector machine(SVM):   0.46

可能会发生什么?...考虑到上述交叉验证策略,如何设置我自己的 SVM 配置?。提前感谢大家!

最佳答案

您需要 python 的partial。一般来说,你的函数要求你传递一些可以用clf_class(**kwargs)调用的东西,所以如果你传递一个特定的对象(通过clf获得= SVC(kernel='线性')) 它不会工作,正如你尝试做的

SVC(kernel='linear')(**kwargs) # error!

你想打电话

SVC(kernel='linear', **kwargs)

这样你就可以在 python 中声明部分函数

from functools import partial
linear_svm = partial(svm.SVC, kernel='linear')

现在你可以打电话了

linear_svm(**kwargs)

关于python - scikit-learn 中对象没有属性,如何访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33407076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com