I have tried to look for a problem but there is nothing Im seeing wrong here. What could it be? This is for trying binary classification in SVM for the fashion MNIST data set but only classifying 5 and 7.
JavaScript
x
37
37
1
import pandas as pd
2
import numpy as np
3
import seaborn as sns
4
from sklearn.linear_model import LogisticRegression
5
from sklearn.svm import SVC
6
from sklearn import svm
7
from sklearn.preprocessing import MinMaxScaler
8
from sklearn.svm import SVR
9
from sklearn.model_selection import KFold
10
import matplotlib.pyplot as plt
11
12
trainset = 'mnist_train.xlsx'
13
trs = pd.read_excel(trainset)
14
testset = 'mnist_test.xlsx'
15
tes = pd.read_excel(testset)
16
xtrain = trs.iloc[:, [1, 783]]
17
ytrain = trs.iloc[:, 0]
18
xtest = tes.iloc[:, [1, 783]]
19
ytest = tes.iloc[:, 0]
20
21
22
##Linear SVC
23
24
svclassifier = SVC(kernel='linear', C=1)
25
svclassifier.fit(xtest, ytest)
26
ypred = svclassifier.predict(xtest)
27
print(ypred.score(xtrain, ytrain))
28
print(ypred.score(xtest, ytest))
29
30
##Gaussian SVC
31
32
svclassifier = SVC(kernel='rbf', C=1)
33
svclassifier.fit(xtrain, ytrain)
34
ypred = svclassifier.predict(xtest)
35
print(ypred.score(xtrain, ytrain))
36
print(ypred.score(xtest, ytest))
37
Advertisement
Answer
ypred is an array of predicted class labels, so the exception makes sense.
What you should do is use the classifier’s score method:
JavaScript
1
6
1
svclassifier = SVC(kernel='rbf', C=1)
2
svclassifier.fit(xtrain, ytrain)
3
# ypred = svclassifier.predict(xtest) # We don’t actually use this.
4
print(svclassifier.score(xtrain, ytrain))
5
print(svclassifier.score(xtest, ytest))
6