Samouczek dotyczący platformy Azure: przewidywanie cen gazu przy użyciu usługi Azure Machine Learning Studio
Opublikowany: 2022-03-11Co by było, gdybyś mógł przewidzieć, czy wybrane przez Ciebie akcje wzrosną, czy spadną w ciągu następnego miesiąca? A może twoja ulubiona drużyna piłkarska wygra lub przegra następny mecz? Jak możesz dokonywać takich prognoz? Być może uczenie maszynowe może dostarczyć części odpowiedzi. Cortana, nowa cyfrowa asystentka osobista obsługiwana przez Bing, dostarczana z systemem Windows Phone 8.1, dokładnie przewidziała 15 z 16 meczów podczas Mistrzostw Świata FIFA 2014.
W tym samouczku dotyczącym platformy Azure omówimy funkcje i możliwości usługi Azure Machine Learning, rozwiązując jeden z problemów, z którymi borykamy się na co dzień.
Z punktu widzenia programisty uczenia maszynowego problemy można podzielić na dwie grupy – te, które można rozwiązać standardowymi metodami, oraz takie, których nie da się rozwiązać standardowymi metodami. Niestety większość rzeczywistych problemów życiowych należy do drugiej grupy. W tym momencie w grę wchodzi uczenie maszynowe. Podstawową ideą jest wykorzystanie maszyn do znalezienia znaczących wzorców w danych historycznych i wykorzystanie ich do rozwiązania problemu.
Problem
Ceny gazu to prawdopodobnie jedna z pozycji w budżecie większości ludzi. Stały wzrost lub spadek może również wpływać na ceny innych artykułów spożywczych i usług. Istnieje wiele czynników, które mogą wpływać na ceny gazu, od warunków pogodowych, przez decyzje polityczne i opłaty administracyjne, po czynniki całkowicie nieprzewidywalne, takie jak klęski żywiołowe czy wojny.
Plan tego samouczka dotyczącego uczenia maszynowego platformy Azure polega na zbadaniu niektórych dostępnych danych i znalezieniu korelacji, które można wykorzystać do utworzenia modelu prognozowania.
Azure Machine Learning Studio
Azure Machine Learning Studio to oparte na sieci Web zintegrowane środowisko programistyczne (IDE) służące do opracowywania eksperymentów z danymi. Jest ściśle powiązany z pozostałymi usługami w chmurze platformy Azure, co upraszcza tworzenie i wdrażanie modeli i usług uczenia maszynowego.
Tworzenie eksperymentu
Tworzenie przykładu uczenia maszynowego składa się z pięciu podstawowych kroków. Każdy z tych kroków przeanalizujemy, opracowując własny model predykcyjny cen gazu.
Uzyskiwanie danych
Zbieranie danych jest jednym z najważniejszych etapów tego procesu. Trafność i przejrzystość danych to podstawa tworzenia dobrych modeli predykcyjnych. Azure Machine Learning Studio udostępnia szereg przykładowych zestawów danych. Kolejną wspaniałą kolekcję zestawów danych można znaleźć na archive.ics.uci.edu/ml/datasets.html.
Po zebraniu danych musimy wgrać je do Studio za pomocą ich prostego mechanizmu przesyłania danych:
Po przesłaniu możemy podejrzeć dane. Poniższy obrazek pokazuje część naszych danych, które właśnie przesłaliśmy. Naszym celem jest tutaj przewidzenie ceny w kolumnie oznaczonej E95.
Następnym krokiem jest utworzenie nowego eksperymentu poprzez przeciągnięcie i upuszczenie modułów z panelu po lewej stronie do obszaru roboczego.
Wstępne przetwarzanie danych
Wstępne przetwarzanie dostępnych danych polega na dostosowaniu dostępnych danych do Twoich potrzeb. Pierwszym modułem, którego tu użyjemy, są „Statystyki opisowe”. Oblicza dane statystyczne z dostępnych danych. Oprócz modułu „Statystyki opisowe” jednym z powszechnie stosowanych modułów jest „Wyczyść brakujące dane”. Celem tego kroku jest nadanie znaczenia brakującym (null) wartościom poprzez zastąpienie ich inną wartością lub całkowite ich usunięcie.
Definiowanie funkcji
Kolejnym modułem zastosowanym na tym etapie naszego samouczka jest moduł „Wybór funkcji na podstawie filtra”. Ten moduł określa cechy zestawu danych, które są najbardziej odpowiednie dla wyników, które chcemy przewidzieć. W tym przypadku, jak widać na poniższym obrazku, cztery najważniejsze cechy wartości „E95” to „EDG BS”, „Oil”, „USD/HRK” i „EUR/USD”.
Ponieważ „EDG BS” jest kolejną wartością „wyjściową”, której nie można używać do prognozowania, wybierzemy tylko dwie z pozostałych ważnych cech - tj. cenę ropy i kurs waluty w kolumnie USD/HRK.
Przykładowy zbiór danych po przetworzeniu pokazano poniżej:

