Lab 2A: Tworzenie potoku treningowego za pomocą Azure ML Designer
Designer to interfejs typu „przeciągnij i upuść" (drag & drop), w którym składasz model uczenia maszynowego z gotowych klocków: pozyskania danych, ich transformacji i trenowania. Cały taki przepływ pracy nazywamy potokiem (pipeline). Gotowy potok można potem wdrożyć jako punkt końcowy czasu rzeczywistego, z którego aplikacje klienckie korzystają do wnioskowania, czyli generowania predykcji dla nowych danych.
Zanim zaczniesz
Upewnij się, że masz ukończone ćwiczenia Lab 1A i Lab 1B - powstaje w nich obszar roboczy Azure Machine Learning oraz pozostałe zasoby używane tutaj.
Krok 1: Tworzenie potoku w Designerze i eksploracja danych
Pracę z Designerem zaczyna się od utworzenia potoku i dodania do niego danych, na których chcesz pracować.
- W Azure Machine Learning studio, w swoim obszarze roboczym, przejdź na stronę Designer i utwórz nowy potok.
- W panelu Settings zmień domyślną nazwę potoku (Pipeline-Created-on-data) na Visual Diabetes Training (jeśli panel Settings nie jest widoczny, kliknij ikonę ⚙ obok nazwy potoku u góry).
- Zwróć uwagę, że trzeba wskazać środowisko obliczeniowe, na którym potok będzie uruchamiany. W panelu Settings kliknij Select compute target i wybierz klaster aml-cluster utworzony w Lab 1A.
- Po lewej stronie Designera rozwiń sekcję Data i przeciągnij na kanwę zasób danych diabetes_dataset zarejestrowany w Lab 1A.
- Zaznacz moduł diabetes_dataset na kanwie i przejrzyj jego ustawienia. Następnie na karcie outputs kliknij ikonę Visualize (wygląda jak wykres kolumnowy).
- Przejrzyj schemat danych, zwracając uwagę, że możesz zobaczyć rozkłady poszczególnych kolumn w postaci histogramów. Następnie zamknij wizualizację.
Krok 2: Dodawanie transformacji
Zanim wytrenujesz model, dane zwykle trzeba wstępnie przetworzyć.
W panelu po lewej stronie rozwiń sekcję Data Transformation, która zawiera szeroki wybór modułów służących do transformowania i wstępnego przetwarzania danych przed trenowaniem modelu. Przeciągnij na kanwę moduł Normalize Data, poniżej modułu diabetes_dataset. Następnie połącz wyjście modułu diabetes_dataset z wejściem modułu Normalize Data.
Zaznacz moduł Normalize Data i przejrzyj jego ustawienia, zwracając uwagę, że wymaga on wskazania metody transformacji oraz kolumn, które mają zostać przekształcone. Zostaw metodę ZScore i ustaw listę kolumn tak, żeby zawierała:
- PlasmaGlucose
- DiastolicBloodPressure
- TricepsThickness
- SerumInsulin
- BMI
- DiabetesPedigree
Uwaga: Normalizujemy kolumny liczbowe, aby sprowadzić je do tej samej skali i uniknąć sytuacji, w której kolumny o dużych wartościach dominują w trenowaniu modelu. W prawdziwym projekcie stosuje się zwykle cały zestaw takich przekształceń, ale w tym ćwiczeniu zostajemy przy jednym, najprostszym.
Teraz możemy podzielić dane na osobne zestawy do trenowania i walidacji. W panelu po lewej stronie, w sekcji Data Transformations, przeciągnij na kanwę moduł Split Data, pod modułem Normalize Data. Następnie połącz lewe wyjście Transformed Dataset modułu Normalize Data z wejściem modułu Split Data.
Zaznacz moduł Split Data i skonfiguruj jego ustawienia w następujący sposób:
- Splitting mode: Split Rows
- Fraction of rows in the first output dataset: 0.7
- Random seed: 123
- Stratified split: False
Krok 3: Dodawanie modułów trenowania modelu
Po przygotowaniu danych i podzieleniu ich na zestawy treningowe i walidacyjne możesz skonfigurować potok tak, aby trenował i oceniał model.
- Rozwiń sekcję Model Training w panelu po lewej stronie i przeciągnij na kanwę moduł Train Model, pod modułem Split Data. Następnie połącz lewe wyjście Result dataset1 modułu Split Data z prawym wejściem Dataset modułu Train Model.
- Model będzie przewidywał wartość Diabetic, więc zaznacz moduł Train Model i zmodyfikuj jego ustawienia, ustawiając Label column na Diabetic (dokładnie zgodnie z wielkością liter i pisownią!).
- Etykieta Diabetic, którą model ma przewidywać, jest kolumną binarną (1 dla pacjentów chorych na cukrzycę, 0 dla pacjentów zdrowych), więc musimy wytrenować model za pomocą algorytmu klasyfikacji. Rozwiń sekcję Machine Learning Algorithms i w podsekcji Classification przeciągnij na kanwę moduł Two-Class Logistic Regression, na lewo od modułu Split Data i powyżej modułu Train Model. Następnie połącz jego wyjście z lewym wejściem Untrained model modułu Train Model.
- Aby przetestować wytrenowany model, musimy użyć go do oceny zestawu walidacyjnego, który odłożyliśmy na bok podczas podziału oryginalnych danych. Rozwiń sekcję Model Scoring & Evaluation i przeciągnij na kanwę moduł Score Model, poniżej modułu Train Model. Następnie połącz wyjście modułu Train Model z lewym wejściem Trained model modułu Score Model, a prawe wyjście Results dataset2 modułu Split Data przeciągnij do prawego wejścia Dataset modułu Score Model.
- Aby ocenić, jak dobrze działa model, musimy przyjrzeć się metrykom wygenerowanym podczas oceny zestawu walidacyjnego. Z sekcji Model Scoring & Evaluation przeciągnij na kanwę moduł Evaluate Model, pod modułem Score Model, i połącz wyjście modułu Score Model z lewym wejściem Score dataset modułu Evaluate Model.
Krok 4: Uruchamianie potoku treningowego
Po zdefiniowaniu kroków przepływu danych możesz teraz uruchomić potok treningowy i wytrenować model.
Sprawdź, czy Twój potok wygląda podobnie do poniższego (na obrazku każdy moduł ma komentarz opisujący, co robi - w prawdziwym projekcie warto tak robić):

