• 沒有找到結果。

迷思概念粗糙集分析軟體

第三章 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;

相關文件