Pythonではじめる機械学習

KNeighborsClassifierの解析

最近傍点数を増やすと精度(訓練、テスト)がどう変わるか。
f:id:bitop:20190817062720p:plain
増やしすぎても減らしすぎても良くない。問題によって最適点数があるもよう
f:id:bitop:20190817062800p:plain
20まで増やした結果、10を超えたあたりから変化がなくなる
f:id:bitop:20190817063042p:plain

2.3.2.3 k-近傍回帰

make_waveのデータを使って回帰学習をする。
40点データをプロットする。
f:id:bitop:20190817074933p:plain
これに教師データを重ねてプロットする。 f:id:bitop:20190817075132p:plain
これらのデータを使って訓練する
f:id:bitop:20190817075429p:plain
結果
f:id:bitop:20190817075523p:plain
テストのデータもプロットする。
f:id:bitop:20190817075924p:plain
訓練させたモデルにx_testを入力して予測させたデータを重ねてプロット
f:id:bitop:20190817081425p:plain
最近傍点を3から30に増やして予測結果をプロットする。
f:id:bitop:20190817081956p:plain
反対に3から1に減らしてみる
f:id:bitop:20190817082304p:plain
プロットしたものだけ見てみるとn_neighbors=1のほうがフィットしているように みえるがscoreは0.83から0.35と悪くなっている。これが過剰適用というものか

2.3.2.4 KNeighborsRegressorの解析

f:id:bitop:20190817090655p:plain 結果 f:id:bitop:20190817090617p:plain