SVM Scikit-Learn:为什么在增加参数C时SVC的预测时间会减少?

时间:2016-09-15 10:42:54

标签: python machine-learning scikit-learn svm latency

我正在尝试评估功能和功能的影响力。参数C(SVM正则化)对预测时间的影响。我正在使用scikit-learn网站提出的code的修改版本。

以下是一些重要的代码行: 输入

'n_train': int(2000),
'n_test':  int( 500),
'n_features': np.arange(10,100,10)

功能

SVC(kernel='linear', C=0.001)
SVC(kernel='linear', C=0.01)
SVC(kernel='linear', C=1)
SVC(kernel='linear', C=100)

预测

estimator.fit(X_train, y_train)
....
start = time.time()
estimator.predict(X_test)
runtimes[i] = time.time() - start

输出:Evolution of Prediction Time enter image description here 我不明白为什么预测时间会逆转。根据许多资源(3和其他资源),延迟应该随着SVM函数的C参数而增加。

1 个答案:

答案 0 :(得分:0)

具有更大的C将导致松弛变量的值更小。这意味着支持向量的数量将减少。运行预测时,需要计算每个支持向量的指标函数。

因此;较小的C - >更多支持向量 - >更多计算 - >预测速度较慢。