http://archive.ics.uci.edu/ml/
資料庫是加州大學歐文分校(UniversityofCaliforniaIrvine)提出的用於機器學習的資料庫,這個資料庫目前共有187個資料集,其數目還在不斷增加,UCI資料集是一個常用的標準測試資料集。
UCI上的“MultipleFeatures”資料庫,這是一個手寫數字識別問題,其中每個數位數字化映像由6組共649個特徵表示。
UCI資料可以使用matlab的dlmread(或textread或者利用matlab的匯入資料)讀取,不過,需要先將不是數位類別用數字,比如1/2/3等替換,否則讀入不了數值,當字元了。
每個資料檔案(*.data)包含以“屬性-值”對形式描述的很多個體樣本的記錄。對應的*.info檔案包含的大量的文檔資料。(有些檔案_generate_
databases;他們不包含*.data檔案。)作為資料集和領域知識的補充,在utilities目錄裡包含了一些在使用這一資料集時的有用資料。
下面以UCI中IRIS為例介紹一下資料集:
ucidata\iris中有三個檔案:
Index
iris.data
iris.names
index為檔案夾目錄,列出了本檔案夾裡的所有檔案,如iris中index的內容如下:
Index of iris
18 Mar 1996 105 Index
08 Mar 1993 4551 iris.data
30 May 1989 2604 iris.names
iris.data為iris資料檔案,內容如下:
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
……
7.0,3.2,4.7,1.4,Iris-versicolor
6.9,3.1,4.9,1.5,Iris-versicolor
……
6.3,3.3,6.0,2.5,Iris-virginica
6.4,3.2,4.5,1.5,Iris-versicolor
5.8,2.7,5.1,1.9,Iris-virginica
7.1,3.0,5.9,2.1,Iris-virginica
……
如上,屬性直接以逗號隔開,中間沒有空格(5.1,3.5,1.4,0.2,),最後一列為本行屬性對應的值,即決策屬性Iris-setosa
。
iris.names介紹了irir資料的一些相關資訊,如資料標題、資料來源、以前使用方式、最近資訊、執行個體數目、執行個體的屬性等,如下所示部分:
……
7. Attribute Information:
1. sepal length in cm
2. sepal width in cm
3. petal length in cm
4. petal width in cm
5. class:
-- Iris Setosa
-- Iris Versicolour
-- Iris Virginica
……
9. Class Distribution: 33.3% for each of 3 classes.
本資料的使用執行個體請參考其他論文,或本站後面的內容。
下面以wine資料為例匯入matlab並利用前面提到的libsvm做測試
>> uiimport('wine.data')
匯入資料,workspace處出現wine數組178*14
將標籤和資料屬性提取,並儲存到matlab平台下的資料
>> wine_label = wine(:,1);
>> wine_data = wine(:,2:end);
>> save winedat.mat
(下次使用的時候可以直接>> load winedat)
svm訓練模型得到wine模型
>> modelw = svmtrain(wine_label,wine_data);
.*
optimization finished, #iter = 239
nu = 0.892184
obj = -61.125695, rho = 0.131965
nSV = 130, nBSV = 53
.*
optimization finished, #iter = 193
nu = 0.882853
obj = -50.421538, rho = -0.166754
nSV = 107, nBSV = 42
.*
optimization finished, #iter = 214
nu = 0.800233
obj = -53.411663, rho = -0.286931
nSV = 119, nBSV = 44
Total nSV = 178
分類結果
>> [plabelw, accuracyw] = svmpredict(wine_label,wine_data,modelw);
Accuracy = 100% (178/178) (classification)