如何在 python 中使用 scikit 训练 SVM?

How do I train an SVM with scikit in python?

我有以下数据框:

         A   B
40      25  95
40      25  171
40      25  109
...

我想 运行 一个 svm 分类器。我想预测 A 给定 B。这是我所做的:

我创建了 train/test 集:

a_train, a_test, b_train, b_test = train_test_split(df.A,df.B, test_size=0.33)

然后(尝试)训练 SVM,像这样:

classifier = svm.SVC(kernel='linear')
y_pred = classifier.fit(a_train, b_train).predict(b_test)

然后出现以下错误。

ValueError: X and y have incompatible shapes.
X has 1 samples, but y has 27766.

任何人都可以帮我调试我做错了什么吗?

您的特征向量 df.A 是一维的,但 scikit 总是期望 X 的二维矩阵。尝试使用重塑矩阵:

a_train, a_test, b_train, b_test = train_test_split(df.A.reshape(-1,1),df.B, test_size=0.33)