Está en la página 1de 21

Universidad Politécnica de

Victoria

Reporte: Comparativa Entre


Algoritmos
Profesor:Julio Noe Hernandez
Torres
Alumno: Ricardo Tomas Ulises
Moreno Perez – Jose Eduardo
Martinez Aguilar - Isaac Yañez
Wong - Jorge Alejandro Franco
Mandujano
Introducción:

En este documento se tratará de explicar el uso de los algoritmos J48 ID3 y el


Random Forest, los cuales pertenecen a la parte del tema de árboles.

Antes de empezar con el tema es importante explicar a qué nos referimos a la parte
de árboles de decisión.

Un árbol de decisión es un conjunto de condiciones o reglas organizadas en una


estructura jerárquica, de tal manera que la decisión final se puede determinar
siguiendo las condiciones que se cumplen desde la raíz hasta alguna de sus hojas.
Un árbol de decisión tiene unas entradas las cuales pueden ser un objeto o una
situación descrita por medio de un conjunto de atributos y a partir de esto devuelve
una respuesta la cual en últimas es una decisión que es tomada a partir de las
entradas.

Los valores que pueden tomar las entradas y las salidas pueden ser valores
discretos o continuos.

Se utilizan más los valores discretos por simplicidad. Cuando se utilizan valores
discretos en las funciones de una aplicación se denomina clasificación y cuando se
utilizan los continuos se denomina regresión. Un árbol de decisión lleva a cabo un
test a medida que este se recorre hacia las hojas para alcanzar así una decisión.

El árbol de decisión suele contener nodos internos, nodos de probabilidad, nodos


hojas y arcos

Al momento de intentar explicar se usará la experimentación por el programa weka,


en este veremos la diferencia como similitudes o utilidades de los distintos
algoritmos y cual es más eficaz para ciertas situaciones.
Como Instalar Algoritmo SVM:

Primero debes tener instalado weka, después con conexión a internet abres weka y
seleccionar “Tools”, este desplegará varias opciones y seleccionamos la que dice
“package manager”, después de darle clic se desplegará una pestaña, en esta
pestaña se seleccionara la opción “All” para que muestre todos los paquetes de
weka, en “Package search” escribirás SVM y dar enter, esto hará que aparezca 4
paquetes, seleccionaremos LibSVM y seleccionando el botón “Install” que está
arriba de “All” se instalara esta extensión, una vez instalado debemos cerrar weka y
volver a abrirlo para que la instalación funcione.
Filtros utilizados para limpiar los Dataset:

Para poder trabajar con los diferentes algoritmos en cada uno de los dataset fue
necesario realizar ciertos cambios para el funcionamiento de este poder ser dado.
Entre ellos se encuentra que algunos dataset se tuvieron que aplicar algunos filtros
y una vez aplicados se guardaba el dataset en formato arff.

Los filtros utilizados para este tipo de transformación, fueron usados desde weka y
estos fueron:

NumericToNominal: Este filtro permite cambiar los atributos de tipo numérico a tipo
nominal, esto es importante debido a que en algunos casos nuestros dataset son de
tipo numérico y algoritmos como el id3 o j48 o incluidos del random forest no
permiten utilizarse de manera eficiente con valores numéricos, por lo tanto, la
transformación de estos datos a nominal es importante para su uso debido a las
características principales de los algoritmos antes mencionados.

StringToNominal: Este filtro permite cambiar los atributos de tipo string a tipo
nominal, importante nuevamente debido a la características en lo que nuestros
dataset deben de estar para utilizar ciertos algoritmos como por ejemplo el id3 o tree
forest.
Uso de los Algoritmos para la experimentación de cada
Dataset:

Para poder correr con los distintos algoritmos en cada uno de los dataset otorgados,
se tuvieron que hacer ciertas modificaciones y colocar algunos filtros para poder
utilizar dicho algoritmo, lo primero es que se convirtió los dataset a un formato .arff
debido a su compatibilidad con weka, primero los archivos .data pasaban a ser .csv
en el caso del dataset de anonymous microsoft data se eliminó una columna de más
para su funcionamiento, respectivamente los archivos .csv pasarían a ser .arff una
vez los coloquemos en weka y estos los guardamos en este formato dada su
compatibilidad.

