المخططات الشجرية
جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 18 من 51.
الشجرة الافتتاحية في الفصل هي مخطط شجري. يربط كل قوس بين مجموعتين عند الارتفاع الذي اندمجتا فيه: كلما زاد طول ساقيه، كانتا أبعد عن بعضهما.
اقطعها بخط، وستصبح كل مجموعة فروع يعبرها الخط مجموعةً. هنا، 4:
تنشئ 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]اقطع عبر أطول الأضلاع: المجموعات أدناه متباعدة جدًا.
التحدي
متوسطيصنّف دليل بحري 16 من الحيتان والدلافين حسب الطول والوزن وعمق الغوص. يطبّق البرنامج الابتدائي التحجيم عليها ويقرأ ارتفاع القطع، cut.
- أنشئ شجرة وارد
Zوارسمها علىax: أسماء الحيوانات مدارة بزاوية 90 درجة، والألوان تتوقف عند ارتفاع القطع. - ارسم موضع القطع بخط رمادي متقطع، ثم اعرض الرسم.
- اطبع عدد المجموعات.
لـ 11 فاكهة وموضع قطع عند 3.5:
Cut at 3.5: 3 groupsيصف 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")
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم غير الخاضع للإشراف
1اكتشاف المجموعات
التعلّم دون تسمياتقياس التشابهتنفيذ K-Means يدويًااستخدام K-Means في scikit-learnمراجعة: أعضاء النادي الرياضيتدرّب بنفسك: مترجم Python عبر الإنترنت