tutorial machine learning example datasets java format machine-learning libsvm prediction

java - machine - Formato de entrada LibSVM



libsvm weka (2)

Quiero representar un conjunto de instancias etiquetadas (datos) en un archivo para alimentar a LibSVM como datos de entrenamiento. Para el problema mencionado en esta pregunta. Incluirá,

  1. Fecha de ingreso
  2. Tiempo de inicio
  3. Ubicación (¿código de país?)
  4. Día de la semana
  5. Autenticidad (0 - No auténtico, 1 - Auténtico) - La etiqueta

¿Cómo puedo formatear esta información para ingresarla a SVM?


¿Estás preguntando sobre el formato de datos o cómo convertir los datos? Para este último, vas a tener que experimentar para encontrar la forma correcta de hacerlo. La idea general es convertir sus datos en un atributo de valor nominal u ordinal. Algunos de estos son simples - # 4, # 6 - algunos de estos serán difíciles - # 1- # 3.

Por ejemplo, podría representar el n. ° 1 como tres atributos de día, mes y año, o solo uno, al convertirlo en una marca de tiempo UNIX.

La IP es incluso más difícil: no hay una manera directa de convertir eso en un valor ordinal significativo. Usar cada IP como un atributo nominal puede no ser útil dependiendo de su problema.

Una vez que lo resuelva, convierta sus datos, consulte los documentos de LibSVM. El formato general es seguido por: es decir, +1 1:0 2:0 .. etc.


Creo que hay una suposición no declarada en las respuestas anteriores. La suposición no declarada es que los usuarios de libSVM saben que deben evitar poner datos categóricos en el clasificador.

Por ejemplo, libSVM no sabrá qué hacer con los códigos de país. Si está tratando de predecir qué visitantes es más probable que compre algo en su sitio, entonces podría tener problemas si Estados Unidos se encuentra entre Chad y Níger en su lista de códigos de país. Es probable que el bulto de EE. UU. Sesgue las predicciones para los países ubicados cerca de él.

Para solucionarlo, crearía una categoría para cada país considerado (y quizás una categoría "otra"). Luego, para cada instancia que desee clasificar, establecería todas las categorías de país en cero, excepto aquella a la que pertenece la instancia. (Para hacer esto con el formato de archivo disperso libSVM, esto no es realmente un gran problema).