HyperAIHyperAI

Command Palette

Search for a command to run...

k-NN回帰をExcelで実装:特徴量のスケーリングが予測精度を左右する意外な真実

「機械学習・ Advent Calendar」第1日は、Excelで実装するk-NN回帰(k-近傍回帰)の紹介です。このアルゴリズムは最もシンプルなモデルの一つで、機械学習の入門に最適です。本記事では、カリフォルニア住宅価格データセット(California Housing Dataset)を用い、1変数・2変数・複数変数のケースを段階的に解説します。 まず、k-NNの基本原理は「似た例の平均値で予測する」ことです。たとえば、新築のアパートを売却する際、周辺の同規模物件の価格平均を参考に価格を決めるのと同様に、k-NNは「最も近いk個のデータ」のターゲット値(例:住宅価格)の平均を予測値として出力します。 1変数(例:収入)での実装では、ExcelのRANK関数やIF、SUMPRODUCTを活用し、距離(絶対値の差)で近いデータを絞り込み、k=3の近傍データの価格平均を計算。このプロセスは手動で行う必要があるものの、Excelの関数で自動化が可能です。 2変数(例:収入と住宅年数)になると、距離の計算にユークリッド距離が使われますが、変数のスケール(単位)が異なると、大きな値を持つ変数が距離計算を支配するという問題が発生します。たとえば、収入(10,000ドル単位)と人口(数万人単位)をそのまま比較すると、人口のスケールが支配的になり、意味のある近傍が選ばれません。 さらに、カテゴリ変数(例:ダイヤモンドのクラリティ)を扱う場合、ワンホットエンコーディングを使うと、すべてのカテゴリが等距離に扱われ、実際のグレーディングの意味を反映できません。これを改善するには、専門知識に基づいた順序エンコーディング(例:IF=10、VVS1=9、…)を使うことで、距離の意味が自然になります。 実際のデータセットでは、変数の性質が異なり、ユークリッド距離だけでは意味のある近傍が選べないため、「ナイーブなk-NN」は実用には向かないことがわかります。特に、地理座標には実際の距離(メートル単位)を使うべきであり、そのような距離の選択がモデルの精度を大きく左右します。 結論として、k-NNは非常に直感的でExcelで実装可能ですが、変数のスケーリングや距離の定義が結果に大きく影響します。これは、機械学習モデルの設計において「変数の意味とスケールを理解する」ことがいかに重要かを教えてくれます。このシンプルなモデルを通じて、将来のより高度なモデル(例:スケーリング対応、確率的アプローチ)への道が開かれるのです。

関連リンク

k-NN回帰をExcelで実装:特徴量のスケーリングが予測精度を左右する意外な真実 | 人気の記事 | HyperAI超神経