繁体   English   中英

svm和logistic回归在python中的准确性差异

[英]accuracy difference between svm and logistic regression in python

我在python中有两个分类器,例如svm和logistic回归。

from sklearn import preprocessing
from sklearn.linear_model import LogisticRegression
from sklearn import svm

scaler = preprocessing.StandardScaler()
scaler.fit(synthetic_data)
synthetic_data = scaler.transform(synthetic_data)
test_data = scaler.transform(test_data)

svc = svm.SVC(tol=0.0001, C=100.0).fit(synthetic_data, synthetic_label)
predictedSVM = svc.predict(test_data)
print(accuracy_score(test_label, predictedSVM))

LRmodel = LogisticRegression(penalty='l2', tol=0.0001, C=100.0, random_state=1,max_iter=1000, n_jobs=-1)
predictedLR = LRmodel.fit(synthetic_data, synthetic_label).predict(test_data)
print(accuracy_score(test_label, predictedLR))

我使用相同的输入,但它们的准确性却大不相同。 svm有时会将所有预测的svm预测为1。svm的精度为0.45,逻辑回归的精度为0.75。 我以不同的方式更改了C的参数,但仍然存在一些问题。

这是因为SVC默认情况下使用放射状内核( http://scikit-learn.org/stable/modules/generation/sklearn.svm.SVC.html ),这与线性分类有所不同。

如果要使用线性内核,请向SVC添加参数kernel ='linear'。

如果您想继续使用放射状核,建议您也更改gamma参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM