1.下載libsvm-3.23
下載鏈接:http://www.csie.ntu.edu.tw/~cjlin/libsvm/
下載數據鏈接:
點擊zip.file 或者tar.gz 壓縮文件下載;
下載到自己matlab安裝的路徑下的toolbox\matlab
C:\Program Files\MATLAB\R2017a\toolbox\matlab(這爲我的路徑);
下載完成後記得解壓!!
2.設置Path
打開matlab,將libsvm-3.23\matlab 添加到路徑,比如將:\MATLAB\R2017A\toolbox\matlab\libsvm-3.23 添加到路徑
3.進入工作目錄
注意:在此之前不要運行其他的程序
4.mex -setup
(1) mex -setup
(2) mex -setup C++
在命令行窗口輸入 mex -setup (注意mex後面有一個空格)
正常情況會出現如下界面(點擊選擇一種語言,一般點第一個):
5.make
接着在命令窗口輸入make
正常情況出現下面的界面爲編譯成功:
6.測試
(1)下載測試數據
將工作路徑調整到如下之後,可以看到heart_scale,這是libsvm自帶的測試數據文件
C:\Program Files\MATLAB\R2017a\toolbox\matlab\libsvm-3.23
(可將數據拷貝到上述路徑:matlab\libsvm-3.23\matlab)
這是一個libsvm格式的數據文件,直接用load會報錯:
load(‘heart_scale’)
1
錯誤使用 load
ASCII 文件 heart_scale 的第 3 行中的列數必須與前面行中的列數相同。
解決方法
可使用libsvmread()函數將其轉化爲matlab格式。
但是!要注意此時要將工作路徑改回
C:\Program Files\MATLAB\R2017a\toolbox\matlab\libsvm-3.23\matlab
否則會報錯!括號裏要寫明heart_scale所在的路徑!
[heart_scale_label,heart_scale_inst]=libsvmread(‘C:\Program Files\MATLAB\R2017a\toolbox\matlab\libsvm-3.23\heart_scale’);
1
報錯爲: 未定義函數或變量 ‘libsvmread’
解決方法
需要檢查一下當前工作路徑和libsvmread()函數裏的路徑是否正確。
當工作區(workspace)出現如下界面,說明數據下載成功:
(2)執行語句
[heart_scale_label,heart_scale_inst]=libsvmread(‘C:\Program Files\MATLAB\R2017a\toolbox\matlab\libsvm-3.23\heart_scale’);
model = svmtrain(heart_scale_label,heart_scale_inst, ‘-c 1 -g 0.07’);
predict_label, accuracy, dec_values] =svmpredict(heart_scale_label, heart_scale_inst, model);
出現如下結果:
安裝成功!測試成功!
原文:https://blog.csdn.net/weixin_43358444/article/details/84109915
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!