如何解决SVM 错误的输入形状
我创建了一个数据集,然后将数据拆分为训练集和测试集。
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,Y,test_size = 0.20)
from sklearn.svm import SVC
svc_classifier = SVC(kernel='rbf')
svc_classifier.fit(X_train,y_train)
X_train.shape 和 y_train.shape 都是 (160,2)。 当我运行最后一部分时,我得到了 ValueError: bad input shape (160,2) 错误。我知道我的训练和测试样本的大小必须相同。但我想知道是否有办法处理这个问题。谢谢!
解决方法
这是你想要的代码 -
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
std = [[0.5,0],[0,0.5]]
X1 = np.vstack((
np.random.multivariate_normal([2,-2],std,size=200),np.random.multivariate_normal([-2,2],size=200)
))
y1 = np.zeros(X1.shape[0])
X2 = np.vstack((
np.random.multivariate_normal([2,size=200)
))
y2 = np.ones(X2.shape[0])
X = np.vstack((X1,X2))
y = np.hstack((y1,y2))
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.20)
svc_classifier = SVC(kernel='rbf',gamma='auto')
svc_classifier.fit(X_train,y_train)
您用来创建数据的原始代码只是将 Y
作为名称。它不应该代表标签。您需要单独创建标签。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。