Výuka IT

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í:

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:

  1. Importujte tree ze sklearn.
  2. Vytvořte proměnnou features (vstupní data X), která bude obsahovat seznam seznamů s váhou a povrchem.
  3. Vytvořte proměnnou labels (výstupní data y), kde 0 bude Jablko a 1 bude Pomeranč.
  4. Vytvořte a natrénujte DecisionTreeClassifier.
  5. 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č)