LibSVM格式簡介和利用Excel與CSV/XLS格式轉換
最近在spark上研究決策樹類演算法,發現給的決策樹的demo使用到了libsvm dataset,便查閱了相關的資料。相關內容如下:
1、什麼是libsvm
LIBSVM是臺灣大學林智仁(Lin Chih-Jen)教授等開發設計的一個簡單、易於使用和快速有效的SVM模式識別與迴歸的軟體包,他不但提供了編譯好的可在Windows系列系統的執行檔案,還提供了原始碼,方便改進、修改以及在其它作業系統上應用;該軟體對SVM所涉及的引數調節相對比較少,提供了很多的預設引數,利用這些預設引數可以解決很多問題;並提供了互動檢驗(Cross Validation)的功能。
2、libsvm使用的資料格式
資料基本格式如下:
<label> <index1>:<value1> <index2>:<value2>…
Label代表類別標識,比如對於某個對於一個座標點進行二元分類問題,以對角線作為分界線,靠近y正半軸區域為正,使用1代表,反之為0,則對於(1,5)點,代表的是正,label應該為1。對於(4,1),代表的是0。因此上述兩組資料可以表示為以下格式:
1 1:1 2:5
0 1:4 2:1
對於某個三維問題則可能會生成以下結果:
1 1:0 2:4 3:4
可以看出index跟維數對應。
3、如何生成libsvm格式資料
資料有很多儲存格式,txt格式,xls格式,data格式,csv格式等等,這些資料格式之間都可以互相轉換,在此介紹一下xls如何生成libsvm格式的資料。
生成libsvm資料有兩種方法,在此介紹使用FormatDatalibsvm工具,因為這種方法直觀簡單,效率高,方便易行。其實只是利用了excel的巨集。
①下載FormatDatalibsvm.xls
這個東西比較隱蔽,很多之前的連結都不在了,找了很久最後還是在CSDN上找到了,地址如下:
http://download.csdn.net/download/wangwenjinghenhao/3139540
向分享者表示感謝。
②準備好Excel資料集
如果是csv格式的可以先通過Excel轉換成.xls格式,具體方法見下面的第4點。
③開啟FormatDatalibsvm.xls
注意上方會出現一個框框提醒你巨集已經被禁用,一定要點選更改,啟用巨集。
④載入data
可以直接將資料複製到topleft單元格,注意複製的時候只複製資料區域相關的屬性不要複製進去,否則會崩潰。
⑤轉換
在Excel介面點選
“工具”–>”巨集”–>”巨集”–>FormatDatatoLibsvm–>執行
可以看到資料在進行轉換和移動,稍等一下就可以看到資料變成了libsvm格式。
4、csv和xls轉換
有時候一開始拿到的資料時csv格式的,想把它轉換成Excel原始格式,可以按照以下方式進行:
①開啟Excel,新建一空白文件。
②在介面中單擊“資料”–>“自文字”。找到並選中csv檔案“原始檔.csv”,單擊“匯入”。
操作會彈出一個視窗,不用做任何操作,點選下一步。
③在下一個介面根據分隔符型別選擇相應符號,如逗號、分號等,選擇後點擊下一步
④接著點選下一步,如果需要更改資料格式可做調整。
⑤點選完成,彈出一個視窗,選擇資料的存放位置,完成操作,可以看到資料變成了最原始的xls格式。