使用python生成libSVM的資料格式
阿新 • • 發佈:2019-01-30
最近要做SVM分類,使用libsvm,需要將excel的資料轉化到libsvm格式下。
libsvm資料格式如下:(第一列是labels,後面是依次的features,空缺表示null)
+1 4:-0.320755
-1 1:0.583333 2:-1 3:0.333333
+1 1:0.166667 2:1 3:-0.333333 4:-0.433962
-1 1:0.458333 3:1 4:-0.358491
網上查了一下,發現都是用FormatDataLibsvm.xls這個檔案的,但是又找不到這個檔案,就自己python寫了一個,需要用的而且自己不想寫的就拿去用吧。
## # create by zhenyuxiaoge on 2016/11/25 ## # transform data.txt to libsvm type data, get libsvm.txt #read data file readin = open('data.txt', 'r') #write data file output = open('libsvm.txt', 'w') try: the_line = readin.readline() while the_line: # delete the \n the_line = the_line.strip('\n') index = 0; output_line = '' for sub_line in the_line.split('\t'): #the label col if index == 0: output_line = sub_line #the features cols if sub_line != 'NULL' and index != 0: the_text = ' ' + str(index) + ':' + sub_line output_line = output_line + the_text index = index + 1 output_line = output_line + '\n' output.write(output_line) the_line = readin.readline() finally: readin.close()
程式碼比較簡單,就直接複製好了,相應的地方可以自己改動一下。這邊是第一列預設是label,空值為大寫的NULL。