我在Scikit-Learn中使用不同的参数测试了SVC模型。我已经为要测试的范围嵌套了for循环。但是,有一个奇怪的问题。经过一定数量的循环后,代码只是停留在此处而没有打印任何内容。不管我离开多少时间。
params_c = [0.1, 1, 10, 100]
params_kernel = ['poly', 'rbf', 'sigmoid']
params_gamma = [0.3, 0.5, 2, 5]
params_degree = [2, 5]
for c in params_c:
for kernel in params_kernel:
for gamma in params_gamma:
for degree in params_degree:
params = {
'c': c,
'kernel': kernel,
'gamma': gamma,
'degree': degree
}
print(params)
if kernel != 'poly':
model = SVC(C = params['c'], kernel = params['kernel'], gamma = params['gamma'])
break #no need to iterrate for degree
else:
model = SVC(C = params['c'], kernel = params['kernel'], gamma = params['gamma'], degree = params['degree'])
model.fit(X_train, y_train)
y_predictions = model.predict(X_test)
上面的代码显示以下内容:
{'c': 0.1, 'kernel': 'poly', 'gamma': 0.3, 'degree': 2}
{'c': 0.1, 'kernel': 'poly', 'gamma': 0.3, 'degree': 5}
{'c': 0.1, 'kernel': 'poly', 'gamma': 0.5, 'degree': 2}
{'c': 0.1, 'kernel': 'poly', 'gamma': 0.5, 'degree': 5}
{'c': 0.1, 'kernel': 'poly', 'gamma': 2, 'degree': 2}
{'c': 0.1, 'kernel': 'poly', 'gamma': 2, 'degree': 5}
第一次迭代大约需要几秒钟(<10秒)。然后,在您在print
上看到的最后一个之后,它停留了一个多小时而没有进一步打印(一个小时后,我刚刚停止了该终端)。
我试图增加详细值,以从SVC中获得一些见解,但没有任何有用的信息。
知道发生了什么吗?