% APRENDIZAJE AUTOMÁTICO (G. Pajares y J. M. de la Cruz, Eds.)
% Editorial: RA-MA
% Capítulo 5: Máquinas de Vectores Soporte
% Autores: Jesús Antonio Vega Sánchez y Sebastián Dormido Canto

function entrenasvm


%-----------ENTRENA SVM------------

waveE=get(findobj('Tag','ListBoxEntrenamiento'),'UserData');

len=get(findobj('Tag','PushButtonGenera'),'UserData');
lenE=ceil(len*0.6);
lenT=len-lenE;

lkernel=get(findobj('Tag','PopupMenuKernel'),'String');
ikernel=get(findobj('Tag','PopupMenuKernel'),'Value');
kernel=deblank(lkernel(ikernel,:));

param=get(findobj('Tag','EditTextParametros'),'String');
if not(isempty(param))
   param=eval(param);
else
   param=[1 1];
end;

%Obtiene tiempo actual
tiempo=cputime;

%Entrena SVM
[svmC,nsvC,bC]=training(5,lenE,waveE,[inf inf inf inf inf],kernel,param);

%Obtiene tiempo de Entrenamiento
tpc=(cputime-tiempo);

%Guarda Entrenamiento
psvm={};
psvm{1}=svmC;
psvm{2}=nsvC;
psvm{3}=bC;
set(findobj('Tag','PushButtonEntrena'),'UserData',psvm);

%Calcula tiempo y presenta
set(findobj('Tag','StaticTextTiempo'),'String',num2str(tpc));
set(findobj('Tag','StaticTextEstado'),'string','Entrenamiento');

%Habilitar Clasifica
set(findobj('Tag','PushButtonClasifica'),'Enable','on');
