Walidacja krzyżowa pomaga w ocenie modeli uczenia maszynowego. Ta metoda statystyczna pomaga w porównywaniu i wyborze modelu w stosowanym uczeniu maszynowym. Zrozumienie i wdrożenie tego problemu modelowania predykcyjnego jest łatwe i proste. Technika ta ma niższą tendencyjność podczas szacowania umiejętności modelu. Ten artykuł pomoże Ci zrozumieć koncepcję k-krotnej walidacji krzyżowej i jak możesz ocenić model uczenia maszynowego za pomocą tej techniki.

Walidacja krzyżowa k-krotna (K-Fold Cross-Validation)

K-krotna walidacja krzyżowa oznacza, że zbiór danych jest podzielony na K liczb. Dzieli ona zbiór danych w punkcie, w którym zestaw testowy wykorzystuje każdą fałdę. Zrozummy tę koncepcję z pomocą 5-krotnej walidacji krzyżowej lub K+5. W tym scenariuszu, metoda podzieli zbiór danych na pięć fałd. Model używa pierwszej fałdy w pierwszej iteracji do testowania modelu. Pozostałe zbiory danych są wykorzystywane do trenowania modelu. Druga fałda pomaga w testowaniu zbioru danych, a pozostałe wspierają proces szkolenia. Ten sam proces powtarza się aż do momentu, gdy zestaw testowy wykorzystuje każdą fałdę z pięciu fałd.

K-Fold Cross-Validation w uczeniu maszynowym

Wraz z licznymi korzyściami płynącymi z algorytmów uczenia maszynowego, model podąża za tym samym modelem, aby przewidywać i generować dane o wartościach dyskretnych lub ciągłych. Istotne jest, aby zapewnić, że dane modelu są dokładne i nie są niedopasowane lub przepasowane. Underfitting i overfitting to dwa główne pojęcia uczenia maszynowego. Terminy te określają, jak dobrze model jest przeszkolony do przewidywania danych. Aby sprawdzić wydajność i zachowanie algorytmu, przepełnienie obejmuje wartość hiperparametru.

-Dopasowanie w uczeniu maszynowym

Model może generować dokładne przewidywania z nowymi danymi, gdy model jest idealnie dopasowany do zbioru danych. Odpowiedni algorytm dla wytrenowanego zbioru danych może pomóc w wytrenowaniu nowego zbioru danych. Ponadto, jeśli model uczenia maszynowego opiera się na nieprzystosowanym procesie szkolenia, nie wygeneruje dokładnych danych lub odpowiednich przewidywań. W związku z tym, model nie będzie w stanie przetworzyć ważnych wzorców ze zbiorów danych.
Kiedy model zatrzymuje się w trakcie procesu szkolenia, prowadzi to do niedopasowania. Wskazuje to, że dane wymagają więcej czasu, aby je w pełni przetworzyć. Będzie to miało wpływ na wydajność modelu dla nowych danych. Model nie będzie dawał dokładnych wyników i będzie bezużyteczny.

-Przeszacowanie w uczeniu maszynowym

Overfitting jest po prostu przeciwieństwem underfitting. Oznacza to, że poza uczeniem się danych i wydobywaniem wzorca, model uczy się więcej niż jest w stanie. Ten stan wskazuje, że dane będą przechwytywać szum, co prowadzi do generalizacji modelu dla nowych danych. Szum to nieistotne dane, które wpływają na wynik predykcji przy napotkaniu nowych danych.

Ocena modelu ML przy użyciu K-Fold Cross-Validation

Poniżej, ocenimy prosty model regresji przy użyciu techniki K-krotnej walidacji krzyżowej. W tym przykładzie przeprowadzimy 10-krotną walidację krzyżową.

1.Importowanie bibliotek

Pierwszym krokiem jest zaimportowanie wszystkich bibliotek, które są potrzebne do przeprowadzenia techniki walidacji krzyżowej na prostym modelu uczenia maszynowego.
import pandas
from sklearn.model_selection import KFold
Ze sklearn.preprocessing zaimportuj MinMaxScaler
z sklearn.svm zaimportuj SVR
zaimportuj NumPy jako np
Biblioteki te pomogą w wykonaniu różnych zadań:
– Numpy-Pomaga w wykonywaniu obliczeń naukowych
– Pandas -Pomaga w łatwy sposób manipulować strukturą danych.
– Sklearn-jest biblioteką uczenia maszynowego, którą można wykorzystać w pythonie.

2.Czytanie zbioru danych

Teraz przeczytasz zestaw danych, których będziesz używał. Użyjemy pandas do strukturyzacji ramki danych.
dataset = pandas.read_csv(‘housing.csv’)

3.Przetwarzanie wstępne

Zidentyfikuj zmienne wyjściowe i cechy naszego zbioru danych.
X = dataset.iloc[:, [0, 12]]
y = dataset.iloc[:, 13]
Zgodnie z powyższym kodem, wszystkie wiersze od 0 do 12 są cechami, a indeks 13 na kolumnie jest zmienną zależną lub wyjściem modelu. Teraz, możemy zastosować technikę wstępnego przetwarzania. Ta technika skalowania MinMax znormalizuje zestaw danych.
scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
Za pomocą tej techniki można ponownie skalować dane w określonym zakresie. W tym przykładzie, zakres będzie pomiędzy 0 a 1. To pomoże nam zrozumieć, że różne cechy nie będą miały wpływu na ostateczną predykcję.

4.K-krotne CV

Teraz, rozpoczniemy proces walidacji z następującymi kodami:
scores = []
best_svr = SVR(kernel=’rbf’)
cv = KFold(n_splits=10, random_state=42, shuffle=False)
for train_index, test_index in cv.split(X):
print(“Train Index: “, train_index, “\”)
print(“Indeks testowy: “, 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))

Wnioski

K-krotna walidacja krzyżowa poprawia model poprzez walidację danych. Technika ta zapewnia, że wynik modelu nie jest związany z techniką, której używamy do wyboru testowego lub treningowego zbioru danych. Metoda K-krotnej walidacji krzyżowej dzieli zbiór danych na podzbiory o liczbie K. W związku z tym powtarza ona metodę holdout k razy.