„Technika walidacji modelu zwana walidacją krzyżową ocenia uogólnienie wyników analizy statystycznej na różne zestawy danych stosowane przede wszystkim w kontekstach, w których celem jest prognoza. Używamy walidacji krzyżowej do testowania modelu podczas szkolenia i uogólniania danych. W tym artykule omówiono to, w jaki sposób jest wdrażany w bibliotece Python Sklearn."
Co to jest walidacja krzyżowa?
Jest to technika oceny modelu statystycznego, która testuje, w jaki sposób dane zostaną uogólnione na różne zestawy danych. Koncentruje się na określeniu dokładności modelu w rzeczywistości i jest zasadniczo w kontekście, w którym głównym celem jest prognozowanie. Krzyżowanie testuje model podczas szkolenia i jego zdolność do uogólnienia danych.
Czym różnią się dane testowe i szkoleniowe?
Dane wykorzystywane do opracowania modelu, takie jak dane używane do określenia współczynników regresji wielośrodkowej, są określane jako dane szkoleniowe. Po utworzeniu modelu jest on testowany pod kątem danych testowych w celu ustalenia, jak dobrze model pasuje do danych.
Wdrażanie walidacji krzyżowej w Sklearn
Importowanie wymaganych bibliotek
importować Numpy jako NP
ze Sklearn.Model_Selection Import Train_Test_Split
Z zestawów danych Import Sklearn
ze sklearn import SVM
ze Sklearn.Model_Selection import cross_val_score
Tworzenie zestawu danych
X, y = zestawy danych.load_iris (return_x_y = true)
X_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.4, Random_State = 0)
print (x_train [: 20], y_train [: 20])
Wyjście
[[6. 3.4 4.5 1.6]
[4.8 3.1 1.6 0.2]
[5.8 2.7 5.1 1.9]
[5.6 2.7 4.2 1.3]
[5.6 2.9 3.6 1.3]
[5.5 2.5 4. 1.3]
[6.1 3. 4.6 1.4]
[7.2 3.2 6. 1.8]
[5.3 3.7 1.5 0.2]
[4.3 3. 1.1 0.1]
[6.4 2.7 5.3 1.9]
[5.7 3. 4.2 1.2]
[5.4 3.4 1.7 0.2]
[5.7 4.4 1.5 0.4]
[6.9 3.1 4.9 1.5]
[4.6 3.1 1.5 0.2]
[5.9 3. 5.1 1.8]
[5.1 2.5 3. 1.1]
[4.6 3.4 1.4 0.3]
[6.2 2.2 4.5 1.5]] [1 0 2 1 1 1 1 2 0 0 2 1 0 0 1 0 2 1 0 1]
Tworzenie modelu i znalezienie wyników walidacji krzyżowej
clf = svm.Svc (jądro = „liniowy”, c = 1).fit (x_train, y_train)
clf = svm.Svc (jądro = „liniowy”, c = 1, losowo_state = 42)
wyniki = cross_val_score (clf, x, y, cv = 5)
Drukuj (wyniki)
Wyjście
[0.96666667 1. 0.96666667 0.96666667 1. ]
Wniosek
Gdy zestaw danych do szkolenia i testowania jest zbyt mały, wymagana jest walidacja krzyżowa. Zestaw danych jest zazwyczaj podzielony na n losowe elementy o równej objętości, aby zapobiec problemowi nadmiernego dopasowania. Technika jest oceniana za pomocą pozostałej części po szkoleniu z częściami N-1. Średnia wskaźników podczas przebiegów N-Test-Test jest używana do uzyskania ogólnej miary. Później dodaliśmy walidację krzyżową do Sklearn, która ma klasę o nazwie „Wybór modelu” do tego.