gépi tanulási algoritmus
Kiejtés
- IPA: [ ˈɡeːpi ˈtɒnulaːʃi ˈɒlɡoritmuʃ]
Főnév
A gépi tanulás (Machine Learning, ML) algoritmusai különböző problémák megoldására alkalmasak, mint például az adatok osztályozása, regresszió, klaszterezés vagy éppen mintázatok felismerése. Az ML algoritmusok három fő kategóriába sorolhatók:
- Felkügyelt tanulás (Supervised Learning)
- Felkügyelet nélküli tanulás (Unsupervised Learning)
- Megerősítéses tanulás (Reinforcement Learning)
Az alábbiakban bemutatom a leggyakrabban használt gépi tanulási algoritmusokat, példákkal együtt.
1. Felügyelt tanulási algoritmusok
Ezek az algoritmusok címkézett adatokkal dolgoznak. Két fő típus: osztályozás (classification) és regresszió (regression).
1.1. Lineáris regresszió
Egyszerű regressziós algoritmus, amely egyenes vonallal modellezi az adatok közötti kapcsolatot.
from sklearn.linear_model import LinearRegression
import numpy as np
# Adatok
X = np.array([[1], [2], [3], [4], [5]]) # Független változó
y = np.array([2, 4, 5, 4, 5]) # Függő változó
# Modell betanítása
model = LinearRegression()
model.fit(X, y)
# Előrejelzés
predicted = model.predict(np.array([[6]]))
print("Előrejelzett érték:", predicted)
1.2. Döntési fa (Decision Tree)
Egy fa-alapú osztályozási algoritmus.
from sklearn.tree import DecisionTreeClassifier
# Adatok
X = [[0, 0], [1, 1], [1, 0], [0, 1]] # Bemeneti változók
y = [0, 1, 1, 0] # Célváltozó (osztályok)
# Modell létrehozása és tanítása
model = DecisionTreeClassifier()
model.fit(X, y)
# Osztályozás
prediction = model.predict([[1, 0]])
print("Osztályozás eredménye:", prediction)
1.3. Támogatóvektor-gép (Support Vector Machine, SVM)
Egy hatékony algoritmus osztályozásra és regresszióra, amely egy hipersíkot használ az adatok elválasztására.
from sklearn.svm import SVC
# Adatok
X = [[0, 0], [1, 1], [1, 0], [0, 1]]
y = [0, 1, 1, 0]
# Modell létrehozása és tanítása
model = SVC(kernel='linear')
model.fit(X, y)
# Előrejelzés
prediction = model.predict([[0.8, 0.8]])
print("Osztályozás eredménye:", prediction)
2. Felügyelet nélküli tanulási algoritmusok
Ezek az algoritmusok nem címkézett adatokkal dolgoznak. Céljuk az adatok közötti struktúra vagy mintázat feltárása.
2.1. K-means klaszterezés
Az adatok csoportokba rendezése a távolságuk alapján.
from sklearn.cluster import KMeans
import numpy as np
# Adatok
data = np.array([[1, 2], [2, 3], [3, 4], [8, 8], [9, 9], [10, 10]])
# Modell
kmeans = KMeans(n_clusters=2, random_state=0)
kmeans.fit(data)
# Klaszterek és címkék
print("Klaszter középpontok:", kmeans.cluster_centers_)
print("Címkék:", kmeans.labels_)
2.2. Főkomponens-analízis (PCA)
Dimenziócsökkentési algoritmus.
from sklearn.decomposition import PCA
import numpy as np
# Adatok
data = np.array([[2, 3, 4], [3, 4, 5], [5, 6, 7], [8, 9, 10]])
# PCA
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(data)
print("Csökkentett dimenziójú adatok:\n", reduced_data)
3. Megerősítéses tanulási algoritmusok
Ezek az algoritmusok a környezetből érkező visszacsatolás (jutalom vagy büntetés) alapján tanulnak. Ezek implementációjára leggyakrabban a gym
könyvtárat használják.
Példa: Egyszerű Q-learning
Egy egyszerű megerősítéses tanulási példa egy 2D rácsban történő navigációval.
import numpy as np
# Q-táblázat inicializálása
q_table = np.zeros((5, 5, 4)) # Állapotok: 5x5 rács, Akciók: 4 (fel, le, bal, jobb)
# Példa: Q-learning iteráció
state = (0, 0) # Kezdeti állapot
action = 2 # Példa akció (balra)
reward = -1 # Példa jutalom
next_state = (0, 1) # Következő állapot
# Q-érték frissítése
alpha = 0.1 # Tanulási ráta
gamma = 0.9 # Jövőbeli jutalom súlya
q_table[state][action] = q_table[state][action] + alpha * (
reward + gamma * np.max(q_table[next_state]) - q_table[state][action]
)
print("Q-táblázat frissítve:", q_table[state])
4. Neurális hálózatok
A neurális hálózatok mély tanulási (Deep Learning) algoritmusok alapjai.
4.1. Egyszerű neurális hálózat (Keras)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import numpy as np
# Adatok
X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y = np.array([0, 1, 1, 0]) # XOR probléma
# Modell létrehozása
model = Sequential([
Dense(4, input_dim=2, activation='relu'),
Dense(1, activation='sigmoid')
])
# Modell fordítása és tanítása
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(X, y, epochs=100, verbose=0)
# Előrejelzés
prediction = model.predict([[1, 0]])
print("Előrejelzés:", prediction)
Fordítások
- gépi tanulási algoritmus - Értelmező szótár (MEK)
- gépi tanulási algoritmus - Etimológiai szótár (UMIL)
- gépi tanulási algoritmus - Szótár.net (hu-hu)
- gépi tanulási algoritmus - DeepL (hu-de)
- gépi tanulási algoritmus - Яндекс (hu-ru)
- gépi tanulási algoritmus - Google (hu-en)
- gépi tanulási algoritmus - Helyesírási szótár (MTA)
- gépi tanulási algoritmus - Wikidata
- gépi tanulási algoritmus - Wikipédia (magyar)