En el artículo anterior vimos un ejemplo de utilización de la herramienta Explorer de Weka con uno de los ficheros de ejemplo que vienen con la aplicación. El ejemplo era algo sencillo, pero vimos también alguna posible aplicación de la herramienta a la vida real.
Aunque Weka acepta en teoría ficheros csv para obtener los datos de entrada e incluso soporta consultas a base de datos, yo he tenido problemas para cargar datos en los dos formatos, por lo que recomiendo crear nosotros mismos un fichero con formato ARFF (el formato propio de Weka) con nuestros propios datos para empezar a sacarles todo el jugo.
La estructura de un fichero con formato ARFF es muy sencilla, por lo que seguro que no tendremos ningún problema a la hora de crearlo. Vamos a ver primero un ejemplo y después lo comentaremos paso a paso:
1 @relation weather 2 3 @attribute outlook {sunny, overcast, rainy} 4 @attribute temperature real 5 @attribute humidity real 6 @attribute windy {TRUE, FALSE} 7 @attribute play {yes, no} 8 9 @data 10 sunny,85,85,FALSE,no 11 sunny,80,90,TRUE,no 12 overcast,83,86,FALSE,yes 13 rainy,70,96,FALSE,yes 14 rainy,68,80,FALSE,yes 15 rainy,65,70,TRUE,no 16 overcast,64,65,TRUE,yes 17 sunny,72,95,FALSE,no 18 sunny,69,70,FALSE,yes 19 rainy,75,80,FALSE,yes 20 sunny,75,70,TRUE,yes 21 overcast,72,90,TRUE,yes 22 overcast,81,75,FALSE,yes 23 rainy,71,91,TRUE,no
Este fichero con formato ARFF es el que utilizamos en el artículo anterior para nuestro primer ejemplo de introducción a la minería de datos. Se divide en tres partes: @relation, @attribute y @data:
- @relation <relation-name> (línea 1)
Todo fichero ARFF debe comenzar con esta declaración en su primera línea (no podemos dejar líneas en blanco al principio).
<relation-name> será una cadena de caracteres y si contiene espacios la pondremos entre comillas. - @attribute <attribute-name> <datatype> (líneas de la 3 a la 7)
En esta sección incluiremos una línea por cada atributo (o columna) que vayamos a incluir en nuestro conjunto de datos, indicando su nombre y el tipo de dato.
Con <attribute-name> indicaremos el nombre del atributo, que debe comenzar por una letra y si contiene espacios tendrá que estar entrecomillado.
Con <datatype> indicaremos el tipo de dato para este atributo (o columna) que puede ser:- numeric (numérico)
- string (texto)
- date [<date-format>] (fecha). En <date-format> indicaremos el formato de la fecha, que será del tipo «yyyy-MM-dd’T’HH:mm:ss».
- <nominal-specification>. Estos son tipos de datos definidos por nosotros mismos y que pueden tomar una serie de valores que indicamos (línea 3).
- @data (a partir de la línea 9)
En esta sección incluiremos los datos propiamente dichos. Separaremos cada columna por comas y todas filas deberán tener el mismo número de columnas, número que coincide con el de declaraciónes @attribute que añadimos en la sección anterior.
Si no disponemos de algún dato, colocaremos un signo de interrogación (?) en su lugar. El separador de decimales tiene que ser obligatoriamente el punto y las cadenas de tipo string tienen que estar entre comillas simples.