La convalida incrociata aiuta nella valutazione dei modelli di apprendimento automatico. Questo metodo statistico aiuta a confrontare e selezionare il modello nell’apprendimento automatico applicato. Comprendere e implementare questo problema di modellazione predittiva è facile e diretto. Questa tecnica ha un bias inferiore durante la stima delle capacità del modello. Questo articolo vi aiuterà a capire il concetto di k-fold cross-validation e come potete valutare un modello di apprendimento automatico usando questa tecnica.

Convalida incrociata K-Fold

La validazione incrociata k-fold significa che il set di dati si divide in un numero K. Divide il set di dati nel punto in cui il set di test utilizza ogni piega. Comprendiamo il concetto con l’aiuto della convalida incrociata a 5 pieghe o K+5. In questo scenario, il metodo dividerà il set di dati in cinque pieghe. Il modello utilizza la prima piega nella prima iterazione per testare il modello. Utilizza i restanti set di dati per addestrare il modello. La seconda piega aiuta a testare il set di dati e l’altra supporta il processo di formazione. Lo stesso processo si ripete fino a quando il set di test utilizza ogni piega delle cinque pieghe.

Validazione incrociata K-Fold nell’apprendimento automatico

Insieme ai numerosi vantaggi degli algoritmi di apprendimento automatico, il modello segue lo stesso modello per prevedere e generare i dati di valori discreti o continui. È essenziale assicurarsi che i dati del modello siano accurati e non siano underfit o overfit. Underfitting e overfitting sono due concetti principali dell’apprendimento automatico. Questi termini definiscono quanto bene un modello è addestrato a predire i dati. Per controllare le prestazioni e il comportamento dell’algoritmo, l’overfitting include un valore di iperparametro.

-Sottoadattamento nell’apprendimento automatico

Il modello può generare previsioni accurate con nuovi dati quando il modello si adatta perfettamente al set di dati. Un algoritmo appropriato per il dataset addestrato può aiutare ad addestrare il nuovo dataset. Inoltre, se il modello di apprendimento automatico si basa su un processo di formazione non adatto, non genererà dati accurati o previsioni adeguate. Pertanto, il modello non riuscirà ad elaborare modelli importanti dai set di dati.
Quando il modello si ferma durante il processo di addestramento, porterà ad un underfitting. Questo indica che i dati richiedono più tempo per essere elaborati completamente. Questo influenzerà le prestazioni del modello per i nuovi dati. Il modello non produrrà risultati accurati e non sarà di alcuna utilità.

-Overfitting nell’apprendimento automatico

L’overfitting è semplicemente l’opposto dell’underfitting. Ciò significa che oltre ad apprendere i dati ed estrarre il modello, il modello sta imparando più della sua capacità. Questa condizione indica che i dati cattureranno il rumore, portando a generalizzare il modello per i nuovi dati. Il rumore è il dato irrilevante che influenza l’output della predizione quando si incontrano nuovi dati.

Valutazione di un modello ML usando la validazione incrociata K-Fold

Di seguito, valuteremo il modello di regressione semplice utilizzando la tecnica di convalida incrociata K-fold. In questo esempio eseguiremo una convalida incrociata di 10 volte.

Importare le librerie

Il primo passo è quello di importare tutte le librerie necessarie per eseguire questa tecnica di convalida incrociata su un semplice modello di apprendimento automatico.
importare pandas
da sklearn.model_selection importa KFold
Da sklearn.preprocessing importa MinMaxScaler
da sklearn.svm importare SVR
importare NumPy come np
Queste librerie vi aiuteranno ad eseguire diversi compiti:

  • Numpy – Aiuta ad eseguire calcoli scientifici
  • Pandas -Aiuta a manipolare facilmente la struttura dei dati.
  • Sklearn – È una libreria di apprendimento automatico che puoi usare per Python.

Lettura dell’insieme di dati

Ora, leggerete l’insieme di dati che userete. Useremo pandas per strutturare il frame di dati.
dataset = pandas.read_csv(‘housing.csv’)

Pre-elaborazione

Identificare le variabili di output e le caratteristiche del nostro dataset.
X = dataset.iloc[:, [0, 12]]
y = dataset.iloc[:, 13]
Secondo il codice precedente, tutte le righe da 0 a 12 sono le caratteristiche, e l’indice 13 sulla colonna è la variabile dipendente o l’output del modello. Ora, possiamo applicare la tecnica di pre-elaborazione. Questa tecnica di scalatura MinMax normalizzerà il set di dati.
scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
Con l’aiuto di questa tecnica, puoi ridimensionare i dati in un intervallo specifico. In questo esempio, l’intervallo sarebbe tra 0 e 1. Questo ci aiuterà a capire che varie caratteristiche non influenzeranno la predizione finale.

4.K-Fold CV

Ora, inizieremo il processo di convalida con i seguenti codici:
punteggi = []
best_svr = SVR(kernel=’rbf’)
cv = KFold(n_splits=10, random_state=42, shuffle=False)
per train_index, test_index in cv.split(X):
print(“Indice treno: “, train_index, “\n”)
print(“Indice di prova: “, test_index)

X_train, X_test, y_train, y_test = X[train_index], X[test_index], y[train_index], y[test_index]
best_svr.fit(X_train, y_train)
scores.append(best_svr.score(X_test, y_test))

Conclusione

La validazione incrociata K-fold migliora il modello validando i dati. Questa tecnica assicura che il punteggio del modello non sia legato alla tecnica che usiamo per scegliere il set di dati di test o di allenamento. Il metodo di convalida incrociata K-fold divide il set di dati in sottoinsiemi come numero K. Quindi ripete il metodo di prova per un numero k di volte.