Kruisvalidatie helpt bij de evaluatie van modellen voor machinaal leren. Deze statistische methode helpt bij het vergelijken en selecteren van het model bij toegepast machinaal leren. Het begrijpen en uitvoeren van deze voorspellende modellering is eenvoudig en ongecompliceerd. Deze techniek heeft een lagere bias bij het schatten van de vaardigheden van het model. Dit artikel zal u helpen het concept van k-voudige kruisvalidatie te begrijpen en hoe u met deze techniek een machine learning model kunt evalueren.

K-voudige kruisvalidatie

De k-voudige kruisvalidatie betekent dat de dataset wordt opgesplitst in een K-aantal. Het verdeelt de dataset op het punt waar de testset gebruik maakt van elke vouw. Laten we het concept begrijpen met behulp van 5-voudige kruisvalidatie of K+5. In dit scenario zal de methode de dataset in vijf vouwen splitsen. Het model gebruikt de eerste vouw in de eerste iteratie om het model te testen. Het gebruikt de resterende datasets om het model te trainen. De tweede vouw helpt bij het testen van de dataset en de andere bij het trainingsproces. Hetzelfde proces herhaalt zich totdat de testset elke vouw uit de vijf vouwen gebruikt.

K-voudige kruisvalidatie bij machinaal leren

Naast de talrijke voordelen van machine learning-algoritmen, volgt het model hetzelfde model om de gegevens van discrete of continue waarden te voorspellen en te genereren. Het is van essentieel belang ervoor te zorgen dat de gegevens van het model accuraat zijn en geen underfit of overfit vertonen. Underfitting en overfitting zijn twee belangrijke begrippen van machinaal leren. Deze begrippen bepalen hoe goed een model is getraind om gegevens te voorspellen. Om de prestaties en het gedrag van het algoritme te controleren, omvat de overfitting een Hyperparameterwaarde.

-Onderfitting bij machinaal leren

Het model kan met nieuwe gegevens nauwkeurige voorspellingen doen als het model perfect past bij de dataset. Een geschikt algoritme voor de getrainde dataset kan helpen bij het trainen van de nieuwe dataset. Als het model voor machinaal leren gebaseerd is op een ongeschikt trainingsproces, zal het geen nauwkeurige gegevens of adequate voorspellingen genereren. Het model zal er dan niet in slagen belangrijke patronen uit datasets te verwerken.
Wanneer het model tijdens het opleidingsproces stopt, zal dit leiden tot underfitting. Dit wijst erop dat de gegevens meer tijd nodig hebben om volledig te worden verwerkt. Dit zal de prestaties van het model voor nieuwe gegevens beïnvloeden. Het model zal geen accurate resultaten opleveren en zal van geen nut zijn.

-Overfitting bij Machine Learning

Overfitting is gewoon het tegenovergestelde van underfitting. Dit betekent dat het model niet alleen de gegevens leert en het patroon extraheert, maar ook meer leert dan het kan. Deze omstandigheid wijst erop dat de gegevens ruis gaan vertonen, waardoor het model gaat generaliseren voor nieuwe gegevens. De ruis is de irrelevante data die de output van de voorspelling beïnvloedt bij het tegenkomen van nieuwe data.

Evaluatie van een ML-model met K-voudige kruisvalidatie

Hieronder zullen wij het eenvoudige regressiemodel evalueren met behulp van de K-voudige kruisvalidatietechniek. Wij zullen in dit voorbeeld 10-voudige kruisvalidatie uitvoeren.

1. Bibliotheken importeren

De eerste stap is het importeren van alle bibliotheken die je nodig hebt om deze kruisvalidatie techniek uit te voeren op een eenvoudig machine learning model.
importeer pandas
uit sklearn.model_selection import KFold
Uit sklearn.preprocessing import MinMaxScaler
uit sklearn.svm importeren SVR
importeer NumPy als np
Deze bibliotheken zullen helpen om verschillende taken uit te voeren:
– Numpy-Helpt je om wetenschappelijke berekeningen uit te voeren
– Pandas-Helpsyout om de gegevensstructuur gemakkelijk te manipuleren.
– Sklearn-Is een machine learning bibliotheek die je kunt gebruiken voor python.

2. Lezen van de gegevensverzameling

Nu ga je de dataset lezen die je gaat gebruiken. We zullen pandas gebruiken om het dataframe te structureren.
dataset = pandas.read_csv(‘housing.csv’)

3. Voorverwerking

Bepaal de outputvariabelen en de kenmerken van onze dataset.
X = dataset.iloc[:, [0, 12]]
y = dataset.iloc[:, 13]
Volgens de bovenstaande code zijn alle rijen van 0 tot 12 de kenmerken, en is de index 13 in de kolom de afhankelijke variabele of de uitvoer van het model. Nu kunnen we de voorbewerkingstechniek toepassen. Deze MinMax-schalingstechniek zal de gegevensreeks normaliseren.
scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
Met behulp van deze techniek kan je de data herschalen in een specifiek bereik. In dit voorbeeld zou het bereik liggen tussen 0 en 1. Dit zal ons helpen begrijpen dat verschillende kenmerken de uiteindelijke voorspelling niet zullen beïnvloeden.

4. K-voudige CV

Nu beginnen we het validatieproces met de volgende codes:
scores = []
best_svr = SVR(kernel=’rbf’)
cv = KFold(n_splits=10, random_state=42, shuffle=False)
voor train_index, test_index in cv.split(X):
print(“Train Index: “, train_index, “\n”)
print(“Test Index: “, 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))

Conclusie

K-voudige kruisvalidatie verbetert het model door de gegevens te valideren. Deze techniek zorgt ervoor dat de score van het model geen verband houdt met de techniek die we gebruiken om de test of training dataset te kiezen. De K-voudige kruisvalidatiemethode verdeelt de dataset in deelverzamelingen als K-getal. Daarom wordt de hold-out methode k aantal keren herhaald.