[英]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.