Temukan yang Tidak Biasa
Termasuk bagian Pembelajaran Tanpa Pengawasan dalam perjalanan Machine Learning di Coddy. Pelajaran 47 dari 51.
Satu pertanyaan terakhir: pemindaian mana yang tidak biasa? Isolation forest memberi skor pada setiap pemindaian, dan semakin rendah skornya, semakin aneh pemindaian itu. Pertama, skor tertinggi, yang paling biasa:
iso = IsolationForest(contamination=0.02, random_state=0)
flags = iso.fit_predict(X_small)
scores = iso.score_samples(X_small)
typical = np.argsort(scores)[::-1][:10]np.argsort mencantumkan nomor baris dari skor terendah ke tertinggi, jadi jika dibalik, data yang paling biasa muncul lebih dulu. Tampilkan data tersebut dari X: semua 64 piksel.
Tantangan
SedangBagian penutup. Kode awal mencakup semua yang sudah dipelajari, dan guess, nama cluster untuk setiap pemindaian.
- Latih isolation forest pada
X_small(contamination=0.02,random_state=0). Cetak jumlah pemindaian yang ditandainya, digit yang paling sering ditandai, dan jumlah pemindaian yang digitnya dinamai dengan benar oleh clusternya. - Gambar 10 pemindaian paling aneh, mulai dari yang paling aneh: galeri 2 kali 5 dalam
gray_r, dengan judul berupa digitnya.
Dengan contamination=0.01:
Flagged as odd: 18 of 1797 scans
Most often odd: 7 (10 scans)
Named right by their cluster: 11 of 18 odd scansGaleri angka 7 yang paling biasa terlihat seperti ini:
Hasilmu menampilkan pemindaian yang paling aneh. Cluster menamai 79.2% dari semua pemindaian dengan benar: bagaimana perbandingan pemindaian yang aneh? Kamu menjelajahi 1,797 pemindaian dan tidak pernah melatih model menggunakan label.
Coba sendiri
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
from sklearn.ensemble import IsolationForest
# Dari Look at the Digits: 1,797 hasil pemindaian dengan 64 piksel, nilai tinta dari 0 hingga 16
digits = load_digits()
X = digits.data
y = digits.target
# Dari Shrink with PCA: 80% variasi dalam 13 angka per hasil pemindaian
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)
# Dari Cluster the Digits: 10 klaster, ditemukan tanpa label
km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)
# Dari Name the Clusters: angka yang menjadi nama klaster setiap hasil pemindaian (79.2% cocok dengan y)
names = pd.crosstab(km.labels_, y).idxmax(axis=1)
guess = names.to_numpy()[km.labels_]
# 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