Árboles de decisiones:

Algoritmo J48:

Para poder utilizar el algoritmo j48 con los dataset otorgados se tuvieron que filtrar
antes de poder usar el algoritmo,usando los diversos filtros dados anteriormente.

Para el dataset de ​“zoo”​, solo se utilizo el filtro de NumericToNominal, esto


permitió el uso del algoritmo j48 ya que dicho algoritmo funciona con nominales, el
dataset contiene un solo valor nominal, que en este caso era la clase la cual era los
animales, dado esto los demás eran numéricos, por lo que se transformaron a
nominales dado el filtro.

Una vez se dio el filtro podemos obtener los resultados de la experimentación del
algoritmo j48 con el dataset ​“Zoo”​.

Para utilizarlo con el dataset de ​“breast cancer wisconsin” al igual que el anterior
se filtró primeramente con el filtro NumericToNominal, permitiendo así el uso del
algoritmo, con esto hecho cada una de las columnas anteriormente numéricas,
pasaron a ser nominales, y así colocando la clase para usar el algoritmo se obtuvo
los resultados sin ningún tipo de problema.

Para utilizarlo con el dataset de ​“Absenteeism at work” al igual que el anterior se


filtró primeramente con el filtro NumericToNominal, debido a que la gran mayoría de
sus columnas eran de valor numérico y nominal permitiendo así el uso del algoritmo,
con esto hecho cada una de las columnas anteriormente numéricas, pasaron a ser
nominales, y así colocando la clase para usar el algoritmo, con esto hecho se
obtuvo los resultados sin ningún tipo de problema.
Para utilizar con el dataset de ​”anonymous-msweb” ​fue necesario de utilizar una
serie de filtros, en los cuales se utilizo los filtros NumericToNominal y el filtro
StringToNominal, mientras se experimentaba con ellos, nos dimos cuenta que una
vez colocado el filtro de Strigtonominal el cual fue el primero en colocar al solo a ver
una atributo de tipo string, el algoritmo j48 era capaz de ser utilizado, pero este
marcaba error a la hora de ser usado, un error que si bien no mostraba tardaba
alrededor de 20 minutos en no mostrar nada.

Por lo que se pasó a utilizar el siguiente filtro, una vez utilizado se corrió
nuevamente el algoritmo el cual funcionó de manera correcta dando un respectivo
tiempo de uso de 1 minuto en el cual colocamos los resultados en la tabla de
resultados de los algoritmos de árboles de decisión.

Algoritmo Random Forest:

Para poder utilizar el algoritmo random forest con los dataset otorgados,
primeramente se dio como requisito el utilizar el abrir el programa de
experimentación weka, para darle mas memoria ram debido a que random forest
consume más recursos pues este crea muchos árboles por revisión, luego de esto
se tuvieron que filtrar antes de poder usar el algoritmo,usando los diversos filtros
dados anteriormente.

Para el dataset de ​“zoo”​, solo se utilizo el filtro de NumericToNominal, esto


permitió el uso del algoritmo random forest ya que dicho algoritmo funciona con
nominales, el dataset contiene un solo valor nominal, que en este caso era la clase
la cual era los animales, dado esto los demás eran numéricos, por lo que se
transformaron a nominales dado el filtro.

Una vez se dio el filtro podemos obtener los resultados de la experimentación del
algoritmo random forest con el dataset “Zoo”.

Para utilizarlo con el dataset de “breast cancer wisconsin​” al igual que el anterior
se filtró primeramente con el filtro NumericToNominal, permitiendo así el uso del
algoritmo, con esto hecho cada una de las columnas anteriormente numéricas,
pasaron a ser nominales, y así colocando la clase para usar el algoritmo se obtuvo
los resultados sin ningún tipo de problema.

Para utilizarlo con el dataset de ​“Absenteeism at work” al igual que el anterior se


filtró primeramente con el filtro NumericToNominal, debido a que la gran mayoría de
sus columnas eran de valor numérico y nominal permitiendo así el uso del algoritmo,
con esto hecho cada una de las columnas anteriormente numéricas, pasaron a ser
nominales, y así colocando la clase para usar el algoritmo, con esto hecho se
obtuvo los resultados sin ningún tipo de problema.

Para utilizar con el dataset de ​”anonymous-msweb” ​fue necesario de utilizar una


serie de filtros, en los cuales se utilizo los filtros NumericToNominal y el filtro
StringToNominal, mientras se experimentaba con ellos, nos dimos cuenta que una
vez colocado el filtro de Strigtonominal el cual fue el primero en colocar al solo a ver
una atributo de tipo string, el algoritmo randomforest era capaz de ser utilizado, pero
este marcaba error a la hora de ser usado, un error que si bien no mostraba tardaba
alrededor de 30 minutos en no mostrar nada.

Por lo que se pasó a utilizar el siguiente filtro, una vez utilizado se corrió
nuevamente el algoritmo el cual funcionó de manera incorrecta todo esto debido a
un error de memoria, pues estuvo 10 minutos funcionando para luego marcar dicho
error, lamentablemente weka cuenta por defecto con 256mb de memoria ram
asignada y antes de empezar le dimos un límite de 1.5gb de memoria ram, cosa que
no fue capaz de solucionar el error, debido a que pedia mas y aunque intentamos
bajar la generación de folds de 10 a 2 el error aun estaba presente, por lo que no
pudimos obtener ningún resultado aún intentando colocarle 4gb de memoria ram por
que weka no permite dicha cantidad.
Algoritmo LMT:

El LMT proporciona una descripción muy buena de los datos. Un LMT consiste
básicamente en una estructura de un árbol de decisión con funciones de regresión
logística en las hojas. Como en los árboles de decisión ordinarios, una prueba sobre
uno de los atributos es asociado con cada nodo interno. Para enumerar los atributos
con k valores, el nodo tiene k nodos hijos, y los casos son clasificados en las k
ramas dependiendo del valor del atributo. Para atributos numéricos, el nodo tienen
dos nodos hijos y la prueba consiste en comparar el valor del atributo con un
umbral: un caso puede ser clasificar los datos menores en la rama izquierda
mientras que los valores mayores en la rama derecha. Un LMT consiste en una
estructura de árbol que está compuesta por un juego N de nodos internos o no
terminales y un juego de T hojas o nodos terminales. La S denota el espacio,
atravesando por todos los atributos que están presentes en los datos.

Para cargar el algoritmo lmt en el dataset de ​“zoo” fue necesario de transformar los
atributos de dataset numéricos a nominales, pues dicho algoritmo permite su
funcionamiento con ese tipo de dato, una vez transformados se eligió la clase y se
corrió dando así los resultados de este.

Para cargar el algoritmo lmt en el dataset de ​“breast cancer wisconsin” fue


necesario de transformar los atributos de dataset numéricos a nominales, pues
dicho algoritmo permite su funcionamiento con ese tipo de dato, una vez
transformados se eligio la clase y se corrio dando asi los resultados obtenidos de
este dataset.

El problema ocurrió con el dataset de ​”anonymous-msweb”​, el cual marcó error a


la hora de hacerlo funcionar, una vez transformado sus columnas a valores
nominales, se pasó a utilizar dicho algoritmo, pero una vez se selecciona la clase y
se dio a start, el error de falta memoria llegó, y como en el último dataset de random
forest, no pudimos obtener dichos datos, debido a que supera el límite.
Para poder utilizar el algoritmo lmt con el dataset de “​Absenteeism at work​” el cual
se tuvo que utilizar primeramente un filtrado de la información con el filtro
NumericToNominal el cual luego de ser convertido se seleccionó la clase y empezó
a correr, aproximadamente 5 minutos después el algoritmo termino dando así los
resultados obtenidos en la tabla de árboles de decisión.

Algoritmo Decision Stump o árbol de decisión de un nivel:

Como bien dice su nombre se trata de árboles de decisión de un solo nivel.


Funcionan de forma aceptable en problemas de dos clases. No obstante, para
problemas de más de dos clases es muy difícil encontrar tasas de error inferiores a
0.5 según.

Retomando los conceptos de, el propósito del algoritmo es construir un modelo de


cada caso que será clasificada, tomando únicamente un subconjunto de casos de
entrenamiento. Este subconjunto es escogido en base a la distancia métrica entre
las pruebas del caso y las pruebas de los casos dentro del espacio. Por cada caso
de prueba, se hace una empaquetación conjunta de un árbol de un nivel clasificando
así el aprendizaje de los puntos de entrenamiento cerrando la prueba actual del
caso.

Los árboles de decisión de un nivel o decisión stump (DS) son árboles que clasifican
casos, basados en valores característicos. Cada nodo en un árbol de decisión de un
nivel representa una característica de un caso para ser clasificado, y cada rama
representa un valor que el nodo puede tomar. Los casos son clasificados
comenzando en el nodo raíz y se cataloga basándose en sus valores
característicos. En el peor de los casos un árbol de decisión de un nivel puede
reproducir el sentido más común, y puede hacerse mejor si la selección
característica es particularmente informativa.
Generalmente, el conjunto propuesto consiste en los siguientes cuatro pasos:
1.​ Determinar la distancia métrica conveniente.
2.​ Encontrar el k vecino más cercano usando la distancia
métrica seleccionada.
3.​ Aplicar la empaquetación de clasificación de los árboles de
decisión de un nivel como entrenamiento de los k casos.
4.​ La respuesta a la empaquetación de conjunto es la
predicción para los casos de prueba.

Aplicación en weka:
Para aplicar este algoritmos a los datasets Zoo, Breast cancer Wisconsin,
Absenteeism at work y anonymous-msweb fue necesario cambiar todos los tipo de
dato base a tipo nominal, para esto usamos el filtro de NumberToNominal y en el
caso de anonymous-msweb también se tuvo que utilizar StringToNominal para
poder correr el algoritmo.
Algoritmo HoeffDringtree:

Un árbol de Hoeffding (VFDT) es un algoritmo de inducción de árbol de decisión


incremental en cualquier momento que es capaz de aprender de flujos de datos
masivos, suponiendo que la distribución que genera ejemplos no cambia con el
tiempo. Los árboles hoeffding explotan el hecho de que una pequeña muestra a
menudo puede ser suficiente para elegir un atributo de división óptimo. Esta idea
está respaldada matemáticamente por el límite de Hoeffding, que cuantifica el
número de observaciones (en nuestro caso, ejemplos) necesarias para estimar
algunas estadísticas dentro de una precisión prescrita (en nuestro caso, la bondad
de un atributo).

Para utilizar el algoritmo HoeffDringtree fue necesario primeramente de convertir


cada dataset a tipo de datos nominales, pues dicho algoritmo lo permitía.

El primero con el que fue probado fue con el dataset de ​Absenteeism at work ​este
dataset no dio muchos problemas y fue especialmente rápido, dando así unos
resultados de manera rápida que fueron guardados en la tabla de resultados de
árboles de decisión, a este dataset no le fue necesario hacer nada más que el filtro
de NumericToMinal.

Lo mismo ocurrió para los dataset de zoo y breast cancer wisconsin estos no
necesitan de nada más que el simple filtro de numeric to nominal para funcionar, la
cosa cambió cuando fue el dataset de “anonymous-msweb” el cual aunque se
aplicó los filtros correspondientes, este marco un error de memoria con el algoritmo,
y no pudiendo obtener sus resultados.
Tabla de resultados Arboles de decisiones:

Dataset Algoritmo Valor Porcentaje Valor Porcentaje


