Procvičování: Klasifikace ovoce
V tomto cvičení si vyzkoušíte vytvořit jednoduchý model strojového učení, který se naučí rozeznávat
ovoce.
Nebudeme načítat data ze souboru, ale vytvoříme si je ručně přímo v kódu.
Zadání
Cílem je vytvořit program, který pozná, zda se jedná o Jablko nebo
Pomeranč na základě dvou vlastností:
- Váha (v gramech)
- Povrch (0 = hladký, 1 = hrbolatý)
Máme tato trénovací data:
| Váha (g) |
Povrch |
Ovoce |
| 140 |
1 (hladký) |
Jablko |
| 130 |
1 (hladký) |
Jablko |
| 150 |
0 (hrbolatý) |
Pomeranč |
| 170 |
0 (hrbolatý) |
Pomeranč |
Úkoly:
- Importujte
tree ze sklearn.
- Vytvořte proměnnou
features (vstupní data X), která bude obsahovat seznam seznamů s
váhou a povrchem.
- Vytvořte proměnnou
labels (výstupní data y), kde 0 bude Jablko a 1 bude Pomeranč.
- Vytvořte a natrénujte
DecisionTreeClassifier.
- Zkuste předpovědět, co je ovoce, které má 160g a je hrbolaté (0).
Řešení
Zobrazit řešení
from sklearn import tree
# 1. Příprava dat
# [váha, povrch] ... povrch: 1=hladký, 0=hrbolatý
# Jablka jsou lehčí a hladká, Pomeranče těžší a hrbolaté
features = [[140, 1], [130, 1], [150, 0], [170, 0]]
# 0 = Jablko, 1 = Pomeranč
labels = [0, 0, 1, 1]
# 2. Vytvoření modelu
clf = tree.DecisionTreeClassifier()
# 3. Trénink
clf = clf.fit(features, labels)
# 4. Předpověď pro nové ovoce (160g, hrbolatý)
print(clf.predict([[160, 0]]))
# Očekávaný výsledek: [1] (tedy Pomeranč)