|
|
1 month ago | |
|---|---|---|
| .. | ||
| solution | 7 months ago | |
| README.md | 1 month ago | |
| assignment.md | 7 months ago | |
| notebook.ipynb | 12 months ago | |
README.md
Rozpocznij pracę z Pythonem i Scikit-learn dla modeli regresji
Sketchnote autorstwa Tomomi Imura
Quiz przed wykładem
Ta lekcja dostępna jest w R!
Wstęp
W tych czterech lekcjach odkryjesz, jak budować modele regresji. Wkrótce omówimy, do czego służą. Ale zanim zaczniesz, upewnij się, że masz odpowiednie narzędzia do rozpoczęcia pracy!
W tej lekcji nauczysz się:
- Konfigurować swój komputer do lokalnych zadań uczenia maszynowego.
- Pracować z Jupyter Notebooks.
- Używać Scikit-learn, w tym instalować tę bibliotekę.
- Eksplorować regresję liniową na praktycznym ćwiczeniu.
Instalacje i konfiguracje
🎥 Kliknij powyższy obraz, aby zobaczyć krótki film pokazujący konfigurację komputera do ML.
-
Zainstaluj Pythona. Upewnij się, że Python jest zainstalowany na Twoim komputerze. Będziesz używać Pythona dla wielu zadań z zakresu analizy danych i uczenia maszynowego. Większość systemów komputerowych ma już zainstalowanego Pythona. Dostępne są również przydatne Pakiety do Kodowania w Pythonie, które ułatwiają konfigurację niektórym użytkownikom.
Jednak niektóre zastosowania Pythona wymagają jednej wersji oprogramowania, a inne innej wersji. Dlatego warto pracować w ramach środowiska wirtualnego.
-
Zainstaluj Visual Studio Code. Upewnij się, że masz zainstalowany Visual Studio Code na swoim komputerze. Postępuj zgodnie z instrukcjami, aby zainstalować Visual Studio Code w podstawowej instalacji. Będziesz używać Pythona w Visual Studio Code podczas tego kursu, więc warto się także zapoznać z tym, jak konfigurować Visual Studio Code do pracy z Pythonem.
Zapoznaj się z Pythonem, realizując tę kolekcję modułów nauki
🎥 Kliknij powyższy obraz, aby zobaczyć film: używanie Pythona wewnątrz VS Code.
-
Zainstaluj Scikit-learn, postępując zgodnie z tym instrukcjami. Ponieważ musisz mieć pewność, że używasz Pythona 3, zaleca się korzystanie ze środowiska wirtualnego. Uwaga, jeśli instalujesz tę bibliotekę na M1 Macu, są specjalne instrukcje na stronie powyżej.
-
Zainstaluj Jupyter Notebook. Będziesz musiał zainstalować pakiet Jupyter.
Twoje środowisko do pracy z ML
Będziesz używać notebooków do tworzenia kodu w Pythonie oraz tworzenia modeli uczenia maszynowego. Ten typ pliku jest popularnym narzędziem wśród analityków danych i można go rozpoznać po rozszerzeniu .ipynb.
Notebooki to interaktywne środowisko, które pozwala programiście zarówno pisać kod, jak i dodawać notatki oraz dokumentację wokół kodu, co jest bardzo przydatne w projektach eksperymentalnych lub badawczych.
🎥 Kliknij powyższy obraz, aby zobaczyć krótki film przedstawiający to ćwiczenie.
Ćwiczenie - praca z notebookiem
W tym folderze znajdziesz plik notebook.ipynb.
-
Otwórz notebook.ipynb w Visual Studio Code.
Serwer Jupyter uruchomi się z Pythonem 3+. Znajdziesz obszary notebooka, które można
uruchomić, fragmenty kodu. Możesz uruchomić blok kodu, wybierając ikonę wyglądającą jak przycisk odtwarzania. -
Wybierz ikonę
mdi dodaj trochę markdown, wpisując następujący tekst # Welcome to your notebook.Następnie dodaj trochę kodu Python.
-
Wpisz print('hello notebook') w bloku kodu.
-
Wybierz strzałkę, aby uruchomić kod.
Powinieneś zobaczyć wydrukowane zdanie:
hello notebook
Możesz przeplatać swój kod komentarzami, aby dokumentować notebook dla samego siebie.
✅ Pomyśl przez chwilę, jak bardzo różni się środowisko pracy web developera od środowiska naukowca danych.
Uruchomienie Scikit-learn
Teraz, gdy Python jest skonfigurowany w Twoim lokalnym środowisku, a Ty czujesz się pewnie z Jupyter Notebooks, zaznajomimy się również ze Scikit-learn (wymowa sci jak w science). Scikit-learn dostarcza obszerny API, który pomoże Ci wykonywać zadania ML.
Według ich strony internetowej, „Scikit-learn jest otwartoźródłową biblioteką do uczenia maszynowego, która wspiera uczenie nadzorowane i nienadzorowane. Zapewnia także różnorodne narzędzia do dopasowywania modeli, przetwarzania wstępnego danych, wyboru modelu i ewaluacji oraz wiele innych użytecznych funkcji.”
W tym kursie będziesz korzystać ze Scikit-learn i innych narzędzi, aby budować modele uczenia maszynowego wykonujące tzw. „tradycyjne zadania uczenia maszynowego”. Świadomie uniknęliśmy sieci neuronowych i głębokiego uczenia, gdyż są one lepiej omówione w naszym nadchodzącym kursie „AI dla początkujących”.
Scikit-learn ułatwia tworzenie modeli i ocenianie ich do użytku. Skupia się przede wszystkim na danych liczbowych i zawiera kilka gotowych zbiorów danych służących jako narzędzia do nauki. Obejmuje także gotowe modele do wypróbowania przez uczniów. Najpierw przyjrzyjmy się procesowi ładowania gotowych danych i użycia wbudowanego estymatora, aby stworzyć pierwszy model ML w Scikit-learn z podstawowymi danymi.
Ćwiczenie - Twój pierwszy notatnik Scikit-learn
Ten samouczek był inspirowany przykładem regresji liniowej na stronie Scikit-learn.
🎥 Kliknij powyższy obraz, aby zobaczyć krótki film przedstawiający to ćwiczenie.
W pliku notebook.ipynb powiązanym z tą lekcją wyczyść wszystkie komórki, klikając ikonę „kosza”.
W tej sekcji będziesz pracować z małym zbiorem danych o cukrzycy, który jest wbudowany w Scikit-learn do celów edukacyjnych. Wyobraź sobie, że chcesz przetestować leczenie dla pacjentów z cukrzycą. Modele uczenia maszynowego mogą pomóc ustalić, którzy pacjenci lepiej zareagują na leczenie na podstawie kombinacji różnych zmiennych. Nawet bardzo prosty model regresji, gdy zostanie zwizualizowany, może dostarczyć informacji o zmiennych, które pomogą Ci zorganizować teoretyczne badania kliniczne.
✅ Istnieje wiele typów metod regresji, a wybór zależy od pytania, na które chcesz odpowiedzieć. Jeśli chcesz przewidzieć prawdopodobny wzrost osoby w danym wieku, użyjesz regresji liniowej, ponieważ szukasz wartości liczbowej. Jeśli natomiast chcesz odkryć, czy dany typ kuchni powinien być uznany za wegański, szukasz przypisania do kategorii, więc użyjesz regresji logistycznej. O regresji logistycznej dowiesz się więcej później. Pomyśl trochę o pytaniach, które możesz zadać danym, i która z tych metod byłaby odpowiednia.
Zaczynajmy zadanie.
Import bibliotek
Do tego zadania zaimportujemy kilka bibliotek:
- matplotlib. To przydatne narzędzie do tworzenia wykresów, którego użyjemy do narysowania wykresu liniowego.
- numpy. numpy to przydatna biblioteka do obsługi danych liczbowych w Pythonie.
- sklearn. To biblioteka Scikit-learn.
Zaimportuj biblioteki, które pomogą Ci w zadaniach.
-
Dodaj importy, wpisując następujący kod:
import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selectionPowyżej importujesz skróty
matplotlib,numpyoraz importujeszdatasets,linear_modelimodel_selectionzsklearn.model_selectionsłuży do dzielenia danych na zestawy treningowe i testowe.
Zbiór danych o cukrzycy
Wbudowany zbiór danych o cukrzycy zawiera 442 próbki danych dotyczących cukrzycy, z 10 zmiennymi cechowymi, z których niektóre to:
- wiek: wiek w latach
- bmi: wskaźnik masy ciała
- bp: średnie ciśnienie krwi
- s1 tc: limfocyty T (rodzaj białych krwinek)
✅ Ten zbiór danych zawiera koncepcję „płci” jako zmiennej cechowej istotnej dla badań nad cukrzycą. Wiele medycznych zbiorów danych zawiera tego rodzaju binarną klasyfikację. Przemyśl, jak takie kategoryzacje mogą wykluczać pewne części populacji z leczenia.
Teraz załaduj dane X i y.
🎓 Pamiętaj, że to uczenie nadzorowane i potrzebujemy nazwanej zmiennej celowej 'y'.
W nowej komórce kodu załaduj zbiór danych o cukrzycy, wywołując load_diabetes(). Parametr return_X_y=True sygnalizuje, że X będzie macierzą danych, a y docelową zmienną regresji.
-
Dodaj polecenia print, aby pokazać kształt macierzy danych i jej pierwszy element:
X, y = datasets.load_diabetes(return_X_y=True) print(X.shape) print(X[0])To, co otrzymujesz jako odpowiedź, to krotka. Przypisujesz dwie pierwsze wartości krotki do
Xorazy. Dowiedz się więcej o krotkach.Widać, że dane zawierają 442 elementy uformowane w tablice po 10 elementów:
(442, 10) [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 -0.04340085 -0.00259226 0.01990842 -0.01764613]✅ Pomyśl trochę o relacji między danymi a celem regresji. Regresja liniowa przewiduje zależności między cechą X a zmienną docelową y. Czy w dokumentacji możesz znaleźć cel dla zbioru danych o cukrzycy? Co ten zbiór danych pokazuje, biorąc pod uwagę ten cel?
-
Następnie wybierz część tego zbioru do wykreślenia, wybierając 3 kolumnę zbioru. Możesz to zrobić, używając operatora
:, aby wybrać wszystkie wiersze, a następnie wybierając 3 kolumnę za pomocą indeksu (2). Możesz również przekształcić dane w tablicę 2D — wymaganą do wykresu — używającreshape(n_rows, n_columns). Jeśli jeden z parametrów to -1, odpowiadający mu wymiar jest obliczany automatycznie.X = X[:, 2] X = X.reshape((-1,1))✅ W każdym momencie wypisz dane, aby sprawdzić ich kształt.
-
Teraz, gdy masz dane gotowe do wykresu, sprawdź, czy maszyna może pomóc ustalić logiczny podział między liczbami w tym zbiorze. Aby to zrobić, musisz podzielić zarówno dane (X), jak i cel (y) na zestawy testowe i treningowe. Scikit-learn ma prosty sposób na to — możesz podzielić dane testowe w wyznaczonym punkcie.
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) -
Teraz jesteś gotowy, aby wytrenować swój model! Załaduj model regresji liniowej i wytrenuj go na swoich zestawach treningowych X i y przy użyciu
model.fit():model = linear_model.LinearRegression() model.fit(X_train, y_train)✅
model.fit()to funkcja, którą zobaczysz w wielu bibliotekach ML, np. w TensorFlow -
Następnie wykonaj predykcję za pomocą danych testowych, używając funkcji
predict(). To posłuży do narysowania linii między grupami danychy_pred = model.predict(X_test) -
Teraz czas pokazać dane na wykresie. Matplotlib jest bardzo przydatnym narzędziem do tego zadania. Stwórz wykres punktowy wszystkich danych testowych X i y, a następnie użyj predykcji, aby narysować linię w najbardziej odpowiednim miejscu, między grupami danych modelu.
plt.scatter(X_test, y_test, color='black') plt.plot(X_test, y_pred, color='blue', linewidth=3) plt.xlabel('Scaled BMIs') plt.ylabel('Disease Progression') plt.title('A Graph Plot Showing Diabetes Progression Against BMI') plt.show()✅ Pomyśl trochę o tym, co się tutaj dzieje. Prosta linia przebiega przez wiele małych punktów danych, ale co dokładnie robi? Czy widzisz, jak powinieneś móc użyć tej linii, aby przewidzieć, gdzie nowy, niewidziany punkt danych powinien się znaleźć w odniesieniu do osi y wykresu? Spróbuj opisać praktyczne zastosowanie tego modelu.
Gratulacje, zbudowałeś swój pierwszy model regresji liniowej, utworzyłeś na jego podstawie predykcję i wyświetliłeś ją na wykresie!
🚀Wyzwanie
Wykreśl inną zmienną z tego zbioru danych. Podpowiedź: zmodyfikuj tę linię: X = X[:,2]. Biorąc pod uwagę cel tego zbioru danych, co możesz odkryć na temat postępu cukrzycy jako choroby?
Quiz po wykładzie
Przegląd i samodzielna nauka
W tym samouczku pracowałeś z prostą regresją liniową, a nie z jednoliniową lub wieloliniową regresją liniową. Przeczytaj trochę o różnicach między tymi metodami lub obejrzyj ten film
Przeczytaj więcej na temat pojęcia regresji i zastanów się, na jakie pytania można odpowiedzieć za pomocą tej techniki. Skorzystaj z tego samouczka, aby pogłębić swoją wiedzę.
Zadanie
Zastrzeżenie: Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Choć dążymy do dokładności, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub niedokładności. Oryginalny dokument w jego języku źródłowym należy uznawać za autorytatywne źródło. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.






