Test del treno diviso in Sklearn

Test del treno diviso in Sklearn

Il set di dati iniziale necessario per addestrare gli algoritmi di apprendimento automatico è noto come dati di formazione. Gli algoritmi di apprendimento automatico sono incaricati di fare previsioni o eseguire un'attività utilizzando set di dati di formazione. Il set di dati di test valuta quanto bene vengono eseguiti i dati di formazione. Sklearn è un toolkit di apprendimento automatico a base di Python che ci consente di dividere i nostri dati in treni e testare campioni utilizzando il train_test_split () metodo. La tecnica train_test_split () è discussa in questo articolo.

Cos'è la divisione del test del treno

I modelli di apprendimento automatico sono addestrati utilizzando la tecnica di divisione del test del treno. Stabilisce come funzionano gli algoritmi di apprendimento automatico effettivamente. Può essere impiegato per risolvere i problemi che coinvolgono la regressione e la classificazione. Il set di dati di formazione per l'apprendimento automatico è la divisione del test del treno. È costituito da una quantità significativa di dati. In Python, il Scikit Learn Package ha un modulo chiamato Selezione del modello da cui è possibile importare una "divisione del test del treno". È possibile fornire il campione di dimensioni di formazione e test in questa funzione utilizzando le dimensioni del treno e dei test. Non esiste una percentuale di divisione perfetta. Dovresti selezionare una percentuale divisa che si adatta agli obiettivi del tuo progetto.

Il modello deve abbinare accuratamente i dati forniti utilizzando ingressi e output noti. Il programma viene quindi utilizzato per fare previsioni sul sottoinsieme di dati rimanenti da imparare da esso. Senza conoscere i valori di input e output previsti, questo può essere utilizzato per generare previsioni sui set di dati in futuro. La funzione train_test_split () nel toolkit di machine learning di Scikit-Learn in Python può essere utilizzata per implementare la tecnica di valutazione della divisione del test del treno. Accetta il set di dati come input e lo divide in due sottoinsiemi come output.

Set di test

Il set di test è una selezione di istanze disegnate dal set di dati per valutare l'efficacia del modello. Questi dati sono tenuti separati dai dati di formazione e ottimizzazione. Pertanto, non può essere utilizzato durante le fasi di formazione o ottimizzazione del processo di apprendimento. Ciò influenzerebbe le prestazioni solo distorndo il modello ai dati.

Set di formazione

I set di formazione e test devono essere separati. La fase di formazione consuma il set di formazione per identificare i valori dei parametri che minimizzano una funzione di costo specifica nell'intero set di formazione. Una volta addestrato sul set di dati di addestramento, il modello verrà valutato sul set di dati di test. Il set di dati di test non dovrebbe essere molto più piccolo del set di dati di formazione.

Come addestrare i dati

Un modello è creato utilizzando dati specifici, indicato come dati di "formazione". In un semplice modello lineare, il modello formalizza le relazioni tra le variabili producendo l'equazione matematica per una linea. Il tipo di modello determina come è costruito. Ad esempio, una regressione differisce dagli altri metodi.

È importante distinguere i dati di formazione dagli altri dati poiché spesso dividerai il tuo set di dati iniziale in due parti: dati di addestramento per la creazione di modelli e i dati di prova per valutarli. In genere, lo faresti facendo in modo che il tuo modello preveda i valori nei dati di test (in base alle variabili nel modello) e confrontandoli con i valori effettivi.

Lo scopo di dividere i nostri dati

Overfitting e Underfitting sono due problemi significativi che affrontiamo durante il test del nostro set di dati.

Costruire un modello basato su dati che non dovrebbero essere noti è chiamato pregiudizio da look.

Il consumo eccessivo è quando un modello si adatta troppo da vicino ai dati storici. Non ha avuto successo in futuro. Underfitting è l'atto di creare un modello che si adatta ai dati passati così vagamente da essere reso inutile in futuro.

Implementazione di train_test_split () in sklearn

# Importazione dei metodi e delle librerie necessarie
Importa Numpy come NP
da Sklearn.Model_Selection Import Train_Test_Split
# Creazione di set di dati di esempio
X, y = np.Arange (100).Reshape ((20, 5)), intervallo (20)
Stampa ("Funzionalità sono", x)
print ("etichette target sono", elenco (y))

Produzione

Le caratteristiche sono

[[0 1 2 3 4]
[5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]
[25 26 27 28 29]
[30 31 32 33 34]
[35 36 37 38 39]
[40 41 42 43 44]
[45 46 47 48 49]
[50 51 52 53 54]
[55 56 57 58 59]
[60 61 62 63 64]
[65 66 67 68 69]
[70 71 72 73 74]
[75 76 77 78 79]
[80 81 82 83 84]
[85 86 87 88 89]
[90 91 92 93 94]
[95 96 97 98 99]]

Le etichette target sono

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Dividere i dati

X_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.33, random_state = 42)
Print ('Funzionalità di allenamento sono', x_train)
Print ("Etichette di allenamento sono", y_train)
Print ('Test Funzionalità sono', x_test)
print ('etichette di test sono', y_test)

Produzione

Le caratteristiche di formazione sono

[[15 16 17 18 19]
[90 91 92 93 94]
[80 81 82 83 84]
[65 66 67 68 69]
[10 11 12 13 14]
[45 46 47 48 49]
[95 96 97 98 99]
[20 21 22 23 24]
[60 61 62 63 64]
[35 36 37 38 39]
[50 51 52 53 54]
[70 71 72 73 74]
[30 31 32 33 34]]

Le etichette di formazione sono

[3, 18, 16, 13, 2, 9, 19, 4, 12, 7, 10, 14, 6]

Le caratteristiche del test sono

[[0 1 2 3 4]
[85 86 87 88 89]
[75 76 77 78 79]
[5 6 7 8 9]
[40 41 42 43 44]
[25 26 27 28 29]
[55 56 57 58 59]]

Le etichette di prova sono

[0, 17, 15, 1, 8, 5, 11]

Conclusione

Abbiamo discusso del metodo train_test_split () di Sklearn, che viene utilizzato per dividere i dati iniziali nei campioni di treno e testare. Questo è necessario per valutare le prestazioni del nostro modello e alla fine migliorarlo. Abbiamo anche visto come i campioni di treni e test sono diversi l'uno dall'altro. Infine, abbiamo implementato il metodo train_test_split () in Sklearn.