take the top k nearest neighbors S’ from S foreach ci in C do 𝑝! ← 𝑠 𝑠 ∈ 𝑆" 𝑎𝑛𝑑 𝑐𝑙𝑎𝑠𝑠 𝑠 = 𝑐! | return argmax #!∈% 𝑝! 1 2 3 4 5 6 タスクに応じて設定 K近傍データの中でクラスci に属するデータの数 Input: x: ターゲットデータ Input: S: ラベル付きデータセット Input: C: クラスラベルのリスト Input: k: 閾値 Input: dist: 距離関数
𝑥!" 𝑦! 𝑥"! ⋮ 𝑥#" 𝑦# 𝑥#! ⋮ 𝑥$" 𝑦$ … B A B A A … B A B Step 1 ラベルを隠してテスト データのラベルを推論 Step 3 … A … 推論結果 B … 隠していたラベル 推論結果と元ラベル との⽐較による性能評価 Step 4 訓練データを ⽤いた学習 Step 2 ML A A B B … A B A
𝑥!" 𝑦! 𝑥"! ⋮ 𝑥#" 𝑦# 𝑥#! ⋮ 𝑥$" 𝑦$ … B A B A A … B A B Step 1 ラベルを隠してテスト データのラベルを推論 Step 3 A … 推論結果 B … 隠していたラベル 推論結果と元ラベル との⽐較による性能評価 Step 4 訓練データを ⽤いた学習 Step 2 ML A A B B … … A B A
Bは30% … 訓練データ (全体の50%) テストデータ (全体の50%) A 100% A 40% B 60% 訓練データ (全体の50%) テストデータ (全体の50%) A 70% B 30% A 70% B 30% シャッフル & 層別化分割 安直に前から50:50分割 シャッフル & 層別化(stratification)
Bは30% … 訓練データ (全体の50%) テストデータ (全体の50%) A 100% A 40% B 60% 訓練データ (全体の50%) テストデータ (全体の50%) A 70% B 30% A 70% B 30% 安直に前から50:50分割 シャッフル & 層別化分割 ダメ、絶対 シャッフル & 層別化(stratification)