W prawym górnym rogu kliknij Run. Gdy pojawi się pytanie o eksperyment, utwórz nowy eksperyment o nazwie visual-training i uruchom go. Azure najpierw uruchomi klaster, a dopiero potem sam potok, więc całość może potrwać 10 minut lub dłużej. Status widać w prawym górnym rogu, nad kanwą.
Wskazówka: W trakcie działania potoku możesz go śledzić na stronie Jobs - każde uruchomienie potoku figuruje tam jako zadanie, pogrupowane w ramach eksperymentu visual-training. Po zakończeniu wróć do potoku Visual Diabetes Training na stronie Designer.
Po zakończeniu działania modułu Normalize Data (sygnalizowanym ikoną ✅) zaznacz go i w panelu Settings, na karcie Outputs, w sekcji Transformed dataset, kliknij ikonę Visualize - zobaczysz statystyki i rozkłady przekształconych kolumn.
Zamknij wizualizacje modułu Normalize Data i poczekaj na zakończenie działania pozostałych modułów. Następnie zwizualizuj moduł Evaluate Model, aby zobaczyć metryki jakości modelu.
Uwaga: Ten model nie radzi sobie zbyt dobrze - częściowo dlatego, że przygotowanie danych ograniczyliśmy do minimum. Możesz spróbować różnych algorytmów klasyfikacji i porównać wyniki (możesz połączyć wyjścia modułu Split Data z wieloma modułami Train Model i Score Model, a także podłączyć drugi oceniony model do modułu Evaluate Model, żeby porównać oba wyniki obok siebie). Celem tego ćwiczenia jest po prostu zapoznanie Cię z interfejsem Designera, a nie wytrenowanie idealnego modelu!