Walidacja krzyżowa w Sklearn

Walidacja krzyżowa w Sklearn

„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.