Я новичок в питоне. В своем коде я пытался реализовать опорную векторную машину с нуля. Код ранее имел 2 функции и 2 класса (1 и -1) с 6 экземплярами (для каждого класса), и он работал нормально.
Я пытаюсь реализовать один и тот же код для 9 функций и 2 классов (1 и -1) с 6 экземплярами (для каждого класса), и он дает мне ошибку значения, и я не могу ее исправить.
Я использую Python версии 3.6.3
Спасибо за вашу помощь.
#This is my dictionary/dataset
data_dict = {-1: np.array([[1, 7, 4, 1, 9, 1, 5, 6, 7],
[2, 8, 6, 0, 8, 6, 8, 5, 2],
[3, 8, 7, 3, 2, 5, 4, 4, 8], ]),
1: np.array([[5, 1, 8, 2, 6, 4, 0, 2, -3],
[6, -1, 5, -2, 6, -3, 0, 5, 3],
[7, 3, 0, 4, 10, -6, 9, 8, 2], ])}
#Call to the function
svm = Support_Vector_Machine()
svm.fit(data=data_dict)
#Function fit
def fit(self, data):
self.data = data
#Some more code here
#w_t and b intialized here
for i in self.data:
for xi in self.data[i]:
yi = i
if not yi * (np.dot(w_t, xi) + b) >= 1:
found_option = False
# print(xi,':',yi*(np.dot(w_t,xi)+b))
if found_option:
opt_dict[np.linalg.norm(w_t)] = [w_t, b]
Сообщение об ошибке:
в модуле
svm.fit(data=data_dict)
в форме
if not yi * (np.dot(w_t, xi) + b) >= 1:
ValueError: shapes (2,) and (9,) not aligned: 2 (dim 0) != 9 (dim 0)