日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab的支持向量机调参,支持向量机(2)-应用

發布時間:2025/3/19 循环神经网络 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab的支持向量机调参,支持向量机(2)-应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

svm-pref 是康奈爾大學的 Thorsten Joachims 實現的

libsvm 和 liblinear 都是由國立臺灣大學的 Chih-Jen Lin 博士開發的,本文主要考慮該實現

libsvm 和 liblinear 的區別

兩者均以 c/c++ 實現底層,接口支持完善(MATLAB、Python、Java、C#、R等)

libsvm 用來解決通用分類問題

liblinear 主要為大規模數據的線性模型設計,僅包含線性核,計算速度比 libsvm 快得多

此外,文章還給出了幾條經驗:

若特征數遠大于樣本數,使用線性核就可以(liblinear)

若特征數和樣本數都很大,一般也使用線性核

若特征數遠小于樣本數,一般使用 RBF 核。如果一定要用線性核,建議 -s 2

使用 libsvm

數據格式

# ::...

1 1:-0.55556 2:0.5 3:-0.69491 4:-0.75

3 1:-0.16667 2:-0.33333 3:0.38983 4:0.91667

label 為該組樣本的類別(libsvm 支持多類)

index 為該樣本特征序號

value 為第 index 特征的值

數據歸一化

libsvm 提供了接口 svm-scale

svm-scale [options]filename

options:

-l -u : 上下界(默認[-1,1])-s -r : save/read scalefile-y : 類別的標準化(如:-y 0 1)

數據的訓練

svm-train [options] datafile [modelfile]

options:

-s : svm 類型,默認第0種 一共有5種:0 -- C-SVC(多類別分類)

1 -- nu-SVC(多類別分類)

2 -- one-class SVM(分布估計)

3 -- epsilon-SVR(回歸)

4 -- nu-SVR(回歸)

-t : 核函數類型,默認第2種 一共有5種:0 -- 線性核(u'*v)

1 -- 多項式核((gamma*u'*v + coef0)^degree)

2 -- RBF核(exp(-gamma*|u-v|^2))

3 -- sigmoid核(tanh(gamma*u'*v + coef0))

4 -- precompute kernel(使用訓練數據生成)

-d : degree,默認 3-g :gamma,默認 1/num_features-r :coef0,默認 0-c :cost,針對 C-SVC, epsilon-SVR, and nu-SVR,默認 1-n :nu,針對 nu-SVC, one-class SVM, and nu-SVR,默認 0.5-p :e,設置epsilon-SVR中的 e,默認0.1-m :cachesize,內存大小,默認 100MB-e : 終止條件的可容忍偏差,默認 0.001-h :shrinking,是否使用啟發式,默認 1-b :概率估計,是否估計SVC或SVR的概率分布,默認0-wi :weight,對各類樣本的懲罰系數C加權,默認 1-v n :n-折 交叉驗證模式,不會生成模型文件

調參

使用 libsvm 提供的 grid.py 實現自動尋參

#適用于 分類問題 RBF核和線性核

python [options] grid.py datafile

預測

svm-predict [options] test_file model_file output_file

options:

-b :概率估計,是否估計SVC或SVR的概率分布,默認0

C/C++接口

工程里加入 libsvm 的 “svm.h”和“svm.cpp”即可

調用方法參考文件 “svm-scale.c”、“svm-train.c”和“svm-predict.c”

Python接口

參考“libsvm/python/README”

#通過文件讀取

from svmutil import *

# Read data in LIBSVM format

y, x = svm_read_problem('../heart_scale')

m = svm_train(y[:200], x[:200], '-c 4')

p_label, p_acc, p_val = svm_predict(y[200:], x[200:], m)

#輸入數據

# Dense data

y, x = [1,-1], [[1,0,1], [-1,0,-1]]

# Sparse data

y, x = [1,-1], [{1:1, 3:1}, {1:-1,3:-1}]

prob = svm_problem(y, x)

param = svm_parameter('-t 0 -c 4 -b 1')

m = svm_train(prob, param)

#precomputed kernel 模式

# Dense data

y, x = [1,-1], [[1, 2, -2], [2, -2, 2]]

# Sparse data

y, x = [1,-1], [{0:1, 1:2, 2:-2}, {0:2, 1:-2, 2:2}]

# isKernel=True must be set for precomputed kernel

prob = svm_problem(y, x, isKernel=True)

param = svm_parameter('-t 4 -c 4 -b 1')

m = svm_train(prob, param)

#模型保存與讀取

svm_save_model('heart_scale.model', m)

m = svm_load_model('heart_scale.model')

p_label, p_acc, p_val = svm_predict(y, x, m, '-b 1')

ACC, MSE, SCC = evaluations(y, p_label)

總結

以上是生活随笔為你收集整理的matlab的支持向量机调参,支持向量机(2)-应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。