我正在使用 SVM 执行一些机器学习任务。我怀疑数据是非线性的,所以我还包括了 RBF 内核。我发现带有 RBF 核的 SVM 比线性 SVM 差得多。我想知道我的分类器参数规范是否有问题。
我的代码如下:
from sklearn.svm import LinearSVC
from sklearn.svm import SVC
svm1 = LinearSVC() # performs the best, similar to logistic regression results which is expected
svm2 = LinearSVC(class_weight="auto") # performs somewhat worse than svm1
svm3 = SVC(kernel='rbf', random_state=0, C=1.0, cache_size=4000, class_weight='balanced') # performs way worse than svm1; takes the longest processing time
svm4 = SVC(kernel='rbf', random_state=0, C=1.0, cache_size=4000) # this is the WORST of all, the classifier simply picks the majority class
最佳答案
使用 RBF 尝试调整您的 C
和 gamma
参数。 Scikit-learn 的网格搜索将为您提供帮助。
这是一个让您入门的示例:
svc = SVC(...)
params = {"C":[0.1, 1, 10], "gamma": [0.1, 0.01, 0.001]}
grid_search = GridSearchCV(svc, params)
grid_search.fit(X,y)
关于python-2.7 - 在 python scikit-learn 中,RBF 内核的性能比 SVM 中的线性性能差得多,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34668807/