Chcesz zacząć od uczenie maszynowe?
Stworzyłem prosty i łatwy samouczek dla zupełnie początkujących. Wspólnie omówimy podstawowe kroki uczenia modelu uczenia maszynowego.
Wyjaśniając kolejne kroki uczenia modelu, podam również bardzo podstawowy przykład problemu uczenia maszynowego. Jeśli więc chcesz śledzić dalej, możesz pobrać ten przykładowy zestaw danych z tego link.
To tylko przykładowy zestaw danych, który pomoże Ci rozpocząć pracę z uczeniem maszynowym.
Mamy 18 wartości osób w różnym wieku i płci, które mają zdefiniowaną ulubioną muzykę. Korzystając z cech „wiek” i „płeć” spróbujemy odgadnąć, jaki gatunek muzyki jest ich ulubionym.
Uwaga: 1 i 0 są przypisane do płci jako kobiety i mężczyzny w tym zbiorze danych.
Jeśli jednak nie chcesz iść za przykładem, jest to również w porządku. Wyjaśnię szczegółowo wszystkie te kroki. Więc zanurzmy się!
Pierwsze rzeczy, które należy wiedzieć
Zanim przejdziemy do kolejnych kroków uczenia modelu, wyjaśnijmy kilka kwestii. Uczenie maszynowe jest sztuczna inteligencja dyscyplina, która koncentruje się na opracowywaniu algorytmów, które mogą uczyć się na danych.
W tym celu modele uczenia maszynowego są szkolone na zbiorze danych, który uczy model, jak dokonywać poprawnych prognoz lub klasyfikacje na świeżych, nieznanych wcześniej danych.
Czym więc są te modele? A model uczenia maszynowego jest podobny do przepisu używanego przez komputer do generowania prognoz danych lub wyborów.
Model, podobnie jak przepis, postępuje zgodnie z zestawem instrukcji w celu oceny danych i generowania prognoz lub osądów na podstawie wzorców znalezionych w danych. Im więcej danych model jest szkolony, tym dokładniejsze stają się jego prognozy.
Jakie rodzaje modeli możemy trenować?
Zobaczmy, jakie są podstawowe modele uczenia maszynowego.
- Regresja liniowa: model, który przewiduje ciągłą zmienną docelową na podstawie jednej lub więcej zmiennych wejściowych.
- Sieci neuronowe: sieć połączonych węzłów, które mogą nauczyć się wykrywać skomplikowane wzorce w danych.
- Drzewa decyzyjne: podejście do podejmowania decyzji oparte na łańcuchu rozgałęzionych instrukcji if-else.
- Grupowanie: zestaw modeli grupujących porównywalne punkty danych na podstawie podobieństwa.
- Regresja logistyczna: model problemów klasyfikacji binarnej, w których zmienna docelowa ma dwie potencjalne wartości.
- Drzewa decyzyjne: podejście do podejmowania decyzji oparte na łańcuchu rozgałęzionych instrukcji if-else.
- Losowy las: model zespołowy składający się z wielu drzew decyzyjnych. Są one często używane w aplikacjach do klasyfikacji i regresji.
- K-najbliżsi sąsiedzi: model, który przewiduje zmienną docelową przy użyciu k-najbliższych punktów danych w zbiorze uczącym.
W zależności od naszego problemu i zestawu danych decydujemy, który model uczenia maszynowego najbardziej pasuje do naszej sytuacji. Wrócimy jednak do tego później. Teraz zacznijmy trenować nasz model. Mam nadzieję, że już pobrałeś zestaw danych jeśli chcesz pójść za naszym przykładem.
Również polecam mieć Notebook Jupyter zainstalowany na komputerze lokalnym i używać go do projektów uczenia maszynowego.
1: Zdefiniuj problem
Pierwszy etap w trenowanie uczenia maszynowego Model definiuje problem do rozwiązania. Wiąże się to z wyborem zmiennych, które chcesz prognozować (znanych jako zmienna docelowa) oraz zmiennych, które zostaną użyte do wygenerowania tych prognoz (znanych jako cechy lub predyktory).
Powinieneś także zdecydować, jakiego rodzaju problem uczenia maszynowego próbujesz rozwiązać (klasyfikacja, regresja, klastrowanie itd.)
Rodzaj zastosowanego modelu będzie zależał od rodzaju problemu uczenia maszynowego, który zamierzasz rozwiązać. Klasyfikacja, regresja i grupowanie to trzy podstawowe kategorie wyzwania związane z uczeniem maszynowym. Gdy chcesz przewidzieć zmienną kategoryczną, na przykład, czy wiadomość e-mail jest spamem, użyj klasyfikacji.
Kiedy chcesz prognozować zmienną ciągłą, taką jak cena domu, korzystasz z regresji. Grupowanie służy do łączenia porównywalnych elementów danych w oparciu o ich podobieństwa.
Jeśli spojrzymy na nasz przykład; naszym wyzwaniem jest określenie preferowanego stylu muzycznego danej osoby na podstawie jej płci i wieku. W tym przykładzie wykorzystamy zestaw danych 18 osób oraz informacje o ich wieku, płci i ulubionym stylu muzycznym.
2. Przygotuj dane
Po określeniu problemu należy przygotować dane do uczenia modelu. Wiąże się to z czyszczeniem i przetwarzaniem danych. Abyśmy mogli upewnić się, że jest w formacie, który algorytm uczenia maszynowego można używać.
Może to obejmować działania takie jak usuwanie brakujących wartości, przekształcanie danych kategorycznych na dane liczbowe oraz skalowanie lub normalizowanie danych w celu zapewnienia, że wszystkie cechy mają tę samą skalę.
Na przykład w ten sposób usuwasz brakujące wartości:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
Mała uwaga: w wierszu o „import pandas as pd",
importujemy bibliotekę Pandas i przypisujemy jej alias „pd”, aby ułatwić późniejsze odwoływanie się do jej funkcji i obiektów w kodzie.
Pandas to dobrze znany moduł Pythona do manipulacji i analizy danych, szczególnie podczas pracy z danymi strukturalnymi lub tabelarycznymi.
W naszym przykładzie określania gatunków muzycznych. Najpierw zaimportujemy zestaw danych. Nazwałem go music.csv, jednak możesz nazwać go tak, jak chcesz.
Aby przygotować dane do trenowania modelu uczenia maszynowego, podzieliliśmy je na atrybuty (wiek i płeć) oraz cele (gatunek muzyczny).
Dodatkowo podzielimy dane na zestawy treningowe i testowe 80:20, aby ocenić wydajność naszego modelu i uniknąć nadmiernego dopasowania.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. Wybierz model uczenia maszynowego.
Po przygotowaniu danych musisz wybrać model uczenia maszynowego, który jest odpowiedni do Twojego zadania.
Istnieje kilka algorytmów do wyboru, takich jak drzewa decyzyjne, regresja logistyczna, maszyny wektorów nośnych, sieci neuronowe i inne. Wybrany algorytm będzie zależał od rodzaju problemu, na który próbujesz odpowiedzieć, rodzaju posiadanych danych i potrzeb w zakresie wydajności.
W tym przykładzie użyjemy klasyfikatora drzewa decyzyjnego, ponieważ pracujemy z problemem klasyfikacji (przewidywanie danych kategorycznych).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Oto wizualizacja działania klasyfikatora drzewa decyzyjnego:
4. Trenuj modelkę
Możesz rozpocząć szkolenie modelu po wybraniu akceptowalnego algorytmu uczenia maszynowego. Wiąże się to z wykorzystaniem wcześniej wygenerowanych danych do nauczenia algorytmu, jak przewidywać świeże, wcześniej niewidoczne dane.
Algorytm zmodyfikuje swoje parametry wewnętrzne podczas uczenia, aby zminimalizować różnicę między przewidywanymi wartościami a rzeczywistymi wartościami w danych treningowych. Ilość danych wykorzystywanych do uczenia, jak również specyficzne parametry algorytmu, mogą mieć wpływ na dokładność wynikowego modelu.
W naszym konkretnym przykładzie, teraz, gdy zdecydowaliśmy się na metodę, możemy trenować nasz model z danymi treningowymi.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Oceń model
Po przeszkoleniu modelu należy go ocenić na podstawie nowych danych, aby upewnić się, że jest dokładny i niezawodny. Wiąże się to z testowaniem modelu z danymi, które nie były wykorzystywane podczas uczenia i porównywaniem jego prognozowanych wartości z rzeczywistymi wartościami w danych testowych.
Przegląd ten może pomóc w zidentyfikowaniu wszelkich wad modelu, takich jak nadmierne lub niedopasowanie, i może prowadzić do wszelkich wymaganych dopracowań.
Na podstawie danych testowych ocenimy poprawność naszego modelu.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
Wynik dokładności nie jest na razie taki zły. 🙂 Aby poprawić swój wynik dokładności, zawsze możesz dokładniej wyczyścić dane lub wypróbować różne modele uczenia maszynowego, aby zobaczyć, który z nich daje najwyższy wynik.
6. Dostosuj model
Jeśli wydajność modelu nie jest wystarczająca, można go dostroić, zmieniając różne parametry algorytmu lub całkowicie eksperymentując z nowymi algorytmami.
Ta procedura może obejmować eksperymentowanie z alternatywnymi szybkościami uczenia się, modyfikowanie ustawień regularyzacji lub zmianę liczby lub rozmiaru warstw ukrytych w sieci neuronowej.
7. Użyj modelu
Gdy będziesz zadowolony z wydajności modelu, możesz zacząć go używać do generowania prognoz na podstawie nowych danych.
Może to wiązać się z wprowadzaniem nowych danych do modelu i wykorzystaniem wyuczonych parametrów modelu do generowania prognoz na podstawie tych danych lub integracją modelu z szerszą aplikacją lub systemem.
Możemy użyć naszego modelu do generowania prognoz na podstawie nowych danych, gdy jesteśmy zadowoleni z ich dokładności. Możesz wypróbować różne wartości płci i wieku.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Zamotać
Zakończyliśmy szkolenie naszego pierwszego modelu uczenia maszynowego.
Mam nadzieję, że okazało się to przydatne. Możesz teraz wypróbować różne modele uczenia maszynowego, takie jak regresja liniowa lub las losowy.
Istnieje wiele zestawów danych i wyzwań Kaggle jeśli chcesz poprawić swoje kodowanie i zrozumienie uczenia maszynowego.
Dodaj komentarz