gpt4 book ai didi

python - 在 python 中更改 SVM 的 C 参数

转载 作者:行者123 更新时间:2023-11-30 08:55:40 25 4
gpt4 key购买 nike

我正在尝试优化我的 SVM,使用交叉验证来估计我的性能。

似乎更改 C 参数没有任何作用 - 为什么呢?

from sklearn import cross_validation
from sklearn import svm
for C in [0.1, 0.5, 1.0, 2.0, 4.0]:
clf = svm.SVC(kernel='linear', C=C)
scores = cross_validation.cross_val_score(clf, X, y, cv=6, n_jobs = -1)
print C, scores

结果是

> 0.1 [ 0.88188976  0.85826772  0.90118577  0.90909091  0.8972332   0.86561265]
> 0.5 [ 0.88188976 0.85826772 0.90118577 0.90909091 0.8972332 0.86561265]
> 1.0 [ 0.88188976 0.85826772 0.90118577 0.90909091 0.8972332 0.86561265]
> 2.0 [ 0.88188976 0.85826772 0.90118577 0.90909091 0.8972332 0.86561265]
> 4.0 [ 0.88188976 0.85826772 0.90118577 0.90909091 0.8972332 0.86561265]

最佳答案

这些似乎是对 C 值进行微小更改以查看差异的方法。尝试一组

C = [ 10**x for x in xrange(10) ]

为了检查一切是否正常,您应该打印模型,而不仅仅是结果。您的 SVC 对象包含有关支持向量的信息 - 只需打印它们即可看到,C 中的更改确实会影响算法训练 SVM 的方式。

对于线性内核,您可以打印:

print clf.coef_
print clf.intercept_

对于非线性内核:

print clf.dual_coef_
print clf.support_vectors_
print clf.intercept_

关于python - 在 python 中更改 SVM 的 C 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19750619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com