![](/img/trans.png)
[英]How do I resolve 'NoneType' object has no attribute 'write' error with scikit-learn digits dataset?
[英]Object has no attribute in scikit-learn, how can I access it?
我想使用帶有cross-vlidation的scikit SVC分類器的不同參數,所以我嘗試了以下操作:
然后,讓我們使用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配置? 在此先感謝大家!
你需要一個partial
的蟒蛇。 通常,您的函數要求您傳遞可以用clf_class(**kwargs)
調用的clf_class(**kwargs)
,因此,如果您傳遞特定object
(通過clf = SVC(kernel='linear')
),則它將無法正常工作,因為你嘗試去做
SVC(kernel='linear')(**kwargs) # error!
你想打電話
SVC(kernel='linear', **kwargs)
所以你可以在python中聲明局部函數
from functools import partial
linear_svm = partial(svm.SVC, kernel='linear')
現在你可以打電話
linear_svm(**kwargs)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.