Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CONFUSIN
OMAR HERNNDEZ OLIVARES
VALIDACIN CRUZADA
Validacin cruzada es casi una parte inherente del aprendizaje automtico. La validacin cruzada
se puede usar para comparar el rendimiento de diferentes tcnicas de modelado predictivo. En
este ejemplo, se utiliza la validacin exclusin. El siguiente mtodo utilizamos el 40 por ciento de
los datos para operar como aprendizaje y el resto como test, el siguiente cdigo muestra como el
total de los datos son se peticionan para poder tener el porciento de datos tiles para el
entrenamiento invocando el mtodo training, posteriormente se pasan por el mtodo test, dando
como resultado la matriz de 2 por dos que se encuentra en la parte inferior, donde tenemos dos
clases de datos, aprendizaje y test, lo que significa el por ciento de probabilidad de que un cliente
sea acreedor de un prstamo, los resultados son utilizados para la aplicacin de una matriz de
confusin con los porcientos y valores obtenidos.
Cdigo fuente
% In this example, we will hold 40% of the data, selected randomly, for
% test phase.
cv = cvpartition(length(bank),'holdout',0.40);
% Training set
Xtrain = X(training(cv),:);
Ytrain = Y(training(cv),:);
% Test set
Xtest = X(test(cv),:);
Ytest = Y(test(cv),:);
disp('Training Set')
tabulate(Ytrain)
disp('Test Set')
tabulate(Ytest)
Resultados
Training Set
Value Count
no 23948
yes 3179
Test Set
Value Count
no 15974
yes 2110
Percent
88.28%
11.72%
Percent
88.33%
11.67%
Matriz de confusin
RED NEURONAL
El TOOLBOX de MatLab apoya el aprendizaje supervisado con alimentacin directa, base radial y
redes dinmicas. Es compatible con los algoritmos tanto de clasificacin y regresin. Tambin es
compatible con aprendizaje no supervisado con los mapas auto-organizativos y capas
competitivos. Uno puede hacer uso de las herramientas interactivas para configuracin, entrenar y
validar una red neuronal. A continuacin, es posible generar automticamente el cdigo con el fin
de automatizacin. En este ejemplo, el cdigo generado automticamente se ha actualizado para
utilizar un grupo de trabajadores. En el cdigo se hace invocacin de las herramientas de MatLab
enfocadas a las redes neuronales. El cdigo es el siguiente:
% Use modified autogenerated code to train the network
[~, net] = NNfun(XtrainNN,YtrainNN);
% Make a prediction for the test set
Y_nn = net(XtestNN');
Y_nn = round(Y_nn');
% Compute the confusion matrix
C_nn = confusionmat(YtestNN,Y_nn);
% Examine the confusion matrix for each class as a percentage of the true class
C_nn = bsxfun(@rdivide,C_nn,sum(C_nn,2)) * 100 %#ok<*NOPTS>
Ntese que el cdigo se invoca a los mtodos net y round adems de confusionmat los
cuales operan como la red neuronal.
Resultados
C_nn =
98.316
78.294
1.684
21.706
Como resultados se obtienen 2 filas y dos columnas donde la primera fila se obtiene los datos de
aprendizaje y la segunda fila los datos de test, donde la primera columna son los porcientos de los
que no son actos para el prstamo y la segunda columna los que s. Se le aplica una matriz de
confusin (porcientos obtenidos), la cual se muestra en la siguiente imagen.
Matriz de confusin
REGRESIN LINEAL
El siguiente mtodo es la regresin lineal la cual tambin utilizaremos algunos mtodos de MatLab
para operar, la regresin lineal se enfoca en la redaccin a partir de una base de datos, simulando
un comportamiento futuro. El cdigo para el clculo es el siguiente:
% Train the classifier
glm = GeneralizedLinearModel.fit(Xtrain,double(Ytrain)1,'linear','Distribution','binomial','link','logit','CategoricalVars',catPred);
% Make a prediction for the test set
Y_glm = glm.predict(Xtest);
Y_glm = round(Y_glm) + 1;
% Compute the confusion matrix
C_glm = confusionmat(double(Ytest),Y_glm);
% Examine the confusion matrix for each class as a percentage of the true class
C_glm = bsxfun(@rdivide,C_glm,sum(C_glm,2)) * 100
2.4728
35.166
Como resultados se obtienen 2 filas y dos columnas donde la primera fila se obtiene los datos de
aprendizaje y la segunda fila los datos de test, donde la primera columna son los porcientos de los
que no son actos para el prstamo y la segunda columna los que s. Se le aplica una matriz de
confusin (porcientos obtenidos), la cual se muestra en la siguiente imagen.
Matriz de confusin
Ntese que el cdigo que se muestra anteriormente utilizamos un mtodo para discriminar
ClassificationDiscriminant.fit con los datos de aprendizaje, posteriormente se hace una
prediccin con los datos de test. Como resultado tenemos la siguiente matriz.
Resultados
C_da =
90.253
51.801
9.7471
48.199
Como resultados se obtienen 2 filas y dos columnas donde la primera fila se obtiene los datos de
aprendizaje y la segunda fila los datos de test, donde la primera columna son los porcientos de los
que no son actos para el prstamo y la segunda columna los que s. Se le aplica una matriz de
confusin (porcientos obtenidos), la cual se muestra en la siguiente imagen.
Matriz de confusin
En el codigo anterior se muestra una invocacin al mtodo ClassificationKNN.fit, el cual opera con
datos de entrenamiento y el tipo de distancia mtrica. Los resultados son los siguientes:
Resultados
C_knn =
93.865
62.133
6.135
37.867
Como resultados se obtienen 2 filas y dos columnas donde la primera fila se obtiene los datos de
aprendizaje y la segunda fila los datos de test, donde la primera columna son los porcientos de los
que no son actos para el prstamo y la segunda columna los que s. Se le aplica una matriz de
confusin (porcientos obtenidos), la cual se muestra en la siguiente imagen.
Matriz de confusin
7.9817
53.744
Como resultados se obtienen 2 filas y dos columnas donde la primera fila se obtiene los datos de
aprendizaje y la segunda fila los datos de test, donde la primera columna son los porcientos de los
que no son actos para el prstamo y la segunda columna los que s. Se le aplica una matriz de
confusin (porcientos obtenidos), la cual se muestra en la siguiente imagen.
Matriz de confusin
8.445
47.299
Como resultados se obtienen 2 filas y dos columnas donde la primera fila se obtiene los datos de
aprendizaje y la segunda fila los datos de test, donde la primera columna son los porcientos de los
que no son actos para el prstamo y la segunda columna los que s. Se le aplica una matriz de
confusin (porcientos obtenidos), la cual se muestra en la siguiente imagen.
Matriz de confusin
RBOL DE DECISIN
rboles de clasificacin y rboles de regresin son dos tipos de rboles de decisin. Un rbol de
decisin es un diagrama de flujo como estructura en la que nodo interno representa pruebas en
un atributo, cada rama representa el resultado de la prueba y cada nodo hoja representa una
respuesta (decisin tomada despus de calcular todos los atributos). rboles de clasificacin dan
respuestas que son nominales, tales como 'true' o 'false' (Lgicas). Los rboles de regresin dan
respuestas numricas. El cdigo se muestra a continuacin:
tic
% Train the classifier
t = ClassificationTree.fit(Xtrain,Ytrain,'CategoricalPredictors',catPred);
toc
% Make a prediction for the test set
Y_t = t.predict(Xtest);
% Compute the confusion matrix
C_t = confusionmat(Ytest,Y_t);
% Examine the confusion matrix for each class as a percentage of the true class
C_t = bsxfun(@rdivide,C_t,sum(C_t,2)) * 100
Como resultados se obtienen 2 filas y dos columnas donde la primera fila se obtiene los datos de
aprendizaje y la segunda fila los datos de test, donde la primera columna son los porcientos de los
que no son actos para el prstamo y la segunda columna los que s. Se le aplica una matriz de
confusin (porcientos obtenidos), la cual se muestra en la siguiente imagen.
Matriz de confusin
Observe que se tiene la matriz de costo Cost con las proporciones de costo, el mtodo invocado
utilizado TreeBagger utilizando los datos de aprendizaje y los datos de test con el mtodo
tb.predict, dando como resultado una matriz lista para la matriz de confusin, los datos
resultantes son los siguientes.
Resultados
C_tb =
92.757
32.038
7.243
67.962
Como resultados se obtienen 2 filas y dos columnas donde la primera fila se obtiene los datos de
aprendizaje y la segunda fila los datos de test, donde la primera columna son los porcientos de los
que no son actos para el prstamo y la segunda columna los que s. Se le aplica una matriz de
confusin (porcientos obtenidos), la cual se muestra en la siguiente imagen.
Matriz de confusin
Como se observa, primero se hace una seleccin de los atributos, posteriormente se aplica
el clasificador TreeBagger con menos atributos que en el clasificador anterior, podemos
los resultados en la siguiente tabla:
Resultados
C_tb_r =
87.749
19.147
12.251
80.853
Como resultados se obtienen 2 filas y dos columnas donde la primera fila se obtiene los datos de
aprendizaje y la segunda fila los datos de test, donde la primera columna son los porcientos de los
que no son actos para el prstamo y la segunda columna los que s. Se le aplica una matriz de
confusin (porcientos obtenidos), la cual se muestra en la siguiente imagen.
Matriz de confusin