第三章 VSSEMS 系統設計
第六節 迷思概念粗糙集分析軟體
第六節 迷思概念粗糙集分析軟體
迷思概念粗糙集分析軟體是運用粗糙集理論分析迷思概念的方法。迷思概 念粗糙集分析軟體應用粗糙集理論分類特性,針對學生測驗資料進行冗餘信息 刪除,繼而,透過粗糙集邊界區界定進行迷思區因果關係之迷思概念點構造。
一、使用介面與流程圖
在 VSSEMS 系統主使用介界面,選擇「ROUGH SET ANALYSIS FOR MISCONCEPTION」按鈕後,ROUGH SET ANALYSIS FOR MISCONCEPTION 軟體使用介面將出現,呈現介面包括:菜單欄、學生條件-決策屬性表呈現區與 結果呈現區。使用者透過菜單欄「File」菜單進行輸入試題反應矩陣與試題-概 念矩陣。其次,在決策表中,使用者進行選擇迷思學生組(屬於迷思學生組以
「Yes」來表示,不屬於迷思學生組則以「No」來表示)。最後,在菜單欄
「Result」菜單選擇需要的結果。依據不同的篩選原則,迷思概念粗糙集分析軟 體將輸出相應的結果。分析結果包括:上近似集、下近似集、邊界區、正域、
負域 C 的D核、條件屬性重要性、在 C 中等價關係與在CD中等價關係。每 個菜單的功能敘述於表 3-6。圖 3-11 顯示迷思概念粗糙集分析軟體使用介面範例,
圖 3-10 顯示軟體設計流程。
63
表 3-6
迷思概念粗糙集分析軟體菜單功能
菜單\選項 選項符號 選項功能
I. File 1. Input Data S-P Chart 輸入試題反應矩陣 2. Input Data P-C Chart 輸入試題-概念矩陣 3. Back Main GUI 恢復主使用介面
II. Result 1. Analysis Results 計算與呈現分析結果,包括:上近似 集、下近似集、邊界區、正域、負域 C 的D核、條件屬性重要性、在 C 中 等價關係與在CD中等價關係 III. Help 1. Help File 呈現幫助文件
圖 3-10 粗糙集軟體主程序流程圖
START
輸入 IRM 與 PCM
形成 SCDR 表
否
確定 Ind(C) 輸出 SCDR 表
計算屬性依賴度 與屬性重要性 輸出上近似集、下近似
集、邊界、正域、負域
確定約簡與核 輸出依賴度與重要性
輸出約簡與核
是 END 結束?
64
圖 3-11 迷思概念粗糙集分析軟體介面
二、主要演算法
迷思概念粗糙集軟體操作,首先,確立學生條件-決策屬性表、計算屬性 依賴度、屬性重要性與核。演算法敘述如下:
(一) 確立 SCD 表演算法
% SP_CELL 為學生-試題表。
% PC_CELL 為試題-概念表。
% SCD_CELL 為學生條件-決策屬性表。
SPnguyenthuy=cell2mat(SP_CELL(2:end,2:end));
MT_SR=1-SPnguyenthuy;
MT_PC=cell2mat(PC_CELL(2:end,2:end));
MT_SC=MT_SR*MT_PC;
maxConcept=max(MT_SC,[],1);
maxsosanh=repmat(maxConcept,size(MT_SC,1),1);
sosanhmax=MT_SC./maxsosanh;
65
Amduong=sosanhmax-1/3;
MT_SC01=ceil(Amduong);
CotHocsinh=SP_CELL(2:end,1);
SCD_CELL=[CotHocsinh num2cell(MT_SC01)];
(二) 計算屬性依賴度與屬性重要性演算法
% SCD_CELL為學生條件-決策屬性表。
% rThanhphan為屬性依賴度向量。
% Delta為屬性重要性向量。
Dcell=get(handles.BangD, 'data');
VTdecition=strcmp('YES', Dcell(:,2));
MT_SCD=[cell2mat(SCD_CELL(:,2:end)) VTdecition];
SC=MT_SCD(:,1:(end-1)); S=(1:size(SC,1))';
[~, IND_C]=phanloaitheohang(SC);
IND_D1=S; IND_D1(MT_SCD(:,end)==0,:)=[];
IND_D2=S; IND_D2(MT_SCD(:,end)==1,:)=[];
[ LowerY, ~, BoundaryY ] = timLUB( IND_C, IND_D1 );
[ LowerN, ~, BoundaryN ] = timLUB( IND_C, IND_D2 );
posC=numel([LowerY; LowerN]);
posThanhphan=zeros(1);
for i=1:size(SC,2)
bocotC=SC; bocotC(:,i)=[];
[~, IND_bocotC]=phanloaitheohang(bocotC);
[ LowerYbocot, ~, BoundaryY ] = timLUB( IND_bocotC, IND_D1 );
[ LowerNbocot, ~, BoundaryN ] = timLUB( IND_bocotC, IND_D2 );
posThanhphan(i,1)=numel([LowerYbocot; LowerNbocot]);
end;
rC=posC./size(SC,1);
rThanhphan=posThanhphan./size(SC,1); Delta=1-rThanhphan./rC;
66
(三) 確定核演算法
% SCD_CELL為學生條件-決策屬性表。
% core為核集合。
Dcell=get(handles.BangD, 'data');
VTdecition=strcmp('YES', Dcell(:,2));
MT_SCD=[cell2mat(SCD_CELL(:,2:end)) VTdecition];
SC=MT_SCD(:,1:(end-1)); S=(1:size(SC,1))';
[~, IND_C]=phanloaitheohang(SC);
IND_D1=S; IND_D1(MT_SCD(:,end)==0,:)=[];
IND_D2=S; IND_D2(MT_SCD(:,end)==1,:)=[];
[ LowerY, ~, BoundaryY ] = timLUB( IND_C, IND_D1 );
[ LowerN, ~, BoundaryN ] = timLUB( IND_C, IND_D2 );
posC=numel([LowerY; LowerN]); core=cell(1,1); k=0;
for i=1:size(SC,2)
bocotC=SC; bocotC(:,i)=[];
[~, IND_Ci]=phanloaitheohang(bocotC);
[ LowerYi, ~, BoundaryYi ] = timLUB( IND_Ci, IND_D1 );
[ LowerNi, ~, BoundaryNi ] = timLUB( IND_Ci, IND_D2 );
posCi=numel([LowerYi; LowerNi]);
if posCi~=posC
k=k+1; core{1,k}=i;
end;
end;