Menu
CoddyTech

Dua Jenis Sel

Termasuk bagian Pembelajaran Tanpa Pengawasan dalam perjalanan Machine Learning di Coddy. Pelajaran 51 dari 51.

Sebuah laboratorium mengukur 569 sampel jaringan, masing-masing dengan 30 pengukuran sel. Jumlahnya terlalu banyak untuk diplot, dan tidak ada yang bisa menyusunnya hanya dengan melihat:

Kisi 24 sampel dengan 30 pengukuran, setiap sel diwarnai dari biru untuk nilai rendah hingga merah untuk nilai tinggi, membentuk pola tambal sulam tanpa pola yang jelas

Diagnosis setiap sampel, jinak atau ganas, tersimpan dalam amplop tertutup. Bisakah sel-sel mengelompokkan diri menjadi dua jenis tanpa mengetahuinya?

Ringkas 30 pengukuran dengan PCA, kelompokkan sisanya, lalu buka amplop untuk melihat seberapa dekat sel-sel tersebut.

challenge icon

Tantangan

Sulit

Program membaca porsi varians yang perlu dipertahankan, 0.7 atau lebih; kode awal menyiapkan grafik.

  1. Skalakan, lalu pertahankan jumlah komponen paling sedikit yang mencapai porsi tersebut. Cetak jumlahnya dan porsi yang dipertahankan.
  2. Kelompokkan komponen tersebut dengan k-means: k = 2, n_init=10, random_state=0.
  3. Buka amplop: untuk setiap cluster, mulai dari yang terbesar, cetak diagnosis dan mayoritasnya. Lalu cetak kesepakatan: porsi sampel yang sesuai dengan mayoritas clusternya.
  4. Buat scatter dua komponen pertama untuk setiap cluster, dengan label mostly benign atau mostly malignant; tampilkan legenda, lalu grafik.

Untuk 300 sampel pertama dan 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

dan grafiknya:

300 sampel pertama pada dua komponen pertama: cluster yang mayoritasnya benign di sebelah kiri dan cluster yang mayoritasnya malignant menyebar ke kanan, dengan legenda

Lalu Coddy menjelaskan hasilmu.

Coba sendiri

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 sampel jaringan, masing-masing dengan 30 pengukuran sel
cancer = load_breast_cancer(as_frame=True)
cells = cancer.data
# Amplop tertutup: jinak atau ganas untuk setiap sampel. Buka hanya di akhir.
diagnosis = pd.Series(cancer.target_names[cancer.target])

# Proporsi varians yang perlu dipertahankan, 0.7 atau lebih
share = float(input())

fig, ax = plt.subplots()
ax.set_title("Cells on Two Components")
ax.set_xlabel("Component 1")
ax.set_ylabel("Component 2")

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Tanpa Pengawasan

Latihan sendiri: Compiler Python online