Я пытаюсь создать классификатор SVM для своего набора данных, я знал, что классификатор SVM работает с 2D-массивом, но этот код не работает, потому что программа видит newtemp2
как 3D-массив, поэтому я хочу знать, что я должен сделать, чтобы мои данные использовали svm classifier
.
train_setfeat = []
train_setlabel = []
newtemp2=[]
for vector in newtemp:
newtemp2.append(np.reshape(vector, (431, 19)))
#convert each vector to 2d array
j = 0
for vector in newtemp2:
if j < 2100: # 70 % for train
train_setfeat.append(vector)
train_setlabel.append(classlabels[j])
j += 1
else:
break
test_setfeat = []
test_setlabel = []
j = 0
for vector in newtemp2:
if j < 2997 and j >= 2100: #20 % for test
test_setfeat.append(vector)
test_setlabel.append(classlabels[j])
if j>= 3000:
break
j += 1
classifier1 = svm.SVC(kernel='linear')
classifier1.fit(train_setfeat, train_setlabel)
#sample of newtemp data
newtemp =[
(0.05,0.0,0.0,0.02,0.0),
(0.0,0.0,0.0,0.02,0.0),
(0.05,0.0,0.0)]
Каждое предложение в наборе данных представляет собой вектор 0.0, если слово найдено, иначе укажите вес слова