Wybór i zastosowanie algorytmu
Naszym kolejnym krokiem jest podzielenie dostępnych danych za pomocą modułu „Split”. Pierwsza część danych (w naszym przypadku 80%) zostanie użyta do trenowania modelu, a reszta do oceny trenowanego modelu.
Poniższe kroki to najważniejsze kroki w całym procesie uczenia maszynowego platformy Azure. Moduł „Model pociągu” akceptuje dwa parametry wejściowe. Pierwsza to surowe dane treningowe, a druga to algorytm uczenia. Tutaj użyjemy algorytmu „Regresji liniowej”. Dane wyjściowe modułu „Train Model” są jednym z parametrów wejściowych modułu „Score Model”. Druga to reszta dostępnych danych. Score Model dodaje nową kolumnę do naszego zestawu danych, Scored Labels. Wartości w kolumnie „Scored Labels” są bliższe wartościom odpowiadających im wartości E95, gdy zastosowany algorytm uczenia działa dobrze z dostępnymi danymi.
Moduł Evaluate Model daje nam ocenę wytrenowanego modelu wyrażoną w wartościach statystycznych. Jeśli spojrzymy na „Współczynnik determinacji”, możemy stwierdzić, że istnieje około 80% szans na przewidzenie prawidłowej ceny przy użyciu tego modelu.
Teraz warto spróbować skorzystać z modułu „Regresja sieci neuronowej”. Będziemy musieli dodać nowe moduły „Model pociągu” i „Model punktacji” i podłączyć wyjście do istniejącego modułu „Ocena modelu”.
Moduł „Regresja sieci neuronowej” wymaga nieco więcej konfiguracji. Ponieważ jest to najważniejszy moduł całego eksperymentu, to na nim powinniśmy skupić nasze wysiłki, ulepszając i eksperymentując z ustawieniami i doborem odpowiedniego algorytmu uczenia się jako całości.
W tym przypadku moduł Evaluate daje nam porównanie naszych dwóch trenowanych modeli. Ponownie, na podstawie współczynnika determinacji widzimy, że sieci neuronowe zapewniają nieco mniej dokładne prognozy.
W tym momencie możemy zapisać wybrane wytrenowane modele do wykorzystania w przyszłości.
Kiedy mamy wytrenowany model, możemy przystąpić do tworzenia „Eksperymentu scoringowego”. Można to zrobić, tworząc nowy eksperyment od podstaw lub przy użyciu pomocnika usługi Azure Machine Learning Studio. Po prostu wybierz wytrenowany model i kliknij „Utwórz eksperyment scoringowy”. Nowe moduły, których tutaj potrzebujemy, to „Wejście usługi sieciowej” i „Wyjście usługi sieciowej”. Dodamy moduł „Kolumny projektu”, aby wybrać nasze wartości wejściowe i wyjściowe. Wartości wejściowe to Ropa i USD/HRK, a dane wyjściowe są wartościami przewidywanymi w kolumnie „Scored Labels” danych wyjściowych „Score Model”.
Poniższy rysunek przedstawia nasz eksperyment oceniania po tych kilku korektach i po połączeniu odpowiednio modułów „Web service input” i „Web service output”.
W tym momencie pojawia się kolejna fajna funkcja pomocnika. Dzięki usłudze „Publish Web Service” możesz utworzyć prostą usługę internetową hostowaną w infrastrukturze chmury Azure.
Przewidywanie nowych danych
Na koniec możemy przetestować naszą usługę sieciową przewidywania za pomocą prostego formularza testowego.
Wniosek
W tym prostym samouczku dotyczącym uczenia maszynowego pokazaliśmy, jak stworzyć w pełni funkcjonalną usługę internetową do przewidywania. Azure Machine Learning Studio zintegrowane z platformą Azure może być bardzo potężnym narzędziem do tworzenia eksperymentów na danych. Oprócz Machine Learning Studio istnieją inne rozwiązania do uczenia maszynowego, takie jak Orange i Tiberious. Bez względu na to, jakie środowisko programistyczne lubisz, zachęcam do eksploracji uczenia maszynowego i odnalezienia swojego wewnętrznego analityka danych.