Я пытаюсь построить границу решения SVM, но получил эту ошибку:
TypeError: '(0 True 1 True 2 True 3 True 4 True 5 False 6 False 7 False 8 False Name: Clase, dtype: bool, 0) 'является недопустимым ключом
У меня есть следующий код:
tabla = pd.DataFrame({'X': [1, 1, 1, 3, 1, 3, 1, 3, 1], 'Y': [0,0,1,1,1,2,2,2,1], 'Z': [1,2,2,4,3,3,1,1,0],
'Clase': ['0', '0','0','0','0','1','1','1','1']},
columns=['X','Y','Z','Clase'])
X = tabla.iloc[:, :3]
Y = tabla.Clase
#make it binary classification problem
X = X[np.logical_or(Y==0,Y==1)]
Y = Y[np.logical_or(Y==0,Y==1)]
model = svm.SVC(kernel='linear')
clf = model.fit(X, Y)
z = lambda x,y: (-clf.intercept_[0]-clf.coef_[0][0]*x -clf.coef_[0][1]*y) / clf.coef_[0][2]
tmp = np.linspace(-5,5,30)
x,y = np.meshgrid(tmp,tmp)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot3D(X[Y==0,0], X[Y==0,1], X[Y==0,2],'r')
ax.plot3D(X[Y==1,0], X[Y==1,1], X[Y==1,2],'b')
ax.plot_surface(x, y, z(x,y))
ax.view_init(30, 60)
plt.show()
Я попытался добавить clf = model.fit ( X, Y.iloc [:, 0] .values), но это не сработало. Есть идеи?