2012-04-26 33 views
14

He estado tratando de obtener este conjunto de datos http://archive.ics.uci.edu/ml/datasets/Communities+and+Crime+Unnormalized en Weka y sin suerte. Lo convertí a CSV y luego lo cargué en Weka y luego traté de convertirlo a ARFF pero aún así me dio el error "attribute names are not unique".Convertir CSV a ARFF usando weka

Además, ¿tengo que separar el conjunto de datos de entrenamiento del conjunto de datos de prueba o mantenerlos juntos?

Respuesta

1

No tuve ningún problema. De acuerdo, haz lo siguiente. En la página web que especificó,

  • copie el segmento entre ".arff header for weka:" y "Papers relevantes".
  • pegarlo en un archivo .txt
  • abrir el archivo de datos en this location
  • copiar los casos y añadir que a su archivo .txt justo después de la sección @data
  • guardar el archivo .txt como .arff archivo

Ahora está listo para empezar.

¿Tengo que esparcir el conjunto de datos de entrenamiento del conjunto de datos de prueba o dejarlos juntos?

Depende de su método de clasificación. Si elige un CV de 10 veces, déjelos juntos. Si desea usar el método convencional, sepárelos. De nuevo, todo depende de tu metodología.

+0

¿Por qué en la tierra alguien va a dar a esta pregunta un voto negativo? Además, como resuelve el problema, ¿por qué mi respuesta recibió el voto negativo? ¡Peculiar! –

+0

OP está pidiendo la conversión de CSV a ARFF. Pero no respondiste esa parte. Por lo tanto, alguien votó negativamente, creo. – user13107

13

Hay algunos convertidores implementados en WEKA. Aquí están las páginas de API relacionados con este tema: http://weka.sourceforge.net/doc.stable/weka/core/converters/package-summary.html

Por ejemplo, aquí es cómo convertir desde CSV a ARFF:

java -cp /path/to/weka.jar weka.core.converters.CSVLoader filename.csv > filename.arff 
+1

Solo un comentario para alguien tonto como yo - El comando anterior se ejecutará después de ir al directorio donde weka está instalado, es decir, donde se puede ver 'weka/core/converters/CSVLoader' como una estructura de directorio. – user13107

+1

También puede hacer 'java -cp /path/to/weka.jar weka.core.converters.CSVLoader filename.csv> filename.arff' – Phani

+0

me sale este error 'Error: No se pudo encontrar o cargar la clase principal weka. core.converters.CSVLoader ' cómo superar esto? – NIMISHAN

0

Tal vez esto CSV en línea al convertidor de ARFF puede ser útil?

http://slavnik.fe.uni-lj.si/markot/csv2arff/csv2arff.php

+0

Utilicé el enlace de arriba, pero mis valores no se separaron. eso significa que mis 8227 líneas de archivo salieron con tres líneas, 1. encabezado, 2. Atributos, 3. valores. ¿Cómo dividirlos fila por fila? – NIMISHAN

20

También puede utilizar el ArffViewer (Herramientas -> ArffViewer o Ctrl + A). A continuación, abra su archivo CSV.

A continuación, vaya a Archivo -> Guardar como ... y seleccione Archivos de datos Arff (debe seleccionarse por defecto).

Tenga en cuenta que sus campos se deben separar con una coma y no un punto y coma.

+1

No puedo encontrar la opción para convertir numérico a nominal y viceversa en el 'ArffViewer'. ¿Existe allí? –

+1

¡Esto funcionó perfectamente! Debería ser la respuesta seleccionada – CrashOverride

-1

que funciona

por ejemplo: - C: \ Users \ Usuario \ Desktop> java -cp "e: \ data \ weka-3-6-10 \ weka.jar ;." weka.core.converters.CSVLoader data1.csv >> data1.arff 1.antes de la conversión compruebe que csv en excel, ya que ninguna de las celdas debería ser incorrecta 2.compruebe que los atributos están en

para csv simple - Debe agregar una fila de encabezado incluso como x, y, z, ... según sea necesario

5

Cargue su archivo de formato .CSV a this. A partir de ese momento, su formato .CSV se convertirá al formato WEKA .arff. Una vez hecho, busque el archivo .arff en la herramienta Weka. Ahora puede continuar con su análisis de datos.

2

Necesita campos de encabezado en la csv. Necesita agregar etiquetas attr0, attr1, ..., en el archivo csv en la primera línea.

0

Para convertir .csv al formato de archivo .arff para usar en Weka. Nota: El archivo .csv debe ser correcto, de lo contrario no se convertirá al archivo .arff. No debe contener ningún valor nulo en las columnas. Descargue el jar de weka core. En Eclipse -> Configurar Construir ruta, añadir el frasco núcleo weka y escribir la siguiente línea de código y ejecutar el código:

CSVToArff.java

import weka.core.Instances; 
import weka.core.converters.ArffSaver; 
import weka.core.converters.CSVLoader; 

import java.io.File; 

public class CSVToArff { 

    public static void main(String[] args) throws Exception { 


    // load CSV 
    CSVLoader loader = new CSVLoader(); 
    loader.setSource(new File("Provide the input file location (.csv) ")); 
    Instances data = loader.getDataSet(); 

    // save ARFF 
    ArffSaver saver = new ArffSaver(); 
    saver.setInstances(data); 
    saver.setFile(new File("Provide the output file location (.arff) "); 
    saver.writeBatch(); 
    // .arff file will be created in the output location 
    } 
}