在 Python 中的 pandas 数据框上拟合 SVM

Fit SVM on a pandas data frame in Python

我有一个名为 dataset 的 pandas 数据框,我将它的前两列导出为 X,最后一列名为“Class”作为 y:

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

然后使用以下代码行,我尝试使用这些数据拟合 SVM:

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)

之后,使用下面的两行,我尝试训练 SVM 但出现以下错误。

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

我该如何解决这个问题?

尝试将您的数据框转换为列表。然后拆分并适合模型

将dataframe拆分为X和Y后,使用values函数或tolist函数将其转换为列表。即

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)