Trenowanie modelu uczenia maszynowego

Ukończone

Trenowanie modelu uczenia maszynowego obejmuje dopasowanie algorytmu uczenia maszynowego do danych treningowych w celu określenia akceptowalnie dokładnej funkcji, którą można zastosować do jej funkcji i obliczyć odpowiednie etykiety. Może to wydawać się pomysłem koncepcyjnie prostym; ale rzeczywisty proces trenowania modelu, który generuje dokładne przewidywania na temat nowych danych, a nie tylko danych, z którymi został wytrenowany, może być trudny i obejmuje iteracyjne podejście wielokrotnego trenowania i oceniania modeli przy użyciu wielu algorytmów i parametrów.

Dane trenowania i walidacji

Typowym podejściem podczas trenowania modelu uczenia maszynowego jest losowe podzielenie danych na podzestawy na potrzeby trenowania i walidacji. Następnie możesz użyć zestawu danych trenowania, aby dopasować algorytm i wytrenować model, a następnie przetestować, jak dobrze model działa przy użyciu danych walidacji, które wstrzymane. Pomaga to zapewnić, że model dobrze uogólnia — innymi słowy generuje dokładne przewidywania na potrzeby trenowania, na których nie został wytrenowany.

Uwaga

Modele, które dobrze przewidują dane, na których zostały wytrenowane, ale które nie działają dobrze z nowymi danymi, są opisane jako nadmiernie dopasowane do danych treningowych.

Zazwyczaj należy wytrenować model z około 70% danych i wstrzymać około 30% na potrzeby walidacji.

Algorytmy uczenia maszynowego

Istnieje wiele algorytmów uczenia maszynowego, pogrupowanych w różne typy algorytmów na podstawie rodzaju problemu uczenia maszynowego, który należy rozwiązać. Większość struktur uczenia maszynowego obejmuje wiele algorytmów regresji i klasyfikacji oraz algorytmy dla nienadzorowanych problemów z uczeniem maszynowym, takich jak klastrowanie.

Po zidentyfikowaniu typu problemu, który chcesz utworzyć model do rozwiązania, możesz wybrać spośród wielu algorytmów tego typu. W każdym typie może istnieć wiele algorytmów do wyboru, często opartych na różnych rodzajach operacji matematycznych. Na przykład w zestawie algorytmów klasyfikacji istnieją algorytmy następującego rodzaju:

  • Algorytmy regresji logistycznej , które iteracyjnie stosują funkcje logistyczne, aby obliczyć wartość z zakresu od 0 do 1, która reprezentuje prawdopodobieństwo dla każdej możliwej klasy, i zoptymalizować współczynniki funkcji na podstawie różnic między przewidywaną klasą a rzeczywistą znaną wartością etykiety.
  • Funkcje oparte na drzewie, które definiują drzewo decyzyjne, w którym rozważana jest pojedyncza funkcja, i na podstawie jej wartości, jest brana pod uwagę inna funkcja itd., dopóki nie zostanie określona odpowiednia etykieta klasy.
  • Algorytmy zespołu , które łączą wiele technik w celu znalezienia optymalnej ogólnej funkcji predykcyjnej.

Algorytm "najlepszy" zależy od Twoich danych i zwykle wymaga iteracyjnej próby i błędu w celu ustalenia.

Hiperparametry

Parametry algorytmu uczenia maszynowego to funkcje danych (i etykiety), na których są trenowane. Ponadto większość algorytmów uczenia maszynowego zapewnia hiperparametry , których można użyć do wpływania na sposób działania algorytmu. Hiperparametry umożliwiają kontrolowanie elementów, takich jak poziom losowości, na który chcesz zezwolić w modelu (więc dobrze uogólnia, ale nadal generuje akceptowalnie dokładne przewidywania), liczbę iteracji wykonanych w celu znalezienia optymalnego modelu (dzięki czemu można uniknąć nadmiernego dopasowania i optymalizacji czasu trenowania), liczby gałęzi rozważanych w modelu drzewa, i inne czynniki specyficzne dla algorytmu.

Dopasowywanie modelu

Aby w rzeczywistości wytrenować model, musisz dopasować algorytm do danych. Określona składnia i formaty danych używane w tym celu mogą się różnić w różnych strukturach uczenia maszynowego, ale zasada jest zawsze taka sama. W przypadku nadzorowanych uczenia maszynowego można dopasować algorytm do funkcji opartych na znanych etykietach. W przypadku nienadzorowanego uczenia maszynowego należy podać funkcje i algorytm próbuje oddzielić je od dyskretnych klastrów.

W poniższym przykładzie pokazano kod używany do inicjowania trenowania modelu regresji logistycznej przy użyciu platformy Spark MLlib. Dane treningowe są dostarczane jako ramka danych, w której etykiety znajdują się w kolumnie wartości całkowitych, a odpowiednie funkcje są reprezentowane jako pojedynczy wektor (tablica) wartości. W tym przykładzie określono również dwie hiperparametry (maxIter i regParam).

from pyspark.ml.classification import LogisticRegression

lr = LogisticRegression(labelCol="label", featuresCol="features", maxIter=10, regParam=0.3)
model = lr.fit(training_df)