將一般的資料格式轉為libsvm格式

2021-08-18 07:55:24 字數 1721 閱讀 2117

libsvm是台灣大學林智仁教授等研究人員開發的乙個用於支援向量機分類的c++開源庫,支援多種語言介面,並且可進行多分類與回歸問題的建模

在資料預處理階段,需要將資料集轉化為libsvm要求的格式

通常的原始資料集格式為

value1 value2 value3...... label

而libsvm要求格式為

label   index1:value1   index2:value2    ........

而用python實現也不失為一種易行的方法

"""

original data form:

value1 value2 value3 value4 ......label

target data form:

label index1:value1 index2:value2 ......

"""import numpy as np

def readfromtxt(filename):

o_data = np.loadtxt(filename)

lines = o_data.shape[0]

columns = o_data.shape[1]

new_data = np.zeros([lines, 2*columns-1], dtype=list)

i = 0

while i < lines:

j = 1

new_data[i][0] = o_data[i][columns-1]

while j < columns:

new_data[i][2*j-1] = j

new_data[i][2*j] = o_data[i][j-1]

j = j+1

i = i+1

return new_data,lines,2*columns-1

def main():

# python 2.x needs raw_input()

filename = input("enter the file name:")

new_data,newlines,newcolumns = readfromtxt(filename)

newfilename = input("enter the new file name:")

f = open(newfilename,"w+")

i = 0

while i < newlines:

# if classification --> label shall be int

f.write(str(int(new_data[i][0])))

# if regression --> label shall be real

# f.write(str(new_data[i][0]))

f.write(" ")

j = 1

while j < newcolumns:

f.write(str(new_data[i][j]))

if j % 2 == 1:

f.write(":")

else:

f.write(" ")

j = j+1

f.write("\n")

i = i+1

f.close()

main()

formatdatalibsvm.xls

將一般函式轉為執行緒執行

下面的 在vc6.0 sp6 下測試通過 include stdafx.h pragma warning disable 4786 include include include using namespace std include include using namespace loki inc...

簡歷的一般格式

簡歷一定包含 個人資訊,教育資訊,實習經歷,活動經歷,技能及評價 這最基本五的部分 個人資訊以切合實際為主 姓名,出生年月,聯絡地點,聯絡 聯絡郵箱 若使用的qq郵箱注意暱稱及頭像 最好是本名與真是頭像 若應聘公司非國企,事業單位,特殊崗位可以不寫政治面貌 黨員,團員,群眾 為加分項可有可無,且須近...

將excel中的資料轉為json格式

恢復內容開始 用來總結工作中碰導一些錯誤,可以讓自己在碰到相同錯誤的時候不至於重新走一遍。昨天匯入資料的時候,碰到了乙個問題是將乙個大陣列裡面的每乙個元素中的一些不要的去提出掉,本身這些元素每乙個本身也是陣列,然後我去遍歷大陣列,又去遍歷小陣列,然後要賦值的條件就懵了,因為是雙重迴圈,所以後面洗澡想...