Krzyżowa weryfikacja modelu

W tym artykule opisano sposób używania składnika Cross Validate Model w projektancie Azure Machine Learning. Krzyżowa walidacja to technika często używana w uczeniu maszynowym do oceny zmienności zestawu danych i niezawodności dowolnego modelu wytrenowanego za pomocą tych danych.

Składnik Cross Validate Model przyjmuje jako dane wejściowe z etykietą zestaw danych wraz z nietrenowanym modelem klasyfikacji lub regresji. Zestaw danych jest podzielony na kilka podzbiorów (składanych), tworzy model na każdym fałszcie, a następnie zwraca zestaw statystyk dokładności dla każdego składania. Porównując statystyki dokładności dla wszystkich fałd, można interpretować jakość zestawu danych. Następnie możesz sprawdzić, czy model jest podatny na zmiany w danych.

Funkcja Cross Validate Model zwraca również przewidywane wyniki i prawdopodobieństwa dla zestawu danych, dzięki czemu można ocenić niezawodność przewidywań.

Jak działa krzyżowa walidacja

  1. Krzyżowa walidacja losowo dzieli dane treningowe na fałdy.

    Algorytm domyślnie ma wartość 10 razy, jeśli zestaw danych nie został wcześniej podzielony na partycje. Aby podzielić zestaw danych na inną liczbę składań, możesz użyć składnika Partition and Sample i wskazać, ile razy użyć.

  2. Składnik odłoży dane z krotnie 1, aby użyć ich do weryfikacji. (Jest to czasami nazywane zwinięciem blokady). Składnik używa pozostałych fałd do trenowania modelu.

    Jeśli na przykład utworzysz pięć razy, składnik generuje pięć modeli podczas krzyżowego sprawdzania poprawności. Składnik trenuje każdy model przy użyciu czterech piątych danych. Testuje każdy model na pozostałej jednej piątej.

  3. Podczas testowania modelu dla każdego składania składnik ocenia wiele statystyk dokładności. Które statystyki używane przez składnik zależą od typu modelu, który oceniasz. Różne statystyki służą do oceniania modeli klasyfikacji w porównaniu z modelami regresji.

  4. Po zakończeniu procesu tworzenia i oceny dla wszystkich składań model Cross Validate generuje zestaw metryk wydajności i ocenia wyniki dla wszystkich danych. Przejrzyj te metryki, aby sprawdzić, czy każda pojedyncza fałda ma wysoką lub niską dokładność.

Zalety krzyżowego sprawdzania poprawności

Innym i typowym sposobem oceny modelu jest podzielenie danych na zestaw treningowy i testowy przy użyciu funkcji Podziel dane, a następnie zweryfikowanie modelu na danych treningowych. Jednak krzyżowa walidacja oferuje pewne korzyści:

  • Krzyżowe sprawdzanie poprawności używa większej liczby danych testowych.

    Krzyżowa walidacja mierzy wydajność modelu z określonymi parametrami w większej przestrzeni danych. Oznacza to, że krzyżowe sprawdzanie poprawności używa całego zestawu danych treningowych zarówno do trenowania, jak i oceny, zamiast części. Z kolei jeśli zweryfikujesz model przy użyciu danych wygenerowanych na podstawie losowego podziału, zazwyczaj oceniasz model tylko na 30 procentach lub mniej dostępnych danych.

    Jednak ze względu na to, że trenowanie krzyżowe i walidacja modelu wiele razy w przypadku większego zestawu danych jest znacznie bardziej obciążane obliczeniami. Trwa to znacznie dłużej niż weryfikowanie losowego podziału.

  • Krzyżowa walidacja ocenia zarówno zestaw danych, jak i model.

    Krzyżowe sprawdzanie poprawności nie mierzy po prostu dokładności modelu. Daje to również pewne pojęcie o tym, jak reprezentatywny jest zestaw danych i jak poufny może być model, aby mógł się różnić w danych.

Jak używać modelu krzyżowego sprawdzania poprawności

Krzyżowe sprawdzanie poprawności może zająć dużo czasu, jeśli zestaw danych jest duży. Dlatego możesz użyć modelu Cross Validate w fazie początkowej tworzenia i testowania modelu. W tej fazie można ocenić dobro parametrów modelu (przy założeniu, że czas obliczeń jest tolerowany). Następnie można trenować i oceniać model przy użyciu ustalonych parametrów ze składnikami Train Model (Trenowanie modelu ) i Evaluate Model (Ocena modelu ).

