Como asignación escolar, debo implementar el algoritmo de Naïve Bayes que tengo la intención de hacer en Java.Implementando el algoritmo de Naïve Bayes en Java - Necesito alguna orientación
Al tratar de comprender cómo se hace, he leído el libro "Minería de datos: herramientas y técnicas prácticas de aprendizaje automático" que contiene una sección sobre este tema pero todavía no estoy seguro de algunos puntos principales que bloquean mi progreso.
Como no busco la solución aquí, les diré lo que pienso en mi cabeza, lo que creo que es el enfoque correcto y, a cambio, pido una corrección/guía que será muy apreciada. tenga en cuenta que soy un principiante absoluto en el algoritmo de Naïve Bayes, minería de datos y en programación general, por lo que es posible que vea comentarios/cálculos estúpidos a continuación:
El conjunto de datos de capacitación que se me da tiene 4 atributos/funciones que son numéricos y normalizado (en el rango [0 1]) utilizando Weka (no hay valores perdidos) y una clase nominal (sí/no)
1) los datos procedentes de un archivo CSV es numérico AHI
-
* Teniendo en cuenta los atributos son numérico uso fórmula PDF (función de densidad de probabilidad).
-
+ Para calcular el PDF en Java i primero separar los atributos en función de si están en la clase sí o no clase y los mantienen en diferentes gama
(array class yes and array class no)
-
+ A continuación se calcula la media (
sum of the values in row/number of values in that row
) y la adivinación estándar para cada una de los 4 atributos (columnas) de cada clase
-
+ Ahora para encontrar PDF de un valor dado (n) hago
(n-mean)^2/(2*SD^2),
-
+ Entonces encontrar
P(yes | E)
y
P(no | E)
i
multiply the PDF value of all 4 given attributes and compare which is larger
, que indica la clase a la que pertenece
En temrs de Java, estoy usando ArrayList of ArrayList
y Double
para almacenar los valores de los atributos.
Por último, no estoy seguro de cómo obtener nuevos datos? ¿Debo solicitar un archivo de entrada (como csv) o un símbolo del sistema y solicitar 4 valores?
Me detengo aquí por el momento (tengo más preguntas) pero me preocupa que no reciba ninguna respuesta dado cuánto tiempo tiene. Realmente apreciaré a aquellos que dan su tiempo para leer mis problemas y comentar.
¿La visión general de cómo voy a implementar los algoritmos suena correctamente? – ke3pup