TA的每日心情 | 衰 2019-11-19 15:32 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 ubeautqq 于 2021-4-25 18:15 编辑 ' n* V0 t% x) y4 e; ^1 a1 {
; O3 y; L6 E7 E8 R一、简介
+ X! a8 P c; t2 w7 T1 E) O支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。
, ^9 Q! k! a5 m& q5 b! F# t% `; e$ k4 c0 f' H# ?5 F
1 数学部分0 a$ m1 I! |: x
: [ W( j6 G! Y7 ^
1.1 二维空间
0 Y9 V' W7 j. w. [* Y6 l L5 S2 e; k( k% w* M9 ~
1 y% K5 `* t9 K, y2 i% f! k
& _5 Z- I( S5 q# e. ?
' W% }$ S- e. q% T) v7 ` \
9 D+ f0 ? f: O) g
5 \3 a- f( m9 c5 j6 j$ K
2 e% T& \1 K/ r7 M2 t$ c, V: A4 ?
" a8 ~' b! _* B7 G% U8 C
, }5 K) n$ Z- j$ x, w
9 l( p- m0 @' F2 |0 `" V
; _/ |! Z: P$ p% d
" v1 _" L X; _0 l3 B
* t/ H3 W2 a# A) V+ J
4 u' g+ T# q- ]4 W- X/ q3 `' G
0 [ L1 K& q6 H# I# x
+ B6 P0 [2 J; c4 K' ~
, z. K1 j. R8 ]9 [- C- a
3 p, c+ [% s2 L2 D) |2 M) i0 d# F x0 i8 I
/ ^! H3 B8 @( v. Z6 P' T3 p6 z5 t! c9 |
2 算法部分
# ?9 @9 Z) K- O. r) K9 ?( Y! N; W. b/ I6 P" w3 D
6 S3 X V% W: u8 c4 ]+ C& w, X; c% @- o5 E, w& ?& f
' p3 ^3 D$ v# w+ t3 n3 A8 y0 z) t! q, f7 w9 b' b
; i# S3 S0 H9 D8 J1 y- d" e- ?- e$ {1 E4 h& K; V* y* d/ O k
9 {( Z* z6 a! A4 n+ p. W
% Z4 d8 d- W1 d8 f
7 F: _7 }9 }6 Z# l" D
- z3 z7 p. s& y" U3 _8 J1 r5 l. T
二、源代码
% n0 E" |' ~$ j" J 0 V( x* R: c4 i6 C) f
- 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 );
- / c8 R. x$ m" W; Y% [1 a
( U- }# D" D. A3 P6 S m7 s8 }
/ g* d6 Y i7 Q& J$ `
|
|