W tym scenariuszu model jest trenowany i testowany przy użyciu modelu Cross Validate.

  1. Dodaj składnik Cross Validate Model do potoku. Można go znaleźć w projektancie Azure Machine Learning w kategorii Ocena oceniania & modelu.

  2. Połączenie dane wyjściowe dowolnego modelu klasyfikacji lub regresji.

    Jeśli na przykład używasz dwóch klas wzmocnionego drzewa decyzyjnego do klasyfikacji, skonfiguruj model z żądanymi parametrami. Następnie przeciągnij łącznik z portu modelu Untrained klasyfikatora do pasującego portu modelu Cross Validate Model.

    Porada

    Nie musisz trenować modelu, ponieważ model Cross-Validate automatycznie trenuje model w ramach oceny.

  3. Na porcie Dataset (Zestaw danych ) elementu Cross Validate Model (Model weryfikacji krzyżowej) połącz dowolny zestaw danych treningowych z etykietą .

  4. W prawym panelu pozycji Cross Validate Model (Krzyżowa walidacja modelu) kliknij pozycję Edit column (Edytuj kolumnę). Wybierz pojedynczą kolumnę zawierającą etykietę klasy lub przewidywalną wartość.

  5. Ustaw wartość parametru inicjatora losowego , jeśli chcesz powtórzyć wyniki krzyżowej walidacji między kolejnymi przebiegami na tych samych danych.

  6. Prześlij potok.

  7. Zobacz sekcję Wyniki , aby uzyskać opis raportów.

Wyniki

Po zakończeniu wszystkich iteracji model Cross Validate tworzy wyniki dla całego zestawu danych. Tworzy również metryki wydajności, których można użyć do oceny jakości modelu.

Wyniki z wynikami

Pierwsze dane wyjściowe składnika zawierają dane źródłowe dla każdego wiersza wraz z niektórymi przewidywanymi wartościami i powiązanymi prawdopodobieństwami.

Aby wyświetlić wyniki, w potoku kliknij prawym przyciskiem myszy składnik Cross Validate Model. Wybierz pozycję Visualize Scored results (Wizualizacja wyników wygenerowanych w wizualizacji).

Nazwa nowej kolumny Opis
Etykiety z wynikami Ta kolumna jest dodawana na końcu zestawu danych. Zawiera on przewidywaną wartość dla każdego wiersza.
Scored Probabilities Ta kolumna jest dodawana na końcu zestawu danych. Wskazuje szacowane prawdopodobieństwo wartości w obszarze Etykiety z wynikami.
Składana liczba Wskazuje indeks zera składania, do którego przypisano każdy wiersz danych podczas krzyżowej walidacji.

Wyniki oceny

Drugi raport jest grupowany według zagięcia. Pamiętaj, że podczas wykonywania model Cross Validate losowo dzieli dane treningowe na n fałd (domyślnie 10). W każdej iteracji zestawu danych model Cross Validate używa jednej krotnie jako zestawu danych weryfikacji. Używa pozostałych n-1 fałd do wytrenowania modelu. Każdy z n modeli jest testowany pod kątem danych we wszystkich pozostałych fałdach.

W tym raporcie fałdy są wyświetlane według wartości indeksu w kolejności rosnącej. Aby zamówić wyniki w dowolnej innej kolumnie, możesz zapisać wyniki jako zestaw danych.

Aby wyświetlić wyniki, w potoku kliknij prawym przyciskiem myszy składnik Cross Validate Model. Wybierz pozycję Visualize Evaluation results by fold (Wizualizuj wyniki oceny według składania).

Nazwa kolumny Opis
Składana liczba Identyfikator dla każdego składania. Jeśli utworzono pięć krotności, byłoby pięć podzbiorów danych, ponumerowanych od 0 do 4.
Liczba przykładów składanych Liczba wierszy przypisanych do każdego składania. Powinny one być mniej więcej równe.

Składnik zawiera również następujące metryki dla każdego składania, w zależności od typu modelu, który oceniasz:

  • Modele klasyfikacji: Precyzja, kompletność, ocena F, AUC, dokładność

  • Modele regresji: Średni błąd bezwzględny, pierwiastek błędu średniokwadratowego, względny błąd bezwzględny, względny błąd kwadratowy i współczynnik determinacji

Uwagi techniczne

  • Najlepszym rozwiązaniem jest normalizacja zestawów danych przed użyciem ich do krzyżowego sprawdzania poprawności.

  • Model cross Validate jest znacznie intensywniej obciążany obliczeniowo i trwa dłużej niż w przypadku weryfikacji modelu przy użyciu losowo podzielonego zestawu danych. Przyczyną jest to, że model Cross Validate trenuje i weryfikuje model wiele razy.

  • Nie ma potrzeby dzielenia zestawu danych na zestawy treningowe i testowe, gdy używasz krzyżowej walidacji do mierzenia dokładności modelu.

Następne kroki

Zobacz zestaw składników dostępnych do Azure Machine Learning.