小编bid*_*dby的帖子

有没有更快的方式运行GridsearchCV

我正在为sklearn中的SVC优化一些参数,这里最大的问题是在我尝试任何其他参数范围之前必须等待30分钟.更糟糕的是,我想在相同的范围内尝试更多的c和gamma值(所以我可以创建一个更平滑的表面图)但我知道它只需要更长更长的时间...当我今天运行它时我将cache_size从200更改为600(不知道它的作用),看它是否有所作为.时间减少了大约一分钟.

这是我可以帮助的吗?或者我只是需要处理很长时间?

clf = svm.SVC(kernel="rbf" , probability = True, cache_size = 600)

gamma_range = [1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1e0,1e1]
c_range = [1e-3,1e-2,1e-1,1e0,1e1,1e2,1e3,1e4,1e5]
param_grid = dict(gamma = gamma_range, C = c_range)

grid = GridSearchCV(clf, param_grid, cv= 10, scoring="accuracy")
%time grid.fit(X_norm, y)
Run Code Online (Sandbox Code Playgroud)

收益:

Wall time: 32min 59s

GridSearchCV(cv=10, error_score='raise',
   estimator=SVC(C=1.0, cache_size=600, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
kernel='rbf', max_iter=-1, probability=True, random_state=None,
shrinking=True, tol=0.001, verbose=False),
   fit_params={}, iid=True, loss_func=None, n_jobs=1,
   param_grid={'C': [0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0], 'gamma': [1e-07, 1e-06, 1e-05, 0.0001, 0.001, 0.01, 0.1, 1.0, 10.0]}, …
Run Code Online (Sandbox Code Playgroud)

python time svc scikit-learn grid-search

8
推荐指数
2
解决办法
7142
查看次数

解释径向基函数在支持向量机中的工作原理

我无法准确理解 SVM 在使用 RBF 时的工作原理。我的数学知识还可以,但到目前为止我遇到的每一个解释对我来说都太简洁了。我目前的理解如下。假设我使用 SVM 作为不可线性分离的数据集的二元分类器(所以 rbf 是正确的选择?)。当 SVM 被训练时,它会绘制一个超平面(我认为它就像 3d 中的平面,但具有更多维度?),以最好地分离数据。

调整时,改变 gamma 的值会改变超平面的表面(也称为决策边界?)。

这就是我开始感到困惑的地方。

因此,伽马值的增加会导致高斯分布更窄。这是否就像说可以绘制的平面上的凹凸(如果以 3d 形式绘制)可以更窄以更好地拟合训练数据?或者在 2D 中,这就像伽玛定义了分隔数据的线的弯曲程度一样?

我也很困惑这如何从有限数量的特征中产生无限维度的表示?任何好的类比都会对我有很大帮助。

kernel machine-learning gaussian svm

1
推荐指数
1
解决办法
2550
查看次数