-
Tecniche di data mining per la classificazione – Reti Neurali
Le reti neurali sono utilizzate nell’ambito del data mining per fare classificazione e regressione. Esse sono ispirate al funzionamento del cervello umano che funziona per associazioni usando i neuroni. I neuroni sono delle unità di elaborazione individuali, collegati tra loro tramite sinapsi.
Una rete neurale riceve come ingresso un vettore che è l’insieme dei valori delle colonne del record che desideriamo classificare. Può essere composta da più livelli interni alla rete (questi nodi sono detti “hidden”) ed infine come stadio finale c’è il livello di uscita composto da tanti nodi quante sono le etichette di classe, e ciascun nodo rappresenta la probabilità di appartenenza del record in esame a ciascuna etichetta di classe.
Struttura di un neurone.

All’interno di un neurone bisogna configurare due parametri:- il vettore dei pesi
- l’offset (μk).
Si inizia facendo il prodotto scalare tra “x” (vettore di input) e “w” (vettore dei pesi). Successivamente si somma il valore di “offset” ed infine, prima di restituire l’output, si applica ancora la funzione di attivazione, che può essere un gradino, un esponenziale o un sigmoide.
L’output è compreso tra 0 e 1 e mi dà la probabilità di appartenenza del record ad ognuna delle classi in output.
Costruzione di una rete neurale
Si parte assegnando un insieme di pesi ed offset in modo casuale. Poi si prende il primo record del training set e lo si inietta in ingresso al sistema. Del record di training set in esame, si conosce l’etichetta di classe quindi nel momento in cui la rete neurale fornirà in output la probabilità di appartenenza a ciascuna etichetta di classe, tramite un procedimento noto con il nome di “back propagation“, è possibile calcolare lo scostamento o errore rispetto al risultato fornito e quello atteso e procedere con la correzione dei parametri dei vari neuroni in modo tale da ridurre tale errore. Si ripeto questa procedura per tutti i record del training set. Le condizioni in cui si ferma tale procedimento possono essere:
- quando l’accuratezza sul training set soddisfa una certa soglia
- quando la correzione è molto bassa (siamo giunti in un ottimo locale)
- quando è trascorso troppo tempo –> troppe iterazioni o epoche (iterazioni sul training set).
Se in ingresso alla rete abbiamo una variabile continua, questo sistema è comodo perché è sufficiente un solo ingresso. Ma se invece abbiamo un attributo di tipo categorico è un po’ più complicato, poiché ci vuole un ingresso per ogni valore del dominio. Nel caso booleano è semplice abbiamo solo 0 e 1. Se avessimo, ad esempio, attributi come l’età e lo stipendio è opportuno che queste due grandezze abbiano lo stesso intervallo di variazione (Questo perché l’età varia da 0 a 100 mentre lo stipendio potrebbe variare da 0 a 10.000 euro). Di conseguenza, in una fase di pre-processing, i dati in ingresso ad una rete neurale devono essere normalizzati, di solito si usa l’intervallo [0,1] oppure quello [-1,1]. Quando però si inseriscono i valori nella rete, all’interno subiscono delle operazioni di prodotto e di somma, e queste possono far uscire il valore della variabile dall’intervallo [0,1] o [-1,1]. Ecco a cosa serve la funzione f, essa riporta nell’intervallo di variazione corretto.
Punti di forza
- accuratezza elevata (algoritmo tra i migliori)
- robusto in presenza di outliers e rumore, solido
- efficienza di classificazione (classificazione veloce)
- output discreto o continuo (posso usare le reti neurali anche per fare regressione)
Punti deboli
- addestramento complesso, può essere molto lento (se ho un training set vasto è
escluso che si usino le reti neurali) - modello non interpretabile
- difficile introdurre conoscenza nel dominio applicativo
Lascia un Commento
Link consigliati
Categorie
- Actionscript 3 – Trucchi e Segreti (9)
- Algoritmi e Programmazione Avanzata (3)
- Analisi di Basi di Dati (10)
- Assembler 8086 (2)
- Base di dati (1)
- Codifiche (1)
- Data Mining (4)
- E-learning (4)
- Flash (9)
- Grafica 3D (1)
- HTML5 (1)
- Intelligenza Artificiale (1)
- Lego Mindstorms NXT (6)
- Linguaggio C++ (1)
- Linux (8)
- Microsoft Office (7)
- news (1)
- Objective C (4)
- PHP (9)
- Progetti Politecnico (12)
- Programmazione ad Oggetti (Java) (1)
- Programmazione in C (16)
- Realtà Aumentata (1)
- Red5 (6)
- Seminari (3)
- SEO (3)
- Server (3)
- Sicurezza dei Sistemi Informatici (17)
- Siti Amici (1)
- Strategia e Innovazione (19)
- Tecnologie delle Basi di Dati (2)
- Utilità (11)
- web design (2)
Articoli Recenti
- Come creare una UILabel da codice senza utilizzare Interface Builder in Objective-c
- Tool per testare il codice PHP online
- LMS – An Elearning Platform with Online activation and 5 free users forever
- LMS – Piattaforma di E-learning gratis per i primi 5 utenti….
- Gli Active Record di Yii: un design pattern per rappresentare le tabelle del database in un modo orientato agli oggetti.
- Come creare un pulsante dinamicamente in Objective-c – Iphone SDK
- Actionscript 3 versus Objective-C: vediamo le principali differenze a livello di sintassi del codice
- Firewall: IP Tables un esempio su Linux
- Una piccola introduzione al framework php Yii (Yes It Is!) – installazione e creazione di una semplice applicazione web 2.0
- NetBeans IDE: JVM Creation Failed vediamo come risolverlo
- I sistemi esperti basati su regole
- I protocolli in Objective C sono molto simili alle interfacce di Java
- 19 – Strategia e Innovazione – Benefici della diversificazione: matrice BGC
- 18 – Strategia e Innovazione – Scelta del tempo di ingresso nel mercato – I FIRST MOVER
- 17 – Strategia e Innovazione – I mercati “WINNER TAKE ALL”
Tags
Acrobat Writer Gratis
Actionscript 3
addEventListener
API disegno flash
appunti del corso di strategia e innovazione
AS3
Audio Streaming
Cancellare un'immagine da un PDF
cicli ed iterazioni in c
context free grammar
esercitazioni svolte in linguaggio c
esercitazioni svolte sui trigger oracle
esercizi svolti assembler 8086
eventi in actionscript 2
eventi in actionscript 3
file system linux
Formati Video HTML5
forward-chaining
gestione della memoria dinamica in c
gestione delle liste in c
getURL
Guida Visual Basic For Application - VBA
HTML5
indicizzare un sito sui motori
jflex
LEGO MINDSTORMS NXT 2.0 - BLUETOOTH - C#
linguaggi e traduttori
Modificare un file PDF
moveTo
navigateToURL
Oracle Database 10g Express Edition
Primo programma in c
programmare robot
root
scelte ed alternative in c
setChildIndex
streaming real time
swapDepths
TextField buttonMode
vettori in c
video in as2
video in as3
Video Streaming
XML
XMLList