?? weighted.m
字號:
%==========================================================================
%
% 函數(shù)名:weighted
% 函數(shù)介紹:計算基因的權(quán)重向量。
% 輸入?yún)?shù):data是歸一化之后的基因表達(dá)譜數(shù)據(jù)。
% r1是第一類樣本的個數(shù)
% r2是第二類樣本的個數(shù)
% 輸出參數(shù):w是基因的分類權(quán)重。是一個列向量。
% m是表達(dá)譜數(shù)據(jù)中總的基因個數(shù)
%
%==========================================================================
function [w , m] = weighted ( r1, r2, data )
[m, n] = size ( data );
w = zeros (1, m);%每一個特征都有一個分類權(quán)重。
%首先:使每個樣本的類內(nèi)和類間距離個數(shù)相等。
if r1 <= r2
k = r1;
else
k = r2;
end
%第二步:求特征的分類權(quán)重。
for i = 1 : n %樣本循環(huán)
x = data (:, i); %x是樣本向量。
if i <= r1
fine = 1; %樣本屬于第一類。
else
fine = 0; %樣本屬于第二類。
end
[ data_hm ] = distant (r1, r2, data, x, fine, k);%針對樣本x找到一個m×2k的陣data_hm
a = 0; %特征分類權(quán)重的第一個累加項。
b = 0; %特征分類權(quán)重的第二個累加項。
for r = 1 : m %基因循環(huán)
for j = 1 : 2*k %同類、異類樣本循環(huán)。
for t =1: 2*k %臨時樣本陣的樣本循環(huán)。
if (j <= k & t <= k) || (j > k & t > k )
a = a + (data_hm (r, j) - data_hm (r, t))^2;
else
b = b + (data_hm (r, j) - data_hm (r, t))^2;
end
end
end
a = a / k;
b = b / k;
w( r ) = w( r ) - a + b;
end % for r=1:m %基因循環(huán)
end
w = transpose ( w );
% end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -