fisher函数matlab实现

发布时间:2019-05-15 07:17:12

一、 实验目的

UCI数据集上的Irissonar数据上验证算法的有效性;Iris数据3类,4维,150个数据;Sonar数据2类,60维,208个样本;

二、 实验说明

1、本实验由MATLAB2014实现算法及验证。

2、训练和测试样本采用留1法划分

三、 Iris上验证算法的代码及结果

(1)代码

1、 function y=fisher_iris(SE,VE,VI)

2、

3、 S_V=[SE;VE];

4、

5、 ALL_1=[S_V;VI];

6、

7、 for L=1:150

8、 T=S_V;

9、 P=VI;

10、 sample=ALL_1(L,:);

11、 if L<=100

12、 T(L,:)=[];

13、 else

14、 P(L-100,:)=[];

15、 end

16、

17、 R1=size(T,1);

18、 R2=size(P,1);

19、

20、 a1=mean(T);

21、 a2=mean(P);

22、

23、 s1=cov(T)*(R1-1);

24、 s2=cov(P)*(R2-1);

25、

26、 Sw=s1+s2;

27、

28、 w=inv(Sw)*(a1-a2)';

29、

30、 y1=mean(w'*a1');

31、 y2=mean(w'*a2');

32、

33、 w0=1/2*(y1+y2);

34、

35、 y(L)=w'*sample';

36、

37、 if y(L)>w0;

38、 y(L)=0;

39、

40、 for L_2=1:100

41、 T_2=SE;

42、 P_2=VE;

43、 sample=S_V(L_2,:);

44、 if L_2<=50

45、 T_2(L_2,:)=[];

46、 else

47、 P_2(L_2-50,:)=[];

48、 end

49、

50、 R1=size(T_2,1);

51、 R2=size(P_2,1);

52、

53、 a1_2=mean(T_2);

54、 a2_2=mean(P_2);

55、

56、 s1_2=cov(T_2)*(R1-1);

57、 s2_2=cov(P_2)*(R2-1);

58、

59、 Sw_2=s1_2+s2_2;

60、

61、 w_2=inv(Sw_2)*(a1_2-a2_2)';

62、

63、 y1_2=mean(w_2'*a1_2');

64、 y2_2=mean(w_2'*a2_2');

65、

66、 w0=1/2*(y1_2+y2_2);

67、

68、 y(L_2)=w_2'*sample';

69、

70、 if y(L_2)>w0;

71、 y(L_2)=0;

72、 else

73、 y(L_2)=1;

74、 end

75、 end

76、

77、

78、 else

79、 y(L)=2;

80、 end

81、 end

(2)实验结果

z

四、 sonar上验证算法的代码及结果

(1) 代码

1、 function y=fisher_sonar(M,R)

2、

3、 A=[M;R];

4、 for l=1:208

5、 T=M;

6、 P=R;

7、 sample=A(l,:);

8、 if l<=111

9、 T(l,:)=[];

10、 else

11、 P(l-111,:)=[];

12、 end

13、

14、 R1=size(T,1);

15、 R2=size(P,1);

16、

17、 a1=mean(T);

18、 a2=mean(P);

19、

20、 s1=cov(T)*(R1-1);

21、 s2=cov(P)*(R2-1);

22、

23、 Sw=s1+s2;

24、

25、 w=inv(Sw)*(a1-a2)';

26、

27、 y1=mean(w'*a1');

28、 y2=mean(w'*a2');

29、

30、 w0=1/2*(y1+y2);

31、

32、 y(l)=w'*sample';

33、

34、 if y(l)>w0;

35、 y(l)=0;

36、 else

37、 y(l)=1;

38、 end

39、 end

40、

41、

(2) 实验结果

>> fisher_sonar(M,R)

ans =

1 5

1 0 1 1 1

6 10

0 1 1 1 0

11 15

0 1 1 0 0

16 20

0 1 0 0 0

21 25

0 0 0 0 0

26 30

0 0 0 0 0

31 35

1 1 0 0 0

36 40

0 0 1 0 0

41 45

0 0 0 0 0

46 50

0 0 0 0 0

51 55

0 0 0 1 1

56 60

0 1 1 1 0

61 65

0 0 0 0 0

66 70

0 1 0 1 0

71 75

0 0 0 0 0

76 80

0 0 0 0 0

81 85

1 1 0 0 0

86 90

0 0 0 0 0

91 95

0 0 0 0 1

96 100

0 1 1 0 0

101 105

0 0 0 0 0

106 110

0 0 0 0 0

111 115

0 1 1 0 0

116 120

0 0 1 0 0

121 125

1 1 1 1 1

126 130

1 1 1 0 1

131 135

0 0 0 1 1

136 140

1 1 0 0 0

141 145

1 1 1 1 0

146 150

0 0 1 1 1

151 155

1 1 1 1 1

156 160

0 0 0 0 1

161 165

1 1 1 1 1

166 170

1 1 1 1 1

171 175

1 1 1 1 1

176 180

1 1 1 1 1

181 185

1 1 1 1 0

186 190

1 1 1 1 1

191 195

0 0 0 0 1

196 200

1 1 1 1 0

201 205

1 1 1 1 0

206 208

1 1 1

>>

fisher函数matlab实现

相关推荐