Correcto de valores Incorrecto de valores
correctos incorrectos

Zoo J48 93 92.07% 8 7.92%

Breast J48 660 94.92% 39 5.5794


cancer
Wisconsin

Absenteeis J48 353 47.70% 387 52.29%


m at work

anonymous J48 15156 73.96% 5336 26.03%


-msweb

Zoo RandomFor 94 93.06% 7 6.93%


est

Breast RandomFor 664 94.99% 35 5.00%


cancer est
Wisconsin

Absenteeis RandomFor 322 43.51% 418 56.48%


m at work est

anonymous RandomFor -- -- -- --
-msweb est

Zoo LMT 94 93.06% 7 6.93%

Breast LMT 672 93.13% 27 3.86%


cancer
Wisconsin

Absenteeis LMT 361 48.78% 379 51.21%


m at work

anonymous LMT -- -- -- --
-msweb

Zoo Decision 61 60.396% 40 39.604%


Stump

Breast Decision 601 88.269% 82 11.731%


cancer Stump
Wisconsin

Absenteeis Decision 251 33.9189% 489 66.0811%


m at work Stump

anonymous Decision 2 0.6803% 292 99.3197%


-msweb Stump

Zoo HoeffDringt 94 93.06% 7 6.93%


ree

Breast HoeffDringt 658 94.13% 41 5.86%


cancer ree
Wisconsin

Absenteeis HoeffDringt 259 35% 481 65%


m at work ree

anonymous HoeffDringt -- -- -- --
-msweb ree

Para explicar los resultados de manera breve podemos decir que entre todos los
algoritmos el que más destaca en estas pruebas es el algoritmo j48 el cual contó
con los mejores resultados y sin ningún tipo de fallos a la hora de experimentar, en
el segundo puesto se tendría al algoritmo decision stump cuando vemos que este no
marcó ningún tipo de error con ningún dataset sin embargo dicho algoritmo no tuvo
buenos resultados a la hora de experimentar, por último podemos decir que los
restantes si bien fueron buenos resultados en el caso de random forest y lmt estos
llegan a fallar en dataset muy grandes o con valores faltantes dado en el caso del
dataset de microsoft el cual al contener muchos datos estos no podían ser
interpretados de la mejor forma y pedían muchos requerimientos, hoeffdringtree
pasa a ser como el algoritmo decision stump el cual dio algunos resultados
bastantes buenos pero en otros malos incluso pidiendo muchos requerimientos de
memoria para el dataset de microsoft.

Podemos decir que el algoritmo seleccionado para la parte de la comparación con


los otros algoritmos será el algoritmo de árbol de decisión j48.
Algoritmos SVM , KNN , NAIVE BAYES:

Support Vector Machines(SVM):


Las máquinas de soporte vectorial(Support Vector Machines(SVM)), son un conjunto
de algoritmos de aprendizaje supervisado desarrollados por Vladimir Vapnik y su
equipo en los laboratorios AT&T.

Estos métodos están propiamente relacionados con problemas de clasificación y


regresión. Dado un conjunto de ejemplos de entrenamiento (de muestras) podemos
etiquetar las clases y entrenar una SVM para construir un modelo que prediga la
clase de una nueva muestra. Intuitivamente, una SVM es un modelo que representa
a los puntos de muestra en el espacio, separando las clases a 2 espacios lo más
amplios posibles mediante un hiperplano de separación definido como el vector
entre los 2 puntos, de las 2 clases, más cercanos al que se llama vector soporte.
Cuando las nuevas muestras se ponen en correspondencia con dicho modelo, en
función de los espacios a los que pertenezcan, pueden ser clasificadas a una o la
otra clase.

Más formalmente, una SVM construye un hiperplano o conjunto de hiperplanos en


un espacio de dimensionalidad muy alta (o incluso infinita) que puede ser utilizado
en problemas de clasificación o regresión. Una buena separación entre las clases
permitirá una clasificación correcta.

