|
|
3 weeks ago | |
|---|---|---|
| .. | ||
| solution | 8 months ago | |
| README.md | 3 weeks ago | |
| assignment.md | 8 months ago | |
| notebook.ipynb | 1 year ago | |
README.md
Zacznij z Pythonem i Scikit-learn dla modeli regresji
Notatka szkicowa autorstwa Tomomi Imura
Quiz przed wykładem
Ta lekcja jest dostępna również w R!
Wprowadzenie
W tych czterech lekcjach odkryjesz, jak budować modele regresyjne. Wkrótce omówimy, do czego one służą. Ale zanim zaczniesz cokolwiek robić, upewnij się, że masz właściwe narzędzia, by rozpocząć proces!
W tej lekcji nauczysz się jak:
- Skonfigurować komputer do lokalnych zadań uczenia maszynowego.
- Pracować z Jupyter Notebooks.
- Korzystać ze Scikit-learn, w tym instalacji.
- Poznać regresję liniową przez ćwiczenie praktyczne.
Instalacje i konfiguracje
🎥 Kliknij powyższy obraz, aby obejrzeć 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 do wielu zadań związanych z data science i uczeniem maszynowym. Większość systemów komputerowych ma już zainstalowanego Pythona. Są też dostępne przydatne pakiety do kodowania w Pythonie, które ułatwiają instalację niektórym użytkownikom.
Niektóre zastosowania Pythona wymagają jednak różnych wersji oprogramowania. Dlatego korzystne jest pracowanie w ramach wirtualnego środowiska.
-
Zainstaluj Visual Studio Code. Upewnij się, że masz zainstalowany Visual Studio Code na swoim komputerze. Postępuj według tych instrukcji, by zainstalować Visual Studio Code - podstawowa instalacja. W tym kursie będziesz używać Pythona w Visual Studio Code, więc warto nauczyć się, jak konfigurować Visual Studio Code do pracy z Pythonem.
Zapoznaj się z Pythonem, pracując z tym zbiorem modułów Learn
🎥 Kliknij powyższy obraz, by obejrzeć film: użycie Pythona w VS Code.
-
Zainstaluj Scikit-learn, postępując zgodnie z tym instrukcjami. Ponieważ musisz używać Pythona 3, zalecane jest korzystanie z wirtualnego środowiska. Jeśli instalujesz tę bibliotekę na Macu M1, na powyższej stronie są specjalne wskazówki.
-
Zainstaluj Jupyter Notebook. Będziesz musiał zainstalować paczkę Jupyter.
Twoje środowisko do tworzenia ML
Będziesz korzystać z notebooków do tworzenia kodu w Pythonie i budowania modeli uczenia maszynowego. Ten typ pliku jest powszechnym narzędziem dla data scientistów i można go rozpoznać po rozszerzeniu .ipynb.
Notebooki to interaktywne środowiska, które pozwalają programiście kodować oraz dodawać notatki i dokumentację do kodu, co jest bardzo pomocne w projektach eksperymentalnych lub badawczych.
🎥 Kliknij powyższy obraz, by obejrzeć krótki film z tym ćwiczeniem.
Ćwiczenie - praca z notebookiem
W tym folderze znajdziesz plik notebook.ipynb.
-
Otwórz notebook.ipynb w Visual Studio Code.
Uruchomi się serwer Jupyter z Pythonem 3+. Znajdziesz obszary notebooka, które możesz
uruchomić, fragmenty kodu. Możesz wykonać blok kodu, wybierając ikonę przypominającą przycisk „play”. -
Wybierz ikonę
mdi dodaj trochę markdownu, wstawiając tekst # Witaj w swoim notebooku.Następnie dodaj trochę kodu Pythona.
-
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, by samodokumentować notebook.
✅ Pomyśl przez chwilę, jak bardzo różni się środowisko pracy programisty webowego od środowiska data scientist.
Start ze Scikit-learn
Teraz, gdy Python jest skonfigurowany w twoim lokalnym środowisku, a ty czujesz się komfortowo z Jupyter Notebooks, poznajmy równie dobrze Scikit-learn (wymowa sci jak w „science”). Scikit-learn oferuje obszerny API, które pomaga wykonać zadania ML.
Według ich strony internetowej, "Scikit-learn to biblioteka open source do uczenia maszynowego wspierająca uczenie nadzorowane i nienadzorowane. Dostarcza także narzędzia do dopasowywania modeli, przetwarzania danych, wyboru i oceny modeli oraz wiele innych użyteczności."
W tym kursie będziesz używać Scikit-learn i innych narzędzi do budowania modeli uczenia maszynowego w tzw. „tradycyjnych” zadaniach uczenia maszynowego. Świadomie uniknęliśmy sieci neuronowych i głębokiego uczenia, ponieważ są one lepiej omówione w naszym nadchodzącym kursie „AI dla początkujących”.
Scikit-learn ułatwia budowanie modeli i ich ewaluację. Skupia się głównie na danych liczbowych i zawiera kilka gotowych zestawów danych do użytku edukacyjnego. Obejmuje też wbudowane modele do przetestowania przez uczniów. Poznajmy proces ładowania gotowych danych i używania wbudowanego estymatora, aby stworzyć Twój pierwszy model ML w Scikit-learn na podstawie podstawowych danych.
Ćwiczenie - twój pierwszy notebook Scikit-learn
Ten samouczek został zainspirowany przykładem regresji liniowej na stronie Scikit-learn.
🎥 Kliknij powyższy obraz, aby obejrzeć krótki film z tym ćwiczeniem.
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 zestawem danych o cukrzycy, który jest wbudowany w Scikit-learn do celów edukacyjnych. Wyobraź sobie, że chcesz przetestować leczenie dla pacjentów cukrzycowych. Modele uczenia maszynowego mogą pomóc określić, którzy pacjenci zareagują lepiej na terapię, na podstawie kombinacji zmiennych. Nawet bardzo podstawowy model regresji, gdy jest wizualizowany, może pokazać informacje o zmiennych, które pomogłyby Ci zaplanować teoretyczne badania kliniczne.
✅ Istnieje wiele metod regresji, a której użyjesz zależy od pytania, na które chcesz odpowiedzieć. Jeśli chcesz przewidzieć prawdopodobny wzrost osoby w danym wieku, użyjesz regresji liniowej, bo szukasz wartości liczbowej. Jeśli chcesz sprawdzić, czy dana kuchnia powinna być uznana za wegańską, interesuje Cię przypisanie do kategorii, więc użyjesz regresji logistycznej. O regresji logistycznej dowiesz się więcej później. Pomyśl chwilę o pytaniach, które możesz zadać danym, i która z tych metod byłaby bardziej odpowiednia.
Zaczynajmy zadanie.
Import bibliotek
Do tego zadania zaimportujemy kilka bibliotek:
- matplotlib. To przydatne narzędzie do tworzenia wykresów. Użyjemy go do stworzenia wykresu liniowego.
- numpy. numpy to przydatna biblioteka do obsługi danych numerycznych 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
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 cech, z których niektóre to:
- wiek: wiek w latach
- bmi: wskaźnik masy ciała
- bp: średnie ciśnienie krwi
- s1 tc: komórki T (rodzaj białych krwinek)
✅ Ten zbiór danych zawiera koncepcję „płci” jako zmiennej cechowej ważnej w badaniach nad cukrzycą. Wiele medycznych zbiorów zawiera tego rodzaju binarne klasyfikacje. Pomyśl trochę, jak takie kategoryzacje mogą wykluczać części populacji z leczenia.
Teraz załaduj dane X i y.
🎓 Pamiętaj, to jest uczenie nadzorowane i potrzebujemy nazwanego celu 'y'.
W nowej komórce kodu załaduj zbiór danych o cukrzycy, wywołując load_diabetes(). Parametr return_X_y=True oznacza, że X będzie macierzą danych, a y celem regresji.
-
Dodaj kilka poleceń 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 w odpowiedzi, to krotka. Przypisujesz dwie pierwsze wartości krotki do zmiennych
Xiy. Dowiedz się więcej o krotkach.Widzisz, że dane zawierają 442 elementy ułożone w tablice o 10 elementach:
(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ą celu y. Czy potrafisz znaleźć cel dla zbioru danych o cukrzycy w dokumentacji? Co ten zbiór danych demonstruje, biorąc pod uwagę cel?
-
Następnie wybierz część tego zbioru, którą wyświetlisz, wybierając 3 kolumnę zbioru. Zrób to, używając operatora
:, by wybrać wszystkie wiersze, a potem wybierz trzecią kolumnę za pomocą indeksu (2). Możesz także przekształcić dane do tablicy 2D - jak wymagane do wykresu - używającreshape(n_rows, n_columns). Jeśli jeden z parametrów to -1, odpowiedni wymiar jest wyliczany automatycznie.X = X[:, 2] X = X.reshape((-1,1))✅ W każdej chwili wypisz dane, aby sprawdzić ich kształt.
-
Teraz, gdy masz dane gotowe do wykresu, zobacz, czy maszyna może pomóc określić logiczny podział danych w zbiorze. Aby to zrobić, musisz podzielić dane (X) i cel (y) na zestawy testowe i treningowe. Scikit-learn oferuje prosty sposób na to; możesz podzielić swoje dane testowe w określonym miejscu.
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) -
Teraz jesteś gotów do trenowania modelu! Wczytaj model regresji liniowej i wytrenuj go na swoich zestawach treningowych X i y, używając
model.fit():model = linear_model.LinearRegression() model.fit(X_train, y_train)✅
model.fit()to funkcja, którą zobaczysz w wielu bibliotekach ML, jak TensorFlow -
Następnie stwórz predykcję używając danych testowych, korzystając z funkcji
predict(). Posłuży ona do narysowania linii pomiędzy grupami danychy_pred = model.predict(X_test) -
Czas pokazać dane na wykresie. Matplotlib to bardzo przydatne narzędzie do tego zadania. Stwórz wykres rozrzutu wszystkich danych testowych X i y, a następnie użyj predykcji, aby narysować linię w najbardziej odpowiednim miejscu, pomiędzy grupowaniami 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 chwilę, co tu się dzieje. Prosta linia przechodzi przez wiele małych punktów danych, ale co ona właściwie robi? Czy widzisz, jak możesz użyć tej linii, by przewidzieć, gdzie powinien pasować nowy, niewidziany punkt danych w relacji do osi y wykresu? Spróbuj ubrać w słowa praktyczne zastosowanie tego modelu.
Gratulacje, stworzyłeś pierwszy model regresji liniowej, wygenerowałeś prognozę i wyświetliłeś ją na wykresie!
🚀Wyzwanie
Narysuj wykres innej zmiennej z tego zbioru danych. Podpowiedź: edytuj tę linię: X = X[:,2]. Biorąc pod uwagę cel tego zbioru, co możesz odkryć na temat postępu cukrzycy jako choroby?
Quiz po wykładzie
Powtórka & Samodzielna nauka
W tym tutorialu pracowałeś z prostą regresją liniową, a nie regresją jednowymiarową lub wieloraką. Przeczytaj trochę o różnicach między tymi metodami lub obejrzyj ten film
Przeczytaj więcej na temat koncepcji regresji i zastanów się, 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.






