Menu
CoddyTech
flag Ar iconالعربيةdown icon

المخططات الشجرية

جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 18 من 51.

الشجرة الافتتاحية في الفصل هي مخطط شجري. يربط كل قوس بين مجموعتين عند الارتفاع الذي اندمجتا فيه: كلما زاد طول ساقيه، كانتا أبعد عن بعضهما.

اقطعها بخط، وستصبح كل مجموعة فروع يعبرها الخط مجموعةً. هنا، 4:

شجرة الكرات الرياضية مع خط متقطع عند الارتفاع 1.2. أسفلها أربع مجموعات: الكرة اللينة والكريكيت والبيسبول؛ التنس وتنس الطاولة والغولف؛ كرة السلة وحدها؛ الكرة الطائرة وكرة اليد وكرة القدم

تنشئ scipy الشجرة وترسمها وتقطعها باستخدام fcluster:

from scipy.cluster.hierarchy import linkage, dendrogram, fcluster
Z = linkage(scaled, "ward")
dendrogram(Z, labels=names, leaf_rotation=90, color_threshold=1.2, ax=ax)
ax.axhline(1.2, color="gray", linestyle="--")
groups = fcluster(Z, t=1.2, criterion="distance")
print(groups)

يطبع هذا رقم المجموعة لكل كرة، مع كرة السلة وحدها:

[2 2 2 1 1 1 3 3 3 4]

اقطع عبر أطول الأضلاع: المجموعات أدناه متباعدة جدًا.

challenge icon

التحدي

متوسط

يصنّف دليل بحري 16 من الحيتان والدلافين حسب الطول والوزن وعمق الغوص. يطبّق البرنامج الابتدائي التحجيم عليها ويقرأ ارتفاع القطع، cut.

  1. أنشئ شجرة وارد Z وارسمها على ax: أسماء الحيوانات مدارة بزاوية 90 درجة، والألوان تتوقف عند ارتفاع القطع.
  2. ارسم موضع القطع بخط رمادي متقطع، ثم اعرض الرسم.
  3. اطبع عدد المجموعات.

لـ 11 فاكهة وموضع قطع عند 3.5:

Cut at 3.5: 3 groups

شجرة بعنوان Fruits، وأسماء الأوراق ممتدة إلى الأعلى، وخط رمادي متقطع عند الارتفاع 3.5 يقطع ثلاثة فروع ملوّنة: الليمون والليمون الأخضر والفراولة؛ والبرتقال والجريب فروت والمانجو؛ والعنب والكرز والموز والتفاح والكمثرى

يصف Coddy شجرتك.

جرّب بنفسك

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from scipy.cluster.hierarchy import linkage, dendrogram, fcluster

# 16 حوتًا ودلفينًا: طول الجسم (m)، الوزن (tonnes)، أعمق غوص (m)
whales = pd.read_csv("whales.csv")
names = list(whales["animal"])
scaled = StandardScaler().fit_transform(whales[["length_m", "weight_t", "dive_m"]])
cut = float(input())

fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.3)  # مساحة للأسماء أسفل الشجرة
ax.set_title("Whales and Dolphins")
ax.set_ylabel("Merge height")

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم غير الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت