[英]How to classify using SVM classifier?
我正在嘗試為我的數據集構建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,否則表示單詞的權重
使用list和numpy數組的組合創建訓練集時遇到一些問題。
試試這部分代碼,應該用以下代碼替換第3-5行來解決您的問題:
N=len(newtemp)
newtemp2=np.empty(N,431,19)
i=0;
for vector in newtemp:
newtemp2[i,:]=np.reshape(vector, (431, 19)))
i+=1
您可以為其余代碼執行相同的操作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.