Archive for 14 diciembre 2010

h1

Needs train harder?

diciembre 14, 2010

Estuve investigando los problemas comentados en la entrada anterior. Y se llegaron a las siguientes conclusiones.

En el código que tenía hecho para borrado de attributos tan solo añadía a la cabecera (complemento el nombre de la relacion) los elementos que se iban a borrar.

@relation imageRelation-weka.filters.unsupervised.attribute.Remove-R5

Sin darme cuenta de que esto no era sufciente para borrar los attibutos. Ya que para ello también era necesario borrarlo del listado de attributos

@attribute 1 numeric
@attribute 2 numeric
@attribute 3 numeric
@attribute 4 numeric
@attribute 5 numeric

Y para terminar también borrar los datos pertenecientes a ese atributo

@data
1,2,3,4,5
1,2,3,4,5
23,434,54,23,34
23,2,435,54,45

Cuando vi esto y lo trabajoso que podía llegar a ser, pensé que tenía que haber una manera mas fácil de hacerlo. Y así  es. Hay un método (filtro) de weka para eliminar atributos. A este se le pasa un listado de parámetros

1-3,20-25  ….

y se le especifica si son los que se quieren borrar (false) o si son los que se quieren mantener (true). Esto último implica que borra el resto.

Training harderUna vez visto esto, y haberme fustigado unas cuantas veces por la perdida de tiempo con la anterior idea, me puse manos a la obra para reestructurar el código en función de la nueva metodología a seguir.

Tras hacer correr unos test con las distintas opciones de borrado se han obtenido procentajes de aciertos bastante bajos (57% – 67%). Esto puede ser debido a que el entrenamiento es insuficiente ya que tan solo lo estoy haceindo con unas 12 instancias de cada clase. Es por ello que el siguiente paso se va a centrar en seleccionar mas imágenes para entrenamiento. Y así poder aumentar el porcentaje de acierto o por el contrario descartarlo como impedimento y ver qué puede estar fallando

 

Anuncios
h1

Something is wrong

diciembre 10, 2010

ThinkingTras unos problemillas con los ficheros de datos (algunos parámetros se perdían en la extracción de datos. Ahora solucionado. Gracias Alvaro) he conseguido pasarle al clasificador los ficheros de datos con nuestras listas de parámetros. Los resultados han sido bastante pésimos. Me explico:

Para entrenar el clasificador le alimento con un ARFF en el que a parte de todos los datos se indica si quiero prescindir de alguno.

Para realizar el test es el mismo proceso que el anterior.

Para realizarlo para la todas las opciones que tengo de borrado (estan enumeradas de 0 a 7) tan solo he tenido que crear un bucle e ir creando los ficheros ARFF en función de la variable contadora de dicho bucle. De esta manera cada vez entreno y testeo con unos atributos distintos. En este mismo bucle tengo añadido un fichero de estadísticas el cual me guarda le resultado del entrenamiento y el posterior testeo. De esta manera tengo los resultados de cada “ronda” en ficheros independientes.

Una vez vista la metodología viene la explicación del PROBLEMA. El caso es que al comprobar los resultados de los tests, siempre se observa el mismo porcentaje de acierto/error. He comprobado que no me esté generando siempre los mismos ficheros. Por lo que esto me indica que algo está pasando, como si no hiciese caso alguno de los distintos atributos que se usan en cada una de las iteraciones. Haciendo alguna pruebecilla con la interfase gráfica he visto algo que no me gusta mucho:

=== Run information ===

Scheme:       weka.classifiers.trees.ADTree -B 10 -E -3
Relation:     imageRelation
Instances:    30
Attributes:   110
[list of attributes omitted]
Test mode:    user supplied test set:  size unknown (reading incrementally)

No me gusta nada la línea que destaco en negrita