Minería de datos con Weka (ficheros ARFF)

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:

  1. @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.
  2. @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).
  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.
Nuestra puntuación
Twittear
Compartir
Compartir
Pin