Szeretne elkezdeni gépi tanulás?
Készítettem egy egyszerű és könnyű oktatóanyagot teljesen kezdőknek. Együtt áttekintjük a gépi tanulási modell betanításának alapvető lépéseit.
A modell betanításának lépéseinek egyenkénti ismertetése során egy nagyon alapvető példát is hozok egy gépi tanulási problémára is. Tehát, ha szeretné követni, letöltheti ezt a mintaadatkészletet innen link.
Ez csak egy mintaadatkészlet, amely segít a gépi tanulás megkezdésében.
Különböző korú és nemű emberek 18 értékét ismerjük meg, akiknek kedvenc zenéjük van meghatározva. Az „életkor” és a „nem” jellemzőit felhasználva megpróbáljuk kitalálni, melyik zenei műfaj a kedvencük.
Megjegyzés: Ebben az adatkészletben az 1 és a 0 a nemekhez női és férfiként van hozzárendelve.
Viszont ha nem akarod követni a példát, az is teljesen rendben van. Mindezeket a lépéseket részletesen elmagyarázom. Szóval, merüljünk bele!
Az első tudnivalók
Mielőtt belemennénk a modellképzés lépéseibe, tisztázzunk néhány pontot. A gépi tanulás egy mesterséges intelligencia olyan tudományág, amely az adatokból tanulni tudó algoritmusok fejlesztésére összpontosít.
Ennek érdekében a gépi tanulási modelleket egy adathalmazra képezik, amely megtanítja a modellt helyes előrejelzések készítésére ill osztályozási friss, korábban ismeretlen adatokon.
Szóval mik ezek a modellek? A gépi tanulási modell hasonló ahhoz a recepthez, amelyet a számítógép adat-előrejelzések vagy -választások generálására használ.
A modell, akárcsak a recept, utasításokat követ az adatok kiértékeléséhez, és az adatokban talált minták alapján előrejelzéseket vagy ítéleteket generál. Minél több adatra tanítják a modellt, annál pontosabbak az előrejelzései.
Milyen modelleket képezhetünk?
Lássuk, melyek az alapvető gépi tanulási modellek.
- Lineáris regresszió: olyan modell, amely egy vagy több bemeneti változóból előrejelzi a folyamatos célváltozót.
- Neurális hálózatok: összekapcsolt csomópontok hálózata, amely megtanulja felismerni az adatok bonyolult mintáit.
- Döntési fák: elágazó if-else állítások láncolatára épülő döntéshozatali megközelítés.
- Klaszterezés: olyan modellek halmaza, amelyek hasonlóság alapján csoportosítják az összehasonlítható adatpontokat.
- Logisztikai regresszió: bináris osztályozási problémák modellje, amelyben a célváltozónak két potenciális értéke van.
- Döntési fák: elágazó if-else állítások láncolatára épülő döntéshozatali megközelítés.
- Random Forest: számos döntési fából álló együttes modell. Gyakran használják osztályozási és regressziós alkalmazásokhoz.
- K-Legközelebbi Szomszédok: olyan modell, amely megjósolja a célváltozót a betanítási halmazban található k legközelebbi adatpontok felhasználásával.
Problémánktól és adatkészletünktől függően eldöntjük, hogy melyik gépi tanulási modell felel meg leginkább a helyzetünknek. Erre azonban később még visszatérünk. Most pedig kezdjük el a modellünk képzését. Remélem, már letöltötted a adatbázisba ha szeretnéd követni a példánkat.
Továbbá azt javaslom, hogy legyen Jupyter Jegyzetfüzet telepítve a helyi gépre, és a gépi tanulási projektjeihez használja.
1: Határozza meg a problémát
Az első szakaszban gépi tanulás képzése modell határozza meg a megoldandó problémát. Ez azt jelenti, hogy ki kell választani az előre jelezni kívánt változókat (úgynevezett célváltozó), valamint azokat a változókat, amelyeket az előrejelzések generálásához fognak használni (jellemzők vagy előrejelzők).
Azt is el kell döntenie, hogy milyen típusú gépi tanulási problémát kíván megoldani (osztályozás, regresszió, klaszterezés és így tovább), és milyen típusú adatokra lesz szüksége a modell betanításához.
Az alkalmazott modell típusát a megoldani kívánt gépi tanulási probléma típusa határozza meg. Az osztályozás, a regresszió és a klaszterezés a három elsődleges kategória gépi tanulási kihívások. Ha egy kategorikus változót szeretne megjósolni, például azt, hogy egy e-mail spam-e vagy sem, használja az osztályozást.
Ha egy folytonos változót szeretne előrejelezni, például egy ház árát, akkor regressziót használ. A klaszterezést arra használják, hogy összehasonlítható adatelemeket állítsanak össze a közös jellemzőik alapján.
Ha a példánkat nézzük; kihívásunk az, hogy meghatározzuk egy személy által kedvelt zenei stílust neme és életkora alapján. Ehhez a példához egy 18 fős adatkészletet használunk, valamint az életkorukra, nemükre és kedvenc zenei stílusukra vonatkozó információkat.
2. Készítse elő az adatokat
Miután meghatározta a problémát, elő kell készítenie az adatokat a modell betanításához. Ez az adatok tisztítását és feldolgozását jelenti. Így biztosíthatjuk, hogy olyan formátumban legyen, amely a gépi tanulási algoritmus lehet használni.
Ez magában foglalhat olyan tevékenységeket, mint például a hiányzó értékek törlése, a kategorikus adatok numerikus adatokká való átalakítása, valamint az adatok skálázása vagy normalizálása annak érdekében, hogy minden jellemző azonos skálán legyen.
Például így törölheti a hiányzó értékeket:
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())
Kis megjegyzés: Az o sorbanimport pandas as pd",
importáljuk a Pandas könyvtárat, és hozzárendeljük a „pd” álnevet, hogy a későbbiekben könnyebben hivatkozhassunk funkcióira és objektumaira a kódban.
A Pandas a Python jól ismert modulja az adatok manipulálására és elemzésére, különösen akkor, ha strukturált vagy táblázatos adatokkal dolgozik.
Példánkban a zenei műfajok meghatározására. Először importáljuk az adatkészletet. Zene.csv-nek neveztem el, de elnevezheted, ahogy akarod.
A gépi tanulási modell betanításához szükséges adatok előkészítéséhez attribútumokra (életkor és nem) és célokra (zenei műfaj) bontjuk.
Ezenkívül az adatokat 80:20 arányú képzési és tesztelési készletekre osztjuk fel, hogy felmérjük modellünk teljesítményét és elkerüljük a túlillesztést.
# 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. Válasszon gépi tanulási modellt.
Az adatok elkészítése után ki kell választania a feladatának megfelelő gépi tanulási modellt.
Számos algoritmus közül választhatunk, például döntési fák, logisztikai regresszió, támogató vektorgépek, neurális hálózatok és mások. A választott algoritmust a megválaszolni kívánt probléma típusa, a birtokában lévő adatok típusa és a teljesítményigénye határozza meg.
Ebben a példában egy döntési fa osztályozót fogunk használni, mert egy osztályozási problémával dolgozunk (kategorikus adatok előrejelzése).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Az alábbiakban bemutatjuk, hogyan működik a döntési fa osztályozó:
4. Tanítsa meg a modellt
Akkor kezdheti el a modell betanítását, ha kiválasztott egy elfogadható gépi tanulási algoritmust. Ez magában foglalja a korábban generált adatok felhasználását az algoritmus oktatására, hogyan készítsen előrejelzéseket friss, korábban nem látott adatokra.
Az algoritmus a betanítás során módosítja a belső paramétereit, hogy minimalizálja a különbséget az előre jelzett és a betanítási adatok tényleges értékei között. A betanításhoz felhasznált adatok mennyisége, valamint az algoritmus specifikus paraméterei mind hatással lehetnek a kapott modell pontosságára.
Konkrét példánkban, most, hogy eldöntöttük a módszert, betaníthatjuk a modellünket a betanítási adatokkal.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Értékelje a modellt!
A modell betanítása után ki kell értékelni az új adatok alapján, hogy megbizonyosodjon arról, hogy pontos és megbízható. Ez azt jelenti, hogy a modellt olyan adatokkal kell tesztelni, amelyeket nem használtak fel a betanítás során, és a kivetített értékeket össze kell hasonlítani a tesztadatok tényleges értékeivel.
Ez az áttekintés segíthet a modellhibák, például a túl- vagy alulszerelés azonosításában, és bármilyen szükséges finomhangoláshoz vezethet.
A tesztelési adatok felhasználásával felmérjük modellünk helyességét.
# 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)
A pontossági pontszám egyelőre nem olyan rossz. 🙂 A pontossági pontszám javítása érdekében bármikor megtisztíthatja az adatokat, vagy kipróbálhatja a különböző gépi tanulási modelleket, hogy megtudja, melyik adja a legmagasabb pontszámot.
6. Finomhangolja a modellt
Ha a modell hatékonysága nem elégséges, akkor különféle algoritmusparaméterek módosításával vagy új algoritmusokkal való teljes kísérletezéssel finomhangolható.
Ez az eljárás magában foglalhatja az alternatív tanulási sebességekkel való kísérletezést, a legalizálási beállítások módosítását vagy a neurális hálózat rejtett rétegeinek számának vagy méretének megváltoztatását.
7. Használja a modellt
Ha elégedett a modell teljesítményével, elkezdheti használni azt az új adatokkal kapcsolatos előrejelzések generálására.
Ez azt jelentheti, hogy friss adatokat kell betáplálni a modellbe, és felhasználni a modell tanult paramétereit az adatokra vonatkozó előrejelzések generálására, vagy a modell integrálását egy szélesebb alkalmazásba vagy rendszerbe.
Modellünket felhasználhatjuk új adatokra vonatkozó előrejelzések generálására, miután elégedettek vagyunk a pontosságával. Kipróbálhatja a nem és az életkor különböző értékeit.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Wrap Up
Befejeztük első gépi tanulási modellünk betanítását.
Remélem hasznosnak találtad. Most kipróbálhat különböző gépi tanulási modelleket, például a lineáris regressziót vagy a véletlenszerű erdőt.
Számos adatkészlet és kihívás van benne Kaggle ha javítani szeretné a kódolást és a gépi tanulás megértését.
Hagy egy Válaszol