# Different accuracy between OpenCV's SVM and sklearn's LinearSVM

**URL:** <https://forum.opencv.org/t/different-accuracy-between-opencvs-svm-and-sklearns-linearsvm/8380>\
**Category:** Python\
**Tags:** svm\
**Created:** [April 13, 2022, 3:18am UTC](https://forum.opencv.org/t/different-accuracy-between-opencvs-svm-and-sklearns-linearsvm/8380 "2022-04-13T03:18:46Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Merkaber](https://avatars.discourse-cdn.com/v4/letter/m/e56c9b/32.png) [@Merkaber](https://forum.opencv.org/u/Merkaber)\
**Post date:** [April 13, 2022, 3:18am UTC](https://forum.opencv.org/t/different-accuracy-between-opencvs-svm-and-sklearns-linearsvm/8380/1 "2022-04-13T03:18:46Z")

</div>

What is the difference between OpenCVs linear SVM and sklearn LinearSVM? The accuracy differs by 10%.

sklearn:

```auto
clf = make_pipeline(MaxAbsScaler(), LinearSVC(C=1.0, tol=1e-8, max_iter=1000))
clf.fit(training_data, label_data.ravel())

s = clf.score(test_training_data, test_label_data.ravel())
print(s)

```

OpenCV:

```auto
tr_scalar = MaxAbsScaler().fit(training_data)
training_data = tr_scalar.transform(training_data)
test_training_data = tr_scalar.transform(test_training_data)

svm = cv.ml.SVM_create()
svm.setType(cv.ml.SVM_C_SVC)
svm.setKernel(cv.ml.SVM_LINEAR)
svm.setC(1.0)
svm.setTermCriteria((cv.TERM_CRITERIA_MAX_ITER, 1000, 1e-8))
svm.train(np.asarray(training_data, dtype=np.float32), cv.ml.ROW_SAMPLE, label_data)

predictions = svm.predict(np.asarray(test_training_data, dtype=np.float32))

```

sklearn has 89% accuracy and OpenCV has 79% accuracy. Do I have to set some specific flags?  
sklearn’s LinearSVM uses liblinear.
