شرائح العملاء
جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 39 من 51.
يوظّف هذا الفصل العناقيد، وصولًا إلى قائمة تشغيل مصنّفة حسب الحالة المزاجية:
أولًا، الشرائح: مجموعات يمكن اتخاذ إجراءات بشأنها. قام نُزل بتوحيد مقياس ميزتين وتجميع نزلائه:
توضح الوحدات الفعلية طبيعة كل شريحة. ويُظهر مركزها بعد التحجيم ما يميزها: كل سمة بوحدة الانحراف المعياري عن متوسط الضيوف.
X = StandardScaler().fit_transform(guests[["nights", "days_ahead"]])
km = KMeans(n_clusters=3, n_init=10, random_state=0).fit(X)
print(km.cluster_centers_.round(1))يطبع هذا:
[[ 1.3 -0.7]
[-0.7 -0.7]
[-0.7 1.4]]الرقم الأبعد عن 0 في كل صف يحدد فئته. يظل الصف 0 أطول بمقدار 1.3 انحراف معياري: الرحّالة. يحجز الصف 2 أبكر بمقدار 1.4 انحراف معياري: الرحلات المدرسية.
التحدي
متوسطيريد أحد المسارح معرفة المزيد عن أعضائه البالغ عددهم 166. يقرأ البرنامج الميزات المراد تقسيم الأعضاء بناءً عليها، مثل age,ticket_price.
- طبّق القياس على تلك الأعمدة، وقسّم الأعضاء إلى
best_k(X)مجموعات باستخدام الدالة المساعدة المقدمة، ثم اطبع عددها. - رتّب المجموعات من الأكبر إلى الأصغر، واطبع حجم كل مجموعة واسمها: الميزة التي يبتعد مركزها عن 0 أكثر من غيرها، و
highأوlow، ومقدار هذا الابتعاد.
لمسرح آخر، ومع age,shows_per_year:
4 segments
57 members: high shows_per_year (1.2 std from average)
52 members: low shows_per_year (1.0 std from average)
40 members: low age (1.4 std from average)
32 members: high age (1.5 std from average)جرّب بنفسك
import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
# صف واحد لكل عضو في المسرح
members = pd.read_csv("theatre.csv")
# الخصائص المستخدمة للتقسيم، مثل age,ticket_price
features = input().split(",")
# استنادًا إلى درجات Silhouette: قيمة k من 2 إلى 6 التي تحقق أفضل درجة Silhouette لـ X
def best_k(X):
best, best_score = 2, -1
for k in range(2, 7):
labels = KMeans(n_clusters=k, n_init=10, random_state=0).fit_predict(X)
score = silhouette_score(X, labels)
if score > best_score:
best, best_score = k, score
return best
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم غير الخاضع للإشراف
1اكتشاف المجموعات
التعلّم دون تسمياتقياس التشابهتنفيذ K-Means يدويًااستخدام K-Means في scikit-learnمراجعة: أعضاء النادي الرياضيتدرّب بنفسك: مترجم Python عبر الإنترنت