標籤:art sha details dict bsp 決策 blog ref nbsp
首先介紹一下 libSVM的資料格式
Label 1:value 2:value ….
Label:是類別的標識,比如上節train.model中提到的1 -1,你可以自己隨意定,比如-10,0,15。當然,如果是迴歸,這是目標值,就要實事求是了。
Value:就是要訓練的資料,從分類的角度來說就是特徵值,資料之間用空格隔開
比如: -15 1:0.708 2:1056 3:-0.3333
需要注意的是,如果特徵值為0,特徵冒號前面的(姑且稱做序號)可以不連續。如:
-15 1:0.708 3:-0.3333
表明第2個特徵值為0,從編程的角度來說,這樣做可以減少記憶體的使用,並提高做矩陣內積時的運算速度。我們平時在matlab中產生的資料都是沒有序號的常規矩陣,所以為了方便最好編一個程式進行轉化。
怎樣產生libsvm所用的資料格式
第一種方法 使用FormatDataLibsvm.xls
我已經儲存在我百度網盤裡面了,可免費下載~記得以前是在新浪愛問下載的,需要積分……
為http://pan.baidu.com/share/link?shareid=447079&uk=2165237662
運行FormatDataLibsvm.xls(注意這時會有一個關於“宏已禁宏”的安全警示,點擊“選項”,選擇“啟用此內容”,確定即可);1,先運行FormatDataLibsvm.xls然後將資料粘貼到sheet1的topleft單元。
2、 開啟data.xls,(註:網上很多的介紹都是直接將資料粘貼到sheet1的topleft單元),要特別注意的是這時候的資料排列順序應該是:
條件屬性a 條件屬性b ... 決策屬性
7 5 ... 2
4 2 ... 1
3、"工具"-->"宏"-->執行下面有一個選項(FormatDatatoLibsvm)-->執行,要選中這個然後點擊“運行” ,這時候資料講變成:
決策屬性 條件屬性a 條件屬性b ...
2 1:7 2:5 ...
1 1:4 2:2 ...
等資料轉換完成後,將該檔案儲存為.txt檔案。這時資料轉換的問題就解決了。
第二種方法
.txt格式->svm格式的轉換(該段轉自http://blog.csdn.net/lztao82/article/details/7495258)
首先說明的是,這裡所提的.txt文本資料是指資料檔案帶有逗號、空格、頓號、分號等資料分離符號的資料檔案。因為其用符號來分離,導致所有資料項目都歸類為一個屬性,無法實現上面2步驟的格式輸入,也就無法實現正確結果格式的輸出了。
為瞭解決該問題,轉換該過程與上面一過程的最大不同就在於:在開啟該.txt檔案的時候根據文本資料本身的資料特點將其所包含的逗號、分號、定位字元等資料分離的符號去掉;具體的做法是:轉換運行FormatDataLibsvm.xls,“檔案”->“開啟”->選擇要開啟的data,txt檔案,接著在文本匯入嚮導中根據data.txt檔案本身的資料特點選擇“未經處理資料類型(分隔字元號)”;接著選擇分隔字元號的類型(目地是使得該資料分成獨立的一列列資料,分離成功的話,在資料預覽中將可以看到一列列分離獨立的資料) :選擇“列資料格式”(常規)->完成;
這時候只要調整上面"一"過程的資料格式,重複其後面的步驟2、3操作即可。
第三種方法
其實libsvm所需的資料也可以自己產生~比如我之前是利用映像的顏色特徵進行映像分割,先用程式讀取RGB值然後儲存在txt檔案中就可以了~只不過要注意儲存的格式
如何使用這些資料
以簡單的使用為例
在用libsvm內建的一個例子heart_scale.mat時,一切正常~
load heart_scale.mat(此處無分號)
train = heart_scale_inst;
train_label=heart_scale_label;
test=train;
test_label=train_label;
model=svmtrain(train_label,train,‘-c 2 -g 0.01‘);
[predict_label,accuracy]=svmpredict(test_label,test,model);
但是在我們用自己的例子時出現了問題~
因為train = heart_scale_inst;是用的mat檔案的特徵列
train_label=heart_scale_label;用的是mat檔案的標籤列
而我們產生的txt或者mat檔案還沒有進行賦值所以一開始進行賦值就可以了~
A=[newmat(1:2288,1:3)];%特徵列
B=[newmat(1:2288,4)];%標籤列
train = A;
train_label=B;
libSVM的資料格式