TA的每日心情 | 衰 2019-11-19 15:32 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 ubeautqq 于 2021-4-25 18:15 编辑 ! ?' f- y/ q g3 Y. N
( K3 D$ k0 D# X: D& A一、简介+ B' D9 ~: K6 A: ?3 N
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。
% [8 I- Q+ k6 q* g; z- b
$ k% R: l- L% s, l2 i% t1 数学部分
0 b: o% ?4 Q8 p
1 S. s2 d5 D# x1.1 二维空间
: U4 p4 y& A; j7 g x+ N) d6 l0 Q
U" [( P; ]- q( u8 T
! R, l. Z+ E l0 h1 l$ x! s+ o8 y- y) l
) F" W; B% a, J( `* _
* G9 N" c+ }2 N: }$ O
8 c# h3 p% [. A- V' @* k
4 G/ J9 a: B% B8 O) m$ l# ]2 F
' |3 @. g( f9 N" U+ D: C
7 W. x% ?: F& C( ~' |
0 J# t9 `; @5 H# @8 G0 h% N- G
; C9 b2 w. \+ T* f8 O# t* S& M. z
( u, a. P8 |( e, x- M5 V$ w8 H2 m
m2 i4 N5 X$ v0 n
) W5 h# w0 M: ?! A5 p, e/ t
( z" ]. L8 F9 e/ a4 H* Y# x* R
& R" k! Q0 S& }% W
, } y V f5 `- w
1 t( z$ q# O2 w( Q, S W$ R. e+ }# X# w* o
/ U) T5 @# M! B7 \; h: I" F! w* {0 _
2 算法部分0 x9 W0 A2 b6 n2 B+ K; l: g
8 `6 T6 p5 B- A" o0 t! W, Z
3 P, s1 {" f* ~, Z& F& k T# H8 G( U' o
' _( U$ A+ I& S9 F; f( g3 S/ Z5 D; w" ?) F" \/ y$ \0 Q
5 r3 Q& ~0 D; @. `
( p: q! _1 m- Q! {: T) M% S
, \" m9 W( G: u
) @) ?& F- D9 {6 o, j, B
1 ?- a' S/ C# z! l# B+ C* K2 q( p
9 i# F9 c, A$ O4 w" ]+ a
二、源代码9 Y& p" m% b. g; K
9 L7 b* r/ V1 t0 A* g0 d5 p5 Q- load ./CID2013.mat; %% You can also load the files of 'CSIQ.mat' or 'TID13.mat' if you want to use CSIQ or TID2013 database for training.
- train_data = Data(:,[1:5]);
- train_label = Data(:, 6);
- model = svmtrain(train_label, train_data, '-s 3'); % train
- %img = imread('.\input\TV_VR\Fig.7_RTV.jpg');
- img=imread('img004.png');
- disim = img;
- if numel(size(disim))>2 %% Is a rgb image ?
- dis_file_gray = rgb2gray(disim);
- else
- dis_file_gray = disim;
- end
- i = 1;
- %% mean value
- mean_tmp = round(mean2(dis_file_gray));
- Value(i, 1) = 1/(sqrt(2*pi)*26.0625)*exp(-(mean_tmp-118.5585)^2/(2*26.0625^2));
- %% std value
- std_tmp = round(std2(dis_file_gray));
- Value(i, 2) = 1/(sqrt(2*pi)*12.8584)*exp(-(std_tmp-57.2743)^2/(2*12.8584^2));
- %% entropy value
- entropy_tmp = entropy(dis_file_gray);
- Value(i, 3) = 1/0.2578*exp((entropy_tmp-7.5404)/0.2578)*exp(-exp((entropy_tmp-7.5404)/0.2578));
- %% kurtosis value
- kurtosis_tmp = kurtosis(double(dis_file_gray(:)));
- Value(i, 4) = sqrt(19.3174/(2*pi*kurtosis_tmp^3))*exp(-19.3174*(kurtosis_tmp-2.7292)^2/(2*(2.7292^2)*kurtosis_tmp));
- %% skewness value
- skewness_tmp = skewness(double(dis_file_gray(:)));
- Value(i, 5) = 1/(sqrt(2*pi)*0.6319)*exp(-(skewness_tmp-0.1799)^2/(2*0.6319^2));
- test_label = 0;
- [predicted_label, accuracy, decision_values] = svmpredict(test_label, Value, model);
- Score = predicted_label;
- disp('Score:');
- disp(Score );
- M/ ^9 ?. S6 H( f- P c1 J ; s" s: s. ~, p$ Z: r, F
( P0 U. S& z" v ^' K |
|