Ric*_* F. 6 python svm svc scikit-learn grid-search
gs_clf = GridSearchCV(SVC(probability=False, class_weight='balanced', max_iter=100, random_state=2018, tol=1e-10),
param_grid={'C': [2, 5, 10] , 'kernel': 'linear'},
n_jobs=1,
refit=False,
cv=2,
scoring='f1_weighted',
verbose=1)
gs_clf.fit(X, y)
Run Code Online (Sandbox Code Playgroud)
这就是我使用Gridsearch和SVC来匹配数据的方法.基本上,我根据随机训练数据调整数据点的行数和标签数,并记录时间消耗.从理论上讲,似乎SVC(不linearSVC)linear内核使用OVO多类实现,计算复杂度为O(#samples*#class*iter).
以下是我遇到的两个问题:
log(#label)(粗略地)呈线性上升.与单一SVC培训相反,时间呈线性上升趋势#label.Gridsearch究竟在做什么?#label=2.但是当#label它很大时情况并非如此.什么时候#label=40,time(max_iter=200)没有那么不同time(max_iter=400).这不仅发生在gridsearch中,也发生在SVC上.我设置tol为非常小,希望适合总是达到最大迭代但似乎它不起作用.这背后的机制是什么?我正在使用sklearn == 0.18.1.谢谢!