資源簡介
用Matlab實現(xiàn)ISODATA算法對iris數(shù)據(jù)分類,包括了完整的matlab程序和數(shù)據(jù),特別好用。

代碼片段和文件信息
function?[Z?Xcluster?Ycluster?A?cluster]?=?isodata(X?Y?k?L?I?ON?OC?OS?NO?min);
?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%??Parametros?interos?de?la?funcion??%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
s=size(X);
s=s(2);
cluster=zeros(1s);?%?Espacio?temporal?interno?de?la?funcion.
iter=0;
final=0;
vuelve3=0;
A=1;?????%?Lo?inicializamos?para?el?primer?caso.
primeravez=1;???%?Para?en?el?primer?cilo?del?while?no?nos?pida?la?modificacion?de?parametros.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%??1.Inicializacion?de?los?centros??%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Z=?inicializa_centros(X?Y?A);
%%%%%%%%%%%%%%%%%%%%%%%%
%??Programa?principal??%
%%%%%%%%%%%%%%%%%%%%%%%%
while?final==0???%inicio?del?bucle?de?iteraciones.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%??2.Establecer?los?valores?de?los?parametros??%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%???
????if?primeravez==0
if?vuelve3==0
????????????[Ltemp?Itemp?ktemp?ONtemp?OCtemp?OStemp]=parametros(L?I?k?ON?OC?OS?iter);
????????end;
????end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%??3.Calcula?y?asigna?a?cada?coordenada?{XY}?su?centro?mas?cercano??%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????primeravez=0;
vuelve3=1;
for?i=1:s
????????cluster(i)=cercano(X(i)?Y(i)?Z?A);
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%??4.Eliminar?agrupamientos??%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?Funcion?que?nos?reduce?(si?hace?falta)?el?numero?de?centros?y?de?agrupamientos?encontrados.
[Z?A?cluster]=eliminar(A?cluster?Z?X?Y?ON);
????
????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%??5.Actualiza?los?centros?de?los?agrupamientos??%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Z=recalcula(cluster?X?Y?A?Z);
????
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%??6.Terminar?dividir?o?mezclar??%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????if?(iter==I)
????????final=1;
????????next=0;
else
????????next=decide78(iter?k?A);
????end;
%%%%%%%%%%%%%%%
%??7.Dividir??%
%%%%%%%%%%%%%%%
if?next==1
????????next=2;
????????hubo_division=0;
????????A2=A;
?? ????divide=0;
????????%?Dispersion?por?agrupamiento?dispersion?global
????????%?Y?dispersion?por?variable?y?componente?de?maxima?dispersion?por?orden?respectivo.
????????[Di?D?STM]=?dispersion(X?Y?Z?cluster?A);
????????%?Division?/?Divide?todos?los?agrupamientos?que?cumplan?la?condicion
i=0;????%?Si?se?cumplen?las?condiciones?realiza?una?division?e?itera.???????????????????????????
while?(hubo_division==0)?&?(i? ????i=i+1;??????????????????????????????????????????????????????????????????????????????????????
????index=find(cluster==i);?%?Index?nos?indica?los?valores?del?agrupamiento?a?particionar.??????
????sindex=size(index);????????????????????????????????????????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4512??2004-06-15?16:22??dades.mat
?????文件???????18157??2004-06-21?14:08??isodata.m
?????文件????????4059??2004-06-21?01:28??kmedia.m
?????文件????????1358??2004-06-21?14:11??provaisodata.m
?????文件?????????600??2004-06-21?01:35??provakmedia.m
- 上一篇:matlab 愛的表白
- 下一篇:RVM分類器及回歸 matlab源代碼
評論
共有 條評論