نوعان من الخلايا
جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 51 من 51.
قاس مختبر 569 عينة نسيجية، ولكل عينة 30 قياسًا خلويًا. عددها كبير جدًا لعرضها في رسم بياني، ولا تستطيع العين فرزها:
يكون تشخيص كل عينة، سواء أكان حميدًا أم خبيثًا، داخل ظرف مغلق. هل تستطيع الخلايا أن تصنّف نفسها إلى نوعين من دونه؟
اختزل القياسات الثلاثين باستخدام PCA، ثم عنقد ما تبقّى، وبعد ذلك فقط افتح الظرف لترى مدى تقارب الخلايا.
التحدي
صعبيقرأ البرنامج نسبة التباين المطلوب الاحتفاظ بها، 0.7 أو أكثر؛ ويُعدّ القالب الأولي مخططًا.
- وحّد المقاييس، ثم احتفظ بأقل عدد من المكوّنات التي تبلغ تلك النسبة. اطبع عددها وما تحتفظ به.
- اجمع تلك المكوّنات باستخدام خوارزمية k-means: k = 2،
n_init=10، random_state=0. - افتح الظرف: اطبع، لكل عنقود وبترتيب الأكبر أولًا، تشخيصاته والأغلبية فيه. ثم اطبع نسبة التوافق: نسبة العينات التي يطابق تشخيصها أغلبية عنقودها.
- أنشئ مخططًا مبعثرًا لأول مكوّنين لكل عنقود، مع تسمية
mostly benignأوmostly malignant؛ ثم أظهر وسيلة الإيضاح والمخطط.
لأول 300 عينة وعند استخدام 0.8:
Components for 80% of the variance: 5 (they keep 0.844)
Cluster of 175: 146 benign, 29 malignant, so mostly benign
Cluster of 125: 8 benign, 117 malignant, so mostly malignant
Agreement with the diagnosis: 0.877بعد ذلك، يصف Coddy مخططك.
جرّب بنفسك
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
# 569 عينة نسيج، لكل منها 30 قياسًا للخلايا
cancer = load_breast_cancer(as_frame=True)
cells = cancer.data
# الظرف المختوم: حميد أم خبيث لكل عينة. لا تفتحه إلا في النهاية.
diagnosis = pd.Series(cancer.target_names[cancer.target])
# نسبة التباين التي يجب الاحتفاظ بها، 0.7 أو أكثر
share = float(input())
fig, ax = plt.subplots()
ax.set_title("Cells on Two Components")
ax.set_xlabel("Component 1")
ax.set_ylabel("Component 2")
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم غير الخاضع للإشراف
1اكتشاف المجموعات
التعلّم دون تسمياتقياس التشابهتنفيذ K-Means يدويًااستخدام K-Means في scikit-learnمراجعة: أعضاء النادي الرياضيتدرّب بنفسك: مترجم Python عبر الإنترنت