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:
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.
Tantangan
SulitProgram membaca porsi varians yang perlu dipertahankan, 0.7 atau lebih; kode awal menyiapkan grafik.
- Skalakan, lalu pertahankan jumlah komponen paling sedikit yang mencapai porsi tersebut. Cetak jumlahnya dan porsi yang dipertahankan.
- Kelompokkan komponen tersebut dengan k-means: k = 2,
n_init=10,random_state=0. - Buka amplop: untuk setiap cluster, mulai dari yang terbesar, cetak diagnosis dan mayoritasnya. Lalu cetak kesepakatan: porsi sampel yang sesuai dengan mayoritas clusternya.
- Buat scatter dua komponen pertama untuk setiap cluster, dengan label
mostly benignataumostly 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.877dan grafiknya:
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
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pembelajaran Tanpa Pengawasan
1Menemukan Kelompok
Belajar Tanpa LabelMengukur KemiripanK-Means secara ManualK-Means dengan scikit-learnRangkuman: Anggota Gym4Pengelompokan Hierarkis
Penggabungan Langkah demi LangkahModel AglomeratifDendrogramRingkasan: Ras Anjing7PCA dalam Praktik
Melihat 64 DimensiKomponen sebagai PolaKompres dan RekonstruksiPCA Sebelum ModelRangkuman: Pemindai Wajah10Proyek: Penjelajah Digit
Amati DigitnyaPerkecil dengan PCAKelompokkan DigitBeri Nama pada KelompokTemukan yang Tidak BiasaLatihan sendiri: Compiler Python online