Menu
CoddyTech

Bir Ağacı Okumak

Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 28 / 58.

Bir ağacın soruları okunabilir olduğundan, ne öğrendiğini kontrol edebilirsin. 5.1 cm uzunluğunda ve 1.6 cm genişliğindeki bir çiçeği iris ağacında takip et:

İris ağacı kutular olarak gösteriliyor ve bir yol turuncu renkte aydınlatılmış: Taç yaprağının genişliği 0.80 veya daha az mı? Hayır, 1.6. Taç yaprağının uzunluğu 4.95 veya daha az mı? Hayır, 5.1. Yol 2. sınıfta sona eriyor

export_text, aynı soruları metin olarak, her seviye için bir girintiyle yazdırır:

from sklearn.tree import export_text

print(export_text(tree, feature_names=["petal_length", "petal_width"]))

Şunu yazdırır:

|--- petal_width <= 0.80
|   |--- class: 0
|--- petal_width >  0.80
|   |--- petal_length <= 4.95
|   |   |--- class: 1
|   |--- petal_length >  4.95
|   |   |--- class: 2

Her satır yalnızca kendi yolundaki soruları yanıtlar. 2. sınıf virginica’dır; uzun ve geniş taç yapraklar için mantıklı bir yanıttır.

challenge icon

Görev

Orta

Bir peynir dükkânının karar ağacı, su oranına ve olgunlaşma haftasına göre bir peyniri taze, yumuşak ya da sert olarak sınıflandırır. Başlangıç kodu ağacı eğitir ve yeni bir peynirin bilgilerini okur.

  1. Ağacın sorularını özellik adlarıyla birlikte yazdırın.
  2. Kodu çalıştırın, soruları okuyun ve by_hand işlevini, if/else kullanarak aynı soruları sorup aynı yanıtı döndürecek şekilde tamamlayın.

Çıktıdan sonra, ağacın soft dediği bir peynir için:

By hand: soft
The tree: soft

Kendin dene

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text

# Her peynir için bir satır: su içeriği (%), olgunlaşma süresi (hafta) ve peynir türü
cheeses = pd.read_csv("cheeses.csv")
features = ["moisture_pct", "aged_weeks"]
X_train, X_test, y_train, y_test = train_test_split(cheeses[features], cheeses["cheese"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train)

# Adlandırılacak yeni bir peynir
moisture = int(input())
aged = int(input())
new_cheese = pd.DataFrame([[moisture, aged]], columns=features)

# Kodunuzu aşağıya yazın: ağacı yazdırın, ardından by_hand içinde ağacın verdiği yanıtı verin


def by_hand(moisture, aged):
    return "fresh"


# Aşağıdaki satırları değiştirmeyin
print("By hand:", by_hand(moisture, aged))
print("The tree:", tree.predict(new_cheese)[0])
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Denetimli Öğrenme bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi