Naser.Sadeghi
Naser.Sadeghi

Reputation: 1302

Fit SVM on a pandas data frame in Python

I have a pandas data frame named dataset and I exported the first two columns of it as X and the last column which is named "Class" as y:

X = dataset.drop('Class', axis=1)
y = dataset['Class']

Then using the following lines of code, I tried to fit SVM using these data:

from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20)

After that, using the two lines below, I tried to train the SVM but I got the following error.

SupportVectorClassModel = SVC()
SupportVectorClassModel.fit(X_train,y_train)

The SVM Error

How can I fix this issue?

Upvotes: 1

Views: 733

Answers (1)

dimas krisrianto
dimas krisrianto

Reputation: 188

try to convert your dataframe into the list. then split and fit into model

after you split the dataframe into X and Y, convert it into list by using values function or tolist function. i.e

X = dataset.drop('Class', axis=1)
y = dataset['Class']
# assuming X has multiple columns and y only one column
X = X.values
y = y['Class'].tolist()

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20)

Upvotes: 2

Related Questions