如何在 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)
我有以下数据框:
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)