Menu
CoddyTech

Cara k-NN Menentukan

Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 6 dari 58.

Bab ini membahas k-NN secara mendalam. Di akhir bab ini, kamu akan menggambar petanya untuk data apa pun, seperti peta ini untuk cabai pedas dan tidak pedas:

80 cabai berdasarkan panjang dan ketebalan dinding pada peta berwarna: wilayah oranye di sebelah kiri tempat model menyatakan pedas, wilayah biru di sebelah kanan tempat model menyatakan tidak pedas

Untuk memberi label pada cabai baru, k-nearest neighbors mencari k cabai pelatihan yang paling dekat dengannya, lalu cabai-cabai itu memberikan suara:

Gambar close-up cabai dengan bintang hitam untuk cabai baru. Garis abu-abu menghubungkannya dengan 5 cabai terdekat: 3 pedas dan 2 tidak pedas, jadi pedas menang

Terdekat berarti jarak terkecil, yang kamu temui di bagian 2. Kamu memilih k:

model = KNeighborsClassifier(n_neighbors=5)

n_neighbors adalah k, yaitu 5 kecuali kamu menyatakan sebaliknya. Dengan dua kelas, k ganjil tidak akan pernah menghasilkan seri.

challenge icon

Tantangan

Mudah

Sebuah klub astronomi mengelompokkan bintang-bintang dalam stars.csv menjadi katai dan raksasa berdasarkan suhu dan magnitudo. Kode awal membaca data bintang baru dan k.

  1. Temukan k bintang terdekat secara manual: tambahkan kolom distance, lalu urutkan.
  2. Cetak jumlah bintang raksasa di antara mereka, lalu pemenang pemungutan suara.
  3. Periksa hasilnya dengan model k-NN dengan nilai k tersebut, yang dilatih menggunakan semua bintang.

Untuk bintang dan k = 5 milik klub lain:

Giants among the nearest 5: 4
By hand: giant
Model: giant

Coba sendiri

import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier

# Satu baris untuk setiap bintang: suhu dalam ribuan kelvin, magnitudo (semakin kecil nilainya, semakin terang), katai atau raksasa
stars = pd.read_csv("stars.csv")
X = stars[["temp_kK", "magnitude"]]
y = stars["type"]

# Bintang baru dan k
temp = float(input())
mag = float(input())
k = int(input())
new_star = pd.DataFrame({"temp_kK": [temp], "magnitude": [mag]})

# 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 Terawasi

Latihan sendiri: Compiler Python online