Video: Cos'è il Machine Learning (Reti Neurali e A.I.) 2024
Prima di alimentare il classificatore SVM (Support Vector Machine) con i dati caricati per l'analisi predittiva, è necessario dividere l'intero set di dati in un set di allenamento e set di prova.
Fortunatamente, scikit-learn ha implementato una funzione che ti aiuterà a dividere facilmente l'intero set di dati. La funzione train_test_split prende come input un singolo set di dati e un valore percentuale. Il valore percentuale viene utilizzato per determinare la dimensione del set di test. La funzione restituisce due set di dati: il set di dati di test (con le dimensioni specificate) e il set di dati di addestramento (che utilizza i dati rimanenti).
In genere, è possibile utilizzare circa il 70-80 percento dei dati da utilizzare come set di allenamento e utilizzare i restanti dati come set di test. Ma il set di dati di Iris è molto piccolo (solo 150 istanze), quindi puoi prenderne il 90 percento per addestrare il modello e usare l'altro 10 percento come dati di test per vedere come funzionerà il tuo modello predittivo.
Digitare il seguente codice per dividere il set di dati: >>>> da sklearn import cross_validation >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (iris. data, iris. target, test_size = 0. 10, random_state = 111)
La prima riga importa la libreria di convalida incrociata nella tua sessione. La seconda riga crea il set di test dal 10 percento del campione.
y_train conterrà 135 etichette nello stesso ordine delle 135 osservazioni.
x_test conterrà 15 (o 10 percento) osservazioni e le sue caratteristiche.
y_test conterrà 15 etichette nello stesso ordine delle 15 osservazioni.
Il seguente codice verifica che la divisione sia come previsto:
Molti principianti nel campo dell'analisi predittiva dimenticano di suddividere i set di dati, introducendo un grave difetto di progettazione nel progetto. Se le 150 istanze complete sono state caricate nella macchina come dati di allenamento, ciò non lascerebbe alcun dato non visto per testare il modello. Quindi dovresti ricorrere al riutilizzo di alcune istanze di addestramento per testare il modello predittivo.
Vedrai che in una situazione del genere, il modello predice sempre la classe corretta, perché stai utilizzando gli stessi dati esatti che hai usato per addestrare il modello.Il modello ha già visto questo modello in precedenza; non avrà problemi a ripetere ciò che è visto. Un modello predittivo funzionante deve fare previsioni per i dati che non ha ancora visto.
Quando si ha un'istanza di un classificatore SVM, un set di dati di addestramento e un set di dati di test, si è pronti per addestrare il modello con i dati di addestramento. Digitando il seguente codice nell'interprete farà esattamente questo: >>>> svmClassifier. fit (X_train, y_train)
Questa linea di codice crea un modello funzionante per fare previsioni. Nello specifico, un modello predittivo che predicherà quale classe di Iris appartiene a un nuovo dataset senza etichetta. L'istanza svmClassifier avrà diversi metodi che puoi chiamare per fare varie cose.
Ad esempio, dopo aver chiamato il metodo di adattamento, il metodo più utile da chiamare è il metodo di previsione. Questo è il metodo con cui invierai nuovi dati; in cambio, predice il risultato.