【发布时间】:2019-03-01 20:37:50
【问题描述】:
我是 SVM(RBF 内核)来学习我的数据并尝试找到最佳 gamma 和 C,我的代码是这样的:
from sklearn import svm
C = np.array([1, 10, 100, 1000])
gamma = np.array([1e-3, 1e-4])
avg_rbf_f1 = []
for a in C:
for b in gamma:
rbf_model = svm.SVC(kernel='rbf',C=a, gamma=b)
rbf_scores = cross_val_score(rbf_model, X_train, y_train, cv=10, scoring='f1_macro')
avg_rbf_f1.append(np.mean(rbf_scores))
best_gamma = gamma[np.argmax(avg_rbf_f1)]
best_C = C[np.argmax(avg_rbf_f1)]
print('The gamma with the highest accuracy is {}'.format(best_gamma))
print('The C with the highest accuracy is {}'.format(best_C))
并且我将标题作为错误。我知道这可能是因为我的伽玛只有 2 号。但我不知道如何使它工作。
【问题讨论】:
-
哪一行报错?
-
best_gamma = gamma[np.argmax(avg_rbf_f1)] 这个,best_C 有效
-
best_C偶然“工作”。引用你没有得到正确答案,它只是停留在界限内,因此不会产生错误。
标签: python machine-learning svm