Jak wdrożyć regresję liniową w uczeniu maszynowym?



W tym artykule omówiono koncepcję regresji liniowej w uczeniu maszynowym z różnymi terminologiami i przykładem użycia do implementacji regresji liniowej.

Skupienie obraca się wokół zmiennych wejściowych i wyjściowych przy użyciu algorytmu do przewidywania wyniku. Jeśli pojawi się nowa zmienna wejściowa. Algorytm regresji liniowej w programie to nadzorowana technika uczenia się, mająca na celu przybliżenie funkcji mapowania w celu uzyskania najlepszych prognoz. W tym artykule dowiemy się o regresji liniowej w uczeniu maszynowym. Na tym blogu omówiono następujące tematy.

Co to jest regresja?

Głównym celem regresji jest zbudowanie wydajnego modelu do przewidywania atrybutów zależnych z zestawu zmiennych atrybutów. Problem regresji występuje, gdy zmienna wyjściowa jest wartością rzeczywistą lub ciągłą, tj. Wynagrodzenie, waga, powierzchnia itp.





Możemy również zdefiniować regresję jako średnią statystyczną używaną w zastosowaniach takich jak mieszkalnictwo, inwestowanie itp. Służy ona do przewidywania relacji między zmienną zależną a zbiorem zmiennych niezależnych. Przyjrzyjmy się różnym typom technik regresji.

jak skonfigurować atom dla Pythona

przykład regresji liniowej w uczeniu maszynowym - edureka

Rodzaje regresji

Poniżej przedstawiono typy regresji.



  1. Prosta regresja liniowa
  2. Regresja wielomianowa
  3. Regresja wektora wsparcia
  4. Regresja drzewa decyzyjnego
  5. Losowa regresja lasu

Prosta regresja liniowa

Jedną z najbardziej interesujących i powszechnych technik regresji jest prosta regresja liniowa. W tym przypadku przewidujemy wynik zmiennej zależnej w oparciu o zmienne niezależne, związek między zmiennymi jest liniowy. Stąd słowo regresja liniowa.

Regresja wielomianowa

W tej technice regresji przekształcamy pierwotne cechy w cechy wielomianowe danego stopnia, a następnie wykonujemy na nich regresję.

Regresja wektora wsparcia

Dla regresji lub SVR, identyfikujemy hiperpłaszczyznę z maksymalnym marginesem, tak aby maksymalna liczba punktów danych mieściła się w tych marginesach. Jest dość podobny do algorytmu klasyfikacji maszyn wektorów nośnych.



Regresja drzewa decyzyjnego

DO może być używany zarówno do regresji, jak i . W przypadku regresji używamy algorytmu ID3 (Iterative Dichotomiser 3), aby zidentyfikować węzeł podziału poprzez zmniejszenie odchylenia standardowego.

Losowa regresja lasu

W losowej regresji lasu zestawiamy prognozy kilku regresji drzew decyzyjnych. Teraz, gdy wiemy już o różnych typach regresji, przyjrzyjmy się szczegółowo prostej regresji liniowej.

Co to jest regresja liniowa?

Prosta regresja liniowa to technika regresji, w której zmienna niezależna ma liniową zależność ze zmienną zależną. Linia prosta na schemacie jest linią najlepiej dopasowaną. Głównym celem prostej regresji liniowej jest rozważenie podanych punktów danych i wykreślenie linii o najlepszym dopasowaniu, aby najlepiej dopasować model.

Zanim przejdziemy do działania algorytmu regresji liniowej, przyjrzyjmy się kilku ważnym terminologiom związanym z prostą regresją liniową.

Terminologie regresji liniowej

Przed przejściem do algorytmu regresji liniowej należy zapoznać się z następującymi terminologiami.

Funkcja kosztu

Najlepsza linia dopasowania może być oparta na równaniu liniowym podanym poniżej.

  • Przewidywana zmienna zależna jest oznaczona przez Y.
  • Linia, która styka się z osią y, jest oznaczona przecięciem b0.
  • bjedento nachylenie linii, x reprezentuje zmienne niezależne, które określają prognozę Y.
  • Błąd w wynikowej prognozie jest oznaczony przez e.

Funkcja kosztu zapewnia najlepsze możliwe wartości b0oraz bjedenaby najlepiej dopasować linię dla punktów danych. Robimy to, przekształcając ten problem w problem minimalizacji, aby uzyskać najlepsze wartości b0oraz bjeden. W tym problemie błąd jest minimalizowany między wartością rzeczywistą a wartością przewidywaną.

Powyższą funkcję wybieramy, aby zminimalizować błąd. Wyrównujemy różnicę błędów do kwadratu i sumujemy błąd we wszystkich punktach danych, czyli podział między całkowitą liczbą punktów danych. Następnie uzyskana wartość zapewnia uśredniony błąd kwadratowy dla wszystkich punktów danych.

Jest również znany jako MSE (średni kwadratowy błąd) i zmieniamy wartości b0oraz bjedentak, aby wartość MSE była ustalona na minimum.

Gradientowe zejście

Kolejną ważną terminologią pozwalającą zrozumieć regresję liniową jest gradientowe zejście. Jest to metoda aktualizacji b0oraz bjedenwartości w celu zmniejszenia MSE. Ideą tego jest ciągłe iterowanie b0oraz bjedenwartości, dopóki nie zredukujemy MSE do minimum.

Aby zaktualizować b0oraz bjeden, bierzemy gradienty z funkcji kosztu. Aby znaleźć te gradienty, bierzemy pochodne cząstkowe względem b0oraz bjeden. Te pochodne cząstkowe są gradientami i służą do aktualizacji wartości b0oraz bjeden.

