
2026/03/15 19:47
『機械学習へのビジュアル入門』(2015)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
記事では、ニューヨークとサンフランシスコの住宅を分離するために決定木モデルがどのように機能するかを示しています。使用される特徴は全部で7つ(標高や平方フィートあたり価格など)です。単一の分岐、例えば「標高 > 240 ft」または「標高 ≤ 240 ft の場合に平方フィートあたり価格 > $1,776」で二都市を部分的に区別できますが、偽陽性と偽陰性が残ります。2層目の分岐を追加すると精度が約84%から約96%へ向上します。さらに再帰的に深くしていけば訓練データで100%の精度を達成でき、葉ノードには一方の都市だけの住宅が含まれるようになります。しかし、そのような深い木は過学習しやすく、訓練セット内の特異パターンを記憶してしまうため、新規データでの性能が低下します。重要なのは、モデルの真価はテストセット上での性能にあるということです。実務者は追加分岐がアウトオブサンプル結果を改善しなくなった時点で木の拡張を停止すべきです。そうしないと、現実世界でコストの高いエラーにつながる脆弱な分類器になる恐れがあります。
この改訂版要約では、7つの特徴量データセット、84%および96%の精度マイルストーン、および偽陽性/偽陰性のトレードオフを明示的に言及しながら、元の意味を保持しています。
本文
機械学習では、コンピュータが統計的学習手法を用いてデータ中のパターンを自動で検出します。これらの手法は非常に高い精度で予測を行うことができます。
ここでは住宅に関するデータセットを使って、ニューヨークの住宅とサンフランシスコの住宅を区別するモデルを作成してみます。
まずは直感
「ある住宅がサンフランシスコかニューヨークか」を判断しなければならないとします。機械学習的には、データポイントを分類することが 分類タスク(classification)です。サンフランシスコは比較的丘陵地帯であるため、住宅の標高が両都市を区別する有力な指標になる可能性があります。右側の「住宅‑標高」データに基づけば、240 ft(約73 m)以上の標高を持つ住宅はサンフランシスコと分類できるという議論ができます。
さらにニュアンスを加える
もう一つ次元(変数)を追加すると、より微妙な区別が可能になります。たとえば、ニューヨークのマンションは平方フィートあたりの価格が非常に高いです。標高と平方フィート当たり価格を散布図で可視化すると、低標高住宅を区別しやすくなります。データからは、240 ft以下の住宅で平方フィート当たり$1,776(約200 USD)以上ならニューヨーク市に属するという傾向が見られます。データセット内の次元は 特徴・予測子・変数などと呼ばれます。
境界線を描く
「標高 > 242 ft」と「平方フィート当たり価格 > $1,776」の観測値を散布図上で境界として可視化できます。緑色と青色にプロットされた住宅はそれぞれサンフランシスコとニューヨークになるでしょう。データの中から数式的に境界線を見つけることが統計学習の本質です。ただし、低標高・低価格の住宅を区別するには追加情報が必要になります。
今回使用するデータセットは 7 つの次元(変数)を持っています。モデルを作成することは「モデルの訓練」(training a model)とも呼ばれます。右側では散布図行列で各ペアの関係性を可視化しています。データには明らかなパターンがありますが、境界線は一目でわかるものではありません。
そして機械学習
データ中のパターンを見つける作業こそが機械学習です。機械学習手法は統計的学習を用いて境界線を特定します。その一例として 決定木(decision tree)があります。決定木は変数を 1 つずつ検討し、比較的扱いやすい(ただし原始的な)機械学習手法です。
より良い境界線の探索
以前提案した240 ftの標高境界を再検討して、直感をどう改善できるか見てみましょう。可視化をヒストグラムに変換すると、各標高で住宅がどれくらい頻繁に現れるかがより明確になります。ニューヨークで最も高い住宅は約240 ftですが、そのほとんどはそれよりかなり低い標高にあるようです。
あなたの最初の分岐(フォーク)
決定木では if‑then 文を使ってデータ中のパターンを定義します。たとえば「住宅の標高がある数値以上なら、サンフランシスコに属すると判定する」といった形です。機械学習ではこれらの文を フォーク(fork) と呼び、データを 2 つの枝に分割します。この分岐点で決まる値が 分割点(split point) です。分割点より左側の住宅はあるカテゴリへ、右側は別のカテゴリへ分類されます。分割点は決定木版の境界線と言えます。
トレードオフ
分割点を選ぶときにはトレードオフが生じます。初期分割(約240 ft)では、サンフランシスコの住宅の一部がニューヨークとして誤分類される「偽陰性」が発生します。一方で、すべてのサンフランシスコ住宅を捕捉しようとすると、多くのニューヨーク住宅も含めてしまう「偽陽性」が増えます。
最適な分割点
最適な分割点では、各枝の結果ができるだけ均質(純粋)になるようにします。最良の分割点を計算するためにはいくつかの数学的手法があります。ただし、単一特徴量で最適な分割点を取っても、サンフランシスコとニューヨーク住宅を完全に分離できるわけではありません。
再帰
さらに別の分割点を追加するために、アルゴリズムは前述のプロセスをデータの部分集合で繰り返します。この繰り返し処理を 再帰(recursion) と呼びます。再帰はモデル訓練によく登場する概念です。左側のヒストグラムは各変数に対して、サブセットごとに分割した分布を示しています。最適な分割点は、木構造のどの枝を見ているかで変わります。低標高住宅では平方フィート当たり価格が次の if‑then 文の最良変数となり、高標高住宅では別の価格水準が選ばれます。
木を成長させる
追加のフォークは木に新しい情報をもたらし、予測精度を向上させます。1 層深く分割すると木の精度は 84 % に改善され、さらに数層増やすと 96 % になります。理論上は枝を続けて追加していけば、木の予測が 100 % 正確になるまで成長させることも可能です。その最終段階に到達した枝は 葉ノード(leaf node) と呼ばれます。私たちの決定木モデルでは、各葉ノード内で多数派のクラスを基準に住宅を分類します。
予測を行う
新しく訓練された決定木モデルは、データポイントを枝を通じて順次判定しながら「サンフランシスコかニューヨークか」を決めます。ここでは訓練に使用したデータが木を流れ込む様子を見ることができます。このデータは 訓練データ(training data)と呼ばれ、モデルの構築に使われました。木を 100 % 正確になるまで成長させたため、この木は訓練データすべてを正しく都市へマッピングします。
現実チェック
重要なのは、木が未知のデータでどれだけ機能するかです。性能評価には、これまで見たことのない テストデータ(test data)に適用してみます。理想的には、既知データと未知データの両方で同程度に良いパフォーマンスを示すべきですが、このケースではそうなっていません。この誤差は 過学習(overfitting) に起因します。モデルは訓練データ内の細部まで重要だと学び込んでしまい、実際には無関係だった情報も重視してしまいます。
まとめ
機械学習は統計的学習を利用し、コンピュータがデータセット中の境界線を発掘することでパターンを特定します。これにより予測が可能になります。予測手法の一つとして 決定木 があり、if‑then 文の連鎖で境界線とパターンを識別します。過学習は、意味のない区分を基準にした境界線が原因です。テストデータを通してモデルが過学習していないか確認できます。
次回予告
次回の記事では 過学習 とそれが機械学習における基本的なトレードオフとどう関係するかについて掘り下げます。
ご質問やご感想はぜひお寄せください。Twitter で @r2d3us、メールで [email protected] までどうぞ。また次回の投稿を受け取りたい場合は、メールで連絡を取ってください!