全5963文字
PR

モデルを使って分類する

 作成したモデルに未知のデータ(ここでは気温30度)を入力して、分類を行います。次のプログラムを実行してください。

[画像のクリックで拡大表示]

 predict関数で分類を行っています。predict関数の引数は、2次元リストにする必要があります。

 実行結果は図9です。気温30度のときは「買わない」と分類されています。ここまでたったの6行で、簡単に機械学習のプログラムを実装し、分類結果を確認できました。しかし、この結果は正しいのでしょうか。図6の学習用データ(過去のデータ)を見ると、気温が高いときにアイスクリームを買う傾向がありそうです。気温30度のときにアイスクリームを「買わない」と分類されるのは、少し違和感があります。

図9 ●k近傍法のモデルで気温30度のときの購買行動を分類した
図9 ●k近傍法のモデルで気温30度のときの購買行動を分類した
[画像のクリックで拡大表示]

 機械学習は、モデルを作って分類(や予測)を行うだけで終わりではありません。モデルの精度、つまり、「作成したモデルの分類がどのくらい正しいのか?」という点を評価し、改善していくことも重要です。

モデルの精度を改善する

 先ほど作成したモデルの精度を、次のコードで検証してみましょう。

[画像のクリックで拡大表示]

 実行結果は次のようになります。

[画像のクリックで拡大表示]

 これは、このモデルを使って分類をするときの正解率が6割であるという意味です。

 学習用データを使って、実際のデータと分類結果のデータを比べてみましょう。

[画像のクリックで拡大表示]

 1行目の「実際のデータ」では、図6の学習用データの「購買行動」をそのまま表示します。2行目の「分類結果のデータ」では、図6の学習用データの「気温」のデータを、先ほど作成したモデルに入力し、分類した結果を表示します。

 図10が実行結果です。比較すると、分類結果のデータの5つのうち、先頭から3番目と5番目が実際のデータと異なっています。正解率は5分の3なので、モデルの精度は0.6です。「買う」か「買わない」かの二択の問題で0.6というのは少し精度が低いと言えます。精度を改善していきましょう。

図10 ●「気温と購買行動の関係」の実際のデータと分類結果のデータを表示した
図10 ●「気温と購買行動の関係」の実際のデータと分類結果のデータを表示した
[画像のクリックで拡大表示]