資源簡介
鑒于本人去年7月份發布的《關于粗糙集和鄰域粗糙集的基本理論和程序算例》其中有一些錯誤,可能給相關研究人員帶來了誤解,在此向大家道歉!
同時在此資源中新增加了本人編寫的鄰域粗糙集的matlab計算程序,
代碼片段和文件信息
function?PosSet?=?getPosSet(dataArraylammda)
%?以鄰域粗糙集算法的方式獲取下近似
%?輸入dataArray為包含決策屬性的數據樣本,最后一列為決策屬性
%?lammda為鄰域半徑集合計算時候的參數?delta=std(data)/lammda
%?lammda?注意!在這里計算的lammda和胡清華程序的lammda有區別
%?這里lammda取值盡量在0.5~1.5之間,如果太大,則不能輸出正常結果,如果太小,則程序報錯
%?如果數據內包含的樣本數比較多(幾十以上),則調大lammda=2~4
%?輸出的PosSet為正域集合
%?made?by?suozi?20140427
%?QQ:379786867
[mn]=size(dataArray);?%?m為樣本數?n為屬性個數(最后一列為決策屬性)
if?m<3?&&?n<3
????disp(‘輸入的決策系統行列個數不得小于3個!‘);
????return
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?首先對數據進行歸一化
for?j=1:n
????amin=min(dataArray(:j));
????amax=max(dataArray(:j));
????for?i=1:m
????????dataArray(ij)=(dataArray(ij)-amin)./(amax-amin);
????end
end
%?此時得到的條件屬性為歸一化后的屬性
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?計算鄰域半徑
delta=std(dataArray)/lammda;?%這里最后一列的決策屬性的鄰域半徑沒有用的
condiAtt=dataAr
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????1249248??2014-04-30?15:44??關于粗糙集和鄰域粗糙集的基本理論和程序算例(第二版).pdf
?????目錄???????????0??2014-04-29?19:02??索程序及算例數據\
?????文件????????2112??2014-04-30?15:29??索程序及算例數據\breast.mat
?????文件????????3591??2014-04-30?14:06??索程序及算例數據\getPosSet.m
?????文件?????????604??2014-04-29?18:18??索程序及算例數據\irisPosTest.mat
?????文件?????????658??2014-04-30?14:32??索程序及算例數據\mainAccess.m
?????文件????????2050??2014-04-30?15:16??索程序及算例數據\reduceSet.m
?????文件????????1951??2014-04-30?15:14??索程序及算例數據\weightD.m
?????目錄???????????0??2014-04-29?19:01??胡程序及算例數據\
?????文件????????5948??2013-07-06?18:35??胡程序及算例數據\breast_testdata.mat
?????文件????????1945??2013-03-04?22:55??胡程序及算例數據\Copy_of_clsf_dpd_fast_3.m
?????文件?????????326??2012-12-19?13:05??胡程序及算例數據\Data_normalized_suo.m
?????文件????????3403??2013-03-04?19:42??胡程序及算例數據\featureselect_FW_fast.m
評論
共有 條評論