Come compito scolastico, sono tenuto a implementare l'algoritmo di Naïve Bayes che intendo fare in Java.Implementazione dell'algoritmo di Naïve Bayes in Java - Servono alcune indicazioni
Nel tentativo di capire come è stato fatto, ho letto il libro "Data mining - Strumenti e tecniche di apprendimento pratico della macchina" che ha una sezione su questo argomento, ma sono ancora incerto su alcuni punti principali che stanno bloccando i miei progressi.
Dal momento che sto cercando una guida e non una soluzione qui, dirò a voi ragazzi quello che penso nella mia testa, quello che penso sia l'approccio corretto e in cambio chiedere una correzione/guida che sarà molto apprezzata. per favore nota che sono un principiante assoluto sull'algoritmo di Naïve Bayes, Data mining e nella programmazione generale quindi potresti vedere stupidi commenti/calcoli qui sotto:
Il set di dati di addestramento che ho ricevuto ha 4 attributi/caratteristiche che sono numerici e normalizzato (nell'intervallo [0 1]) utilizzando Weka (valori mancanti) e una classe nominale (sì/no)
1) i dati provenienti da un file csv è numerico QUINDI
-
* Dato gli attributi sono numerico utilizzo la formula PDF (funzione di densità di probabilità).
-
+ Per calcolare il PDF in java ho separare gli attributi in base al fatto che siano in classe sì o no di classe e tenerli in una matrice diversa
(array class yes and array class no)
-
+ Quindi calcolare la media (
sum of the values in row/number of values in that row
) e la divinazione standard per ciascuno di i 4 attributi (colonne) di ciascuna classe
-
+ Ora per trovare PDF di un dato valore (n) faccio
(n-mean)^2/(2*SD^2),
-
+ Quindi per trovare
P(yes | E)
e
P(no | E)
i
multiply the PDF value of all 4 given attributes and compare which is larger
, che indica la classe a cui appartiene
In temrs di Java, sto usando ArrayList of ArrayList
e Double
per memorizzare i valori degli attributi.
infine non sono sicuro di come ottenere nuovi dati? Dovrei chiedere il file di input (come csv) o il prompt dei comandi e chiedere 4 valori?
Mi fermo qui per ora (ho più domande) ma sono preoccupato che questo non otterrà alcuna risposta dato quanto tempo ha ottenuto. Apprezzerò molto coloro che danno il loro tempo leggendo i miei problemi e commentando.
la panoramica di come implementerò l'algoritmo sembra corretta? – ke3pup