Menu
CoddyTech

Özellik Önem Derecesi

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

Ağaç hangi özelliklere dayanır? feature_importances_, her özelliğin sorularının yaptığı sıralamadaki payını verir ve payların toplamı 1 eder:

Derinliği 3 olan bir iris ağacı için yatay çubuklar: taç yaprağı genişliği 0.58, taç yaprağı uzunluğu 0.42, çanak yaprağı genişliği 0.00, çanak yaprağı uzunluğu 0.00

Bir Series olarak sıralandıklarında sıralı bir grafik oluştururlar. ax.barh çubukları yatay çizer, böylece uzun adlar sığar:

imp = pd.Series(tree.feature_importances_, index=iris.feature_names).sort_values()
ax.barh(imp.index, imp.values)

0, ağacın bu özellik hakkında hiç soru sormadığı anlamına gelir. Çanak yapraklar yine de önemli olabilir: taç yapraklar, ağaca ne olacaklarını zaten söylemiştir.

challenge icon

Görev

Orta

Bir sörf okulu, başlangıç seviyesindeki öğrencilerin ilk haftalarında tahtanın üzerinde durmasını neyin sağladığını öğrenmek istiyor. Program bir derinlik okur; başlangıç kodu bu derinlikte bir ağaç eğitir ve grafiği hazırlar.

  1. Önem değerlerini, özellik adına göre adlandırılmış ve küçükten büyüğe sıralanmış bir Series içine koyun.
  2. En önemli özelliği (3 ondalık basamakla) ve hiç sorulmayan özellikleri aşağıdaki gibi yazdırın.
  3. Bunları yatay çubuklar olarak çizin ve gösterin.

Bir yüzme okulu için:

Top feature: pool_hours (0.612)
Never asked: ['goggles']

Ardından Coddy grafiğinizi açıklar. Onlarınki şöyle görünüyor:

What Gets Swimmers Through? başlıklı yatay çubuklar, en büyük en üstte: pool_hours yaklaşık 0.61, can_float 0.21, age 0.10, lessons_per_week 0.08, goggles 0

Kendin dene

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

depth = int(input())

# Her yeni başlayan için bir satır: standing sütunundaki 1, ilk haftalarında tahta üzerinde ayağa kalktıkları anlamına gelir
surf = pd.read_csv("surfschool.csv")
features = ["age", "fitness", "days_surfed", "skated_before", "lesson_hours", "wetsuit_fit"]
X_train, X_test, y_train, y_test = train_test_split(surf[features], surf["standing"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=depth, random_state=0)
tree.fit(X_train, y_train)

fig, ax = plt.subplots(layout="constrained")  # uzun adlar için yer bırakır
ax.set_title("What Gets Beginners Standing?")
ax.set_xlabel("Importance")

# Kodunuzu aşağıya yazın
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