libsvm在matlab中遇到的問題總結

2021-08-20 03:08:33 字數 1938 閱讀 5046

——包含libsvm四個exe程式包,我們所用的庫就是它們,然後在matlab命令框輸入

1.mex –setup

2.選擇vc++

3.之後輸入make

問題一:error: d:\libsvm\libsvm-3.21\matlab\make.m failed (line 13)

未找到 e:\百葉通\matlab\libsvmread.c;請檢查您是否位於正確的當前資料夾,並檢查 'e:\百葉通\matlab\libsvmread.c' 的拼寫。

解決方法:啊,太粗心了,看了一下我的當前路徑居然不是libsvm所在路徑,改過來就好了,

之後再輸入make,然後在當前資料夾下多了4個檔案,libsvmread.mexw64、libsvmwrite.mexw64、svmpredict.mexw64、svmtrain.mexw64

問題二:

找不到d:\libsvm\libsvm-3.21\matlab\svmtrain.exp

找不到 d:\libsvm\libsvm-3.21\matlab\svmtrain.exp

找不到d:\libsvm\libsvm-3.21\matlab\svmpredict.exp

找不到d:\libsvm\libsvm-3.21\matlab\svmpredict.exp

解決方法:把出現的四個檔案複製到d:\libsvm\libsvm-3.21\windows下就好了。

開始使用matlab自帶的資料來驗證一下libsvm裝好了嘛。

load heart_scale

問題三:

錯誤使用 load

ascii 檔案 heart_scale的第 3 行中的列數必須與前面行中的列數相同。

解決方法:使用libsvmread函式,在matlab下直接libsvmread(heart_scale)就好了。

總結一下全過程如下:

1.mex –setup

2.選擇vc++

3.make

4. [heart_scale_label,heart_scale_inst] =libsvmread('../heart_scale');

model=svmtrain(heart_scale_label,heart_scale_inst,'-c1 -g 0.07');

[predict_label,accuracy,dec_values]=svmpredict(heart_scale_label,heart_scale_inst,model);

此處的訓練集和測試集用的是同一組資料。

結果:optimization finished, #iter = 134

nu = 0.433785

obj = -101.855060, rho = 0.426412

nsv = 130, nbsv = 107

total nsv = 130

accuracy = 86.6667% (234/270)(classification)

好啦其中,#iter為迭代次數,nu是你選擇的核函式型別的引數,obj為svm檔案轉換為的二次規劃求解得到的最小值,rho為判決函式的偏置項b,nsv為標準支援向量個數(0最後會生成乙個model,如圖

是訓練得到的模型,是乙個結構體(

如果引數中用到-v,得到的就不是結構體,對於分類問題,得到的是交叉檢驗下的平均分類準確率;對於回歸問題,得到的是均方誤差)使用-v是在引數尋優時尋找最優引數所用的,在正常模型訓練時不用-v引數。

在MATLAB中安裝libsvm

搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。1.參考 詳解 2.操作流程 請注意 詳細操作流程請參考上面的 詳解 這裡只說大框架和詳解裡沒有提到的問題。a.設定path file set path add with subfolders 加入...

LibSVM 在matlab中的使用

搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。1.參考 詳解 2.操作流程 請注意 詳細操作流程請參考上面的 詳解 這裡只說大框架和詳解裡沒有提到的問題。a.設定path file set path add with subfolders 加入...

LibSVM 在matlab中的使用

搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。1.參考 詳解 2.操作流程 請注意 詳細操作流程請參考上面的 詳解 這裡只說大框架和詳解裡沒有提到的問題。a.設定path file set path add with subfolders 加入...