Aplicación en weka:
Para aplicar este algoritmos a los datasets Zoo, Breast cancer Wisconsin,
Absenteeism at work y anonymous-msweb fue necesario cambiar todos los tipo de
dato base a tipo nominal, para esto usamos el filtro de NumberToNominal y en el
caso de anonymous-msweb también se tuvo que utilizar StringToNominal para
poder correr el algoritmo.
Algoritmo KNN

El algoritmo clasifica cada dato nuevo en el grupo que corresponda, según tenga ​k
vecinos más cerca de un grupo o de otro. Es decir, calcula la distancia del elemento
nuevo a cada uno de los existentes, y ordena dichas distancias de menor a mayor
para ir seleccionando el grupo al que pertenecer. Este grupo será, por tanto, el de
mayor frecuencia con menores distancias.

El K-NN es un algoritmo de aprendizaje supervisado, es decir, que a partir de un


juego de datos inicial su objetivo será el de clasificar correctamente todas las
instancias nuevas. El juego de datos típico de este tipo de algoritmos está formado
por varios atributos descriptivos y un solo atributo objetivo (también llamado clase).

Para utilizar los datasets ​Zoo, breast cancer wisconsin y absenteeism at work ​se
usó el filtro ​numericToNominal ya que estos datasets contenían columnas de tipo
numérico que impedían el uso de estos en el algoritmo. Una vez convertidos se
inició el proceso y los resultados fueron obtenidos sin errores.
Para utilizar el dataset de ​anonymous-msweb ​se aplicaron los filtros
numericalToNominal junto a StringToNominal para convertir las columna con datos
tipo numerical y string a nominal. Después de esto, weka continuaba marcando un
error al momento de utilizar el algoritmo, pues se saltaba alrededor de 20000
valores, por lo que se decidió a utilizar el filtro replaceMissingValue. Esto permitió
utilizar el algoritmo, pero la operación dió un error de memoria.
.
Naive Bayes
En teoría de la probabilidad y minería de datos un clasificador Bayesiano ​ingenuo es
un clasificador probabilístico fundamentado en el teorema de Bayes y algunas
hipótesis simplificadoras adicionales. Es a causa de estas simplificaciones, que se
suelen resumir en la hipótesis de independencia entre las variables predictoras, que
recibe el apelativo de ​ingenuo.​

En términos simples, un clasificador de Bayes ingenuo asume que la presencia o


ausencia de una característica particular no está relacionada con la presencia o
ausencia de cualquier otra característica, dada la clase variable. Por ejemplo, una
fruta puede ser considerada como una manzana si es roja, redonda y de alrededor
de 7 cm de diámetro. Un clasificador de Bayes ingenuo considera que cada una de
estas características contribuye de manera independiente a la probabilidad de que
esta fruta sea una manzana, independientemente de la presencia o ausencia de las
otras características.

Al igual que en el algoritmo anterior, se hizo uso del filtro NumericalToNominal para
convertir las columnas numéricas a tipo nominal en los datasets ​Zoo, breast cancer
wisconsin y absenteeism at work. ​Y una vez convertidas las columnas necesarias
el proceso pudo llevarse a cabo con resultados satisfactorios.

Para el dataset ​anonymous-msweb ​se utilizó el mismo procedimiento en cuanto a


filtros realizado con el algoritmo KNN, pero no hubo ningún cambio y el algoritmo
continuó saltándose 20000 datos.
Tabla de resultados Algoritmos KNN, NAIVE BAYES, SVM
+ Mejor algoritmo de árbol de decisión:

Dataset Algoritmo Correctos Porcentaje Incorrecto Porcentaje


Correctos s incorrecto
s

Zoo SVM 74 73.2673% 27 26.7327%

Breast SVM 675 96.5665% 24 3.4335%


cancer
Wisconsin

Absenteeis SVM 263 35.5405% 477 64.4595%


m at work

anonymous SVM 2 0.6803% 1998 99.3197%


-msweb

Zoo KNN 97 96.0396% 4 3.9604%

