簡體   English   中英

如何使用SVM分類器進行分類?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM