2026. május 29., péntek

Tanulás jóslás AI, lineális regresszióval

 tanítást és a jóslást is. A futás végén látni fogod a modell pontosságát (ami ennél az adathalmaznál általában 100% körüli), és az egyedi tesztvirágod besorolását is!
A Scikit-learn használata szinte mindig ugyanazt az 5 alapvető lépést követi, függetlenül attól, hogy milyen bonyolult a feladat:

Lépés Függvény Mit csinál? 
1. Adat-előkészítés train_test_split() Szétválasztja az adatokat, hogy legyen mivel ellenőrizni a modellt. 
2. Modell inicializálás KNeighborsClassifier() Kiválasztod az algoritmust (ez lehetne Lineáris Regresszió, Random Forest stb. is). 
3. Tanítás .fit(X_train, y_train) A gép megkeresi az összefüggéseket az adatokban. 
4. Jóslás .predict(X_test) Az új vagy teszt adatokra tippeket ad a modell. 
5. Kiértékelés accuracy_score() Megnézzük, hány százalékban talált be a gép. 
---------
# 1. CSOMAG TELEPÍTÉSE (Pyodide / online környezetekhez)
# Webes környezetben a hivatalos 'scikit-learn' nevet kell letölteni
try:
    import micropip
    await micropip.install('scikit-learn')
    print("A scikit-learn sikeresen telepítve a böngészőben!")
except ImportError:
    # Ha normál számítógépes Pythonban futtatod, ez a rész fut le automatikusan
    print("Normál Python környezet észlelve, folytatás...")

# --- Innen indul a tényleges gépi tanulási program ---

# 2. A szükséges modulok importálása
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, classification_report

# 3. Az adathalmaz betöltése
# Az Iris adatbázis 150 nőszirom virág adatait tartalmazza
iris = load_iris()
X = iris.data  # Jellemzők (pl. szirom hossza, szélessége)
y = iris.target  # Célváltozó (a virág pontos fajtája numeric kódként: 0, 1 vagy 2)

# 4. Adatok felosztása tanító (train) és tesztelő (test) halmazra
# A minta 80%-án tanul a gép, a maradék 20%-on teszteljük a tudását
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# 5. A gépi tanulási modell kiválasztása és létrehozása
# A KNN (K-Legközelebbi Szomszéd) algoritmust használjuk
model = KNeighborsClassifier(n_neighbors=3)

# 6. A modell betanítása (Fittelés)
model.fit(X_train, y_train)

# 7. Jóslás (Predikció) a teszt adatokon
y_pred = model.predict(X_test)

# 8. Az eredmények kiértékelése
accuracy = accuracy_score(y_test, y_pred)

print("\n=========================================")
print("         MODELL KIÉRTÉKELÉSE")
print("=========================================")
print(f"A modell pontossága (Accuracy): {accuracy * 100:.2f}%\n")
print("Részletes osztályozási jelentés:")
print(classification_report(y_test, y_pred, target_names=iris.target_names))

# +1: Jóslás egy teljesen új, ismeretlen virágra
# Megadunk 4 tulajdonságot centiméterben (csészelevél hossz/szél, sziromlevél hossz/szél)
uj_virag = [[5.1, 3.5, 1.4, 0.2]]
josolt_osztaly = model.predict(uj_virag)
virag_neve = iris.target_names[josolt_osztaly[0]]

print("=========================================")
print("         ÚJ VIRÁG JÓSLÁSA")
print("=========================================")
print(f"A megadott adatok: {uj_virag[0]}")
print(f"A gép szerint a virág fajtája:  {virag_neve.upper()} ")
print("=========================================")

-----------------

A bonyolult Python feladatok hatékony megoldása a probléma logikus részekre bontásán és a megfelelő algoritmus kiválasztásán múlik. A komplex problémákat érdemes kisebb, tesztelhető lépésekre (függvényekre) osztani, és kihasználni a nyelv beépített adatszerkezeteit.A hatékony kódoláshoz és hibakereséshez az alábbi strukturált lépéseket javasolt követni:Strukturálás: Bontsa a feladatot különálló, önállóan is működő modulokra vagy függvényekre.Könyvtárak használata: Számítási vagy adatelemzési feladatoknál használjon bevált csomagokat (pl. numpy vagy pandas).Hibakezelés: Használjon try-except blokkokat a váratlan kivételek kezelésére.

Nincsenek megjegyzések:

Megjegyzés küldése