Mniejszy wskaźnik uczenia się zbliża się do minimum, ale zajmuje więcej czasu i w przypadku większego wskaźnika uczenia się. Jest to krótsze, ale istnieje szansa, że ​​wartość minimalna przekroczy wartość. Teraz, gdy skończyliśmy z terminologią regresji liniowej, przyjrzyjmy się kilku zaletom i wadom regresji liniowej w uczeniu maszynowym.

Zalety i wady

Zalety Niedogodności
Regresja liniowa działa wyjątkowo dobrze w przypadku danych, które można rozdzielić liniowoZałożenie liniowości między zmiennymi zależnymi i niezależnymi
Łatwiejsze we wdrożeniu, zinterpretowaniu i efektywnym szkoleniuCzęsto jest dość podatny na hałas i nadmierne dopasowanie
Całkiem dobrze radzi sobie z nadmiernym dopasowaniem, używając technik redukcji wymiarów, regularyzacji i walidacji krzyżowejRegresja liniowa jest dość wrażliwa na wartości odstające
Kolejną zaletą jest ekstrapolacja poza określony zbiór danychJest podatny na współliniowość

Przypadki użycia regresji liniowej

  • Prognozowanie sprzedaży

  • Ocena ryzyka

  • Aplikacje mieszkaniowe do przewidywania cen i innych czynników

    rzutowanie double na int java
  • Aplikacje finansowe do przewidywania cen akcji, wyceny inwestycji itp.

Podstawową ideą regresji liniowej jest znalezienie związku między zmiennymi zależnymi i niezależnymi. Służy do uzyskania najlepszej linii dopasowania, która przewidywałaby wynik z najmniejszym błędem. Możemy użyć regresji liniowej w prostych sytuacjach życiowych, takich jak przewidywanie wyników SAT w odniesieniu do liczby godzin nauki i innych decydujących czynników.

Mając to na uwadze, przyjrzyjmy się przypadkowi użycia.

Przykład zastosowania - implementacja regresji liniowej

Proces przebiega w następujących krokach:

  1. Ładowanie danych
  2. Eksploracja danych
  3. Krojenie danych
  4. Trenuj i dziel dane
  5. Wygeneruj model
  6. Oceń dokładność

Przyjrzyjmy się szczegółom każdego z kroków w celu wdrożenia regresji liniowej.

1. Ładowanie danych

Możemy zacząć od podstawowego zestawu danych dotyczących cukrzycy, który jest już obecny w module zestawów danych sklearn (scikit-learn), aby rozpocząć naszą podróż z regresją liniową.

from sklearn import datasets disease = datasets.load_diabetes () print (disease)

Wynik:

2. Eksploracja danych

Po zakończeniu ładowania danych możemy rozpocząć eksplorację, po prostu sprawdzając etykiety za pomocą następującego kodu.

print (disease.keys ())

Wynik:

Powyższy kod daje wszystkie etykiety ze zbioru danych, po czym możemy wyciąć dane, abyśmy mogli narysować linię na końcu. Użyjemy również wszystkich punktów danych, na razie wycinamy kolumnę 2 z danych.

theano vs tensorflow vs keras
import numpy as np disease_X = disease.data [:, np.newaxis, 2] print (disease_X)

Wynik:

Po tym kroku podzielimy dane na zestaw pociągowy i zbiór testowy.

3. Dzielenie danych

choroba_X_train = choroba_X [: - 30] choroba_X_test = choroba_X [-20:] choroba_Y_train = choroba.target [: - 30] choroba_Y_test = choroba.cel [-20:]

Kolejna część dotyczy wygenerowania modelu, który będzie obejmował import linear_model ze sklearn.

4. Generowanie modelu

from sklearn import linear_model reg = linear_model.LinearRegression () reg.fit (disease_X_train, disease_Y_train) y_predict = reg.predict (disease_X_test)

Aby ocenić dokładność modelu, użyjemy średniokwadratowego błędu z metody uczenia scikit.

5. Ocena

dokładność = mean_squared_error (disease_Y_test, y_predict,) print (dokładność) weights = reg.coef_ intercept = reg.intercept_ print (wagi, przecięcie)

Wynik:

Aby wyjaśnić, jak punkty danych wyglądają na wykresie, nakreślmy również wykresy.

import matplotlib.pyplot as plt plt.scatter (disease_X_test, disease_Y_test) plt.plot (disease_X_test, y_predict) plt.show ()

Wynik:

Aby uzyskać dokładniejszy model w tym scenariuszu, możemy użyć całych danych zamiast tylko kolumny 2. Dałoby to dokładność pokazaną poniżej:

# dokonaj niewielkiej zmiany w powyższym kodzie i usuń wykreślany kod, aby uniknąć błędów disease_X = disease.data

Wynik:

To prowadzi nas do końca tego artykułu, w którym dowiedzieliśmy się o regresji liniowej w uczeniu maszynowym. Mam nadzieję, że wszystko, co zostało Ci udostępnione w tym samouczku, jest dla Ciebie jasne.

Jeśli uważasz, że ten artykuł „Regresja liniowa w uczeniu maszynowym” jest odpowiedni, zapoznaj się z zaufana firma zajmująca się edukacją online z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie.

Jeśli napotkasz jakieś pytania, nie krępuj się zadawać je w sekcji komentarzy „Regresja liniowa w uczeniu maszynowym”, a nasz zespół z przyjemnością odpowie.