[英]Scikit-learn using GridSearchCV on DecisionTreeClassifier
[英]Python scikit-learn (using grid_search.GridSearchCV)
我正在使用網格搜索來適合機器學習模型參數。
我輸入了以下代碼(從sklearn文檔頁面進行了修改: http ://scikit-learn.org/stable/modules/generated/sklearn.grid_search.GridSearchCV.html)
from sklearn import svm, grid_search, datasets, cross_validation
# getting data
iris = datasets.load_iris()
# grid of parameters
parameters = {'kernel':('linear', 'poly'), 'C':[1, 10]}
# predictive model (support vector machine)
svr = svm.SVC()
# cross validation procedure
mycv = cross_validation.StratifiedKFold(iris.target, n_folds = 2)
# grid search engine
clf = grid_search.GridSearchCV(svr, parameters, mycv)
# fitting engine
clf.fit(iris.data, iris.target)
但是,當我查看clf.estimator
,得到以下信息:
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
kernel='rbf', max_iter=-1, probability=False, random_state=None,
shrinking=True, tol=0.001, verbose=False)
我如何獲得“ rbf”內核? 我沒有在參數中將其指定為選項。
這是怎么回事?
謝謝!
PS我正在使用sklearn的'0.15-git'版本。
附錄 :我注意到clf.best_estimator_
提供了正確的輸出。 那么clf.estimator
在做什么?
clf.estimator
只是作為第一個參數傳遞給GridSearchCV
對象的estimator的副本。 任何未在網格上搜索的參數均由此估算器確定。 由於您沒有為SVC對象svr
顯式設置任何參數,因此已為它提供了所有默認值。 因此,由於clf.estimator
只是svr
的副本,因此打印clf.estimator
的值將返回帶有默認參數的SVC對象。 您是不是寫了,例如,
svr = svm.SVC(C=4.3)
那么clf.estimator
的值應為:
SVC(C=4.3, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
kernel='rbf', max_iter=-1, probability=False, random_state=None,
shrinking=True, tol=0.001, verbose=False)
用戶訪問clf.estimator
並沒有真正的價值,但是無論如何它也不是一個公共屬性(因為它不以“ _”結尾)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.