使用Scikit-Learn将Python代码卡在SVC中而没有错误

时间:2018-12-18 07:56:37

标签: python scikit-learn svm

我在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中获得一些见解,但没有任何有用的信息。

知道发生了什么吗?

0 个答案:

没有答案