Breast KNN 668 95.5651% 31 4.4349%


cancer
Wisconsin

Absenteeis KNN 264 35.6757% 476 64.3243%


m at work

anonymous KNN -- -- --- --


-msweb

Zoo NAIVE 94 93.0693% 7 6.9307%


BAYES

Breast NAIVE 681 97.4249% 18 2.5751%


cancer BAYES
Wisconsin

Absenteeis NAIVE 259 35% 481 65%


m at work BAYES

anonymous NAIVE -- -- -- --
-msweb BAYES

Zoo J48 93 92.07% 8 7.92%


Breast J48 660 94.92% 39 5.5794
cancer
Wisconsin

Absenteeis J48 353 47.70% 387 52.29%


m at work

anonymous J48 15156 73.96% 5336 26.03%


-msweb

Para explicar los resultados de esta tabla tenemos que tener en cuenta que el
algoritmo que representa la parte de árboles de decisión, cuenta con los mismos
resultados obtenidos en su respectivas pruebas, en este caso comparado con los
algoritmos restantes se puede decir que hizo un buen papel a la hora de interpretar
los datos y los resultados.

Mientras que los algoritmos knn svm y naive bayes mostraron un manejo los datos
bastante malo, esto debido a que si bien hubo fallas de memoria y o datos
incorrectos, la mayoría de estos tuvieron fallas a la hora de correr algunos dataset
como por ejemplo el naive bayes y el knn el cual saltaba la mayoría de datos dentro
del dataset.

svm pudo correr cada uno de los dataset pero mostró una falla en el dataset de
microsoft mostrando la mayor parte de sus resultados como erróneos.

Si se tiene que ver a simple vista podemos ver que los algoritmos como knn naive
bayes y svm son algoritmos útiles, pero al igual que los árboles decisión estos
muchas veces no son capaces de correr dataset muy elevados si no se cuenta con
los recursos suficientes, al igual que decir que el algoritmo j48 dio mejores
resultados que sus compañeros de árboles y los algoritmos anteriormente
mencionados ya sea en recursos o resultados.
Conclusión:

Como conclusión se puede obtener que la mayor diferencia de los algoritmos con
los cuales se experimentaron entre sí, puede depender de la cantidad o tipo de
información que estos tengan que manejar cada uno será útil dependiendo a qué
situación lo necesites o tengas que utilizarlo, pudiendo dar mejores resultados que
otros en ciertos momentos de la experimentación, sin embargo, se tiene que decir
que j48 fue uno de los mejores algoritmos entre entre los algoritmos de árboles de
decisión superando a la mayoría, y teniendo menor cantidad de fallos a la hora de
experimentar, por lo tanto podemos ver que j48 es un buen rival en contra de los
otros 3 algoritmos como lo es svm, Knn y Naive Bayes incluso siendo capaz de
ganar contra ellos en estas pruebas.
Referencias:

1. Instituto tecnológico de nuevo Laredo. “Algoritmo C4.5”. Disponible:


http://www.itnuevolaredo.edu.mx/takeyas/Apuntes/Inteligencia%20Artificial
/Apuntes/tareas_alumnos/C4.5/C4.5(2005-II-B).pdf [citado en 4 de Marzo de
2008]
2. Google. “Machine learning: ecml 2003”. Disponible:
http://books.google.com.co/books?id=l4h2a2vf2puc&pg=pa245&dq=lmt+
%2b+logistic+model+tree&sig=xgu-lihrxmgctkc2ub5gqvdfxfw#ppr14,m1
[citado en 4 de marzo de 2008]
3. J. Hernandez. and C. Ferri. “Practica de Minería de Datos, Introducción al
WEKA, Curso de Doctorado Extracción Automática de Conocimiento en
Bases de Datos e Ingeniería de Software”, Universidad de Valencia, 2006,
pp. 2-15
4. Proz.” Árbol de decisión (óptima)”. Disponible:
http://www.proz.com/kudoz/2311529 [citado en 28 de Febrero de 2008]

También podría gustarte