WEB+DB PRESS (ウェブDBプレス) Vol.100「サポートベクタマシンによる教師あり学習」(P.31)をやってみた

WEB+DB PRESS Vol.100(技術評論社)の「サポートベクタマシンによる教師あり学習」(P.31)をやってみました。Wikipediaから記事をダウンロードし、分かち書きをして、記事を分類します。最後に、分類に最も影響を与える単語を表示します。

  • 記事の内容や、操作を理解するための概念などは、このページには書きません。上のリンクから雑誌を購入してご覧ください。

この記事は、以下の記事の続きです。

WEB+DB PRESS (ウェブDBプレス) Vol.100「次章以降で利用するデータの準備」(P.31)をやってみた

サポートベクタマシンによる教師あり学習

Windows PowerShellを起動し、以下の記事で準備したDockerコンテナに接続して操作します。ここでは、Dockerコンテナに接続するまでの操作は省略します。

WEB+DB PRESS (ウェブDBプレス) Vol.100「第2章 自然言語処理」(P.24)をやってみた

Dockerの準備

雑誌記事のとおりに操作してみたところ、メモリ量が不足しているために、ある手順のところで「Killed」と表示されました。そこで、まずはDockerに割り当てるメモリ量を大きくします。

  1. タスクバーの通知領域に表示されている「」を右クリックし、「Settings」をクリックします。
  2. 「Advanced」をクリックします。
  3. メモリを「8192MB」に設定し、「Apply」をクリックします。

    左下の●がオレンジ色になり、「Updating Drivers」と表示されます。

    設定が終了すると、●が緑色に戻り、「Docker is running」と表示されます。

Wikipediaデータの分類

  1. 雑誌記事(P.35)の「scikit-learnのインストール」のコマンドを入力し、Enterキーを押します。
  2. 「cd /webdb100/02」と入力して、Enterキーを押します。
  3. 「cp ../02/wikipedia_akatied_data.txt .」と入力して、Enterキーを押します。
  4. 雑誌記事(P.36)の「wiki_category_extract.pyの実行」のコマンドを入力し、Enterキーを押します。
  5. 雑誌記事(P.37)の「svm.pyの実行」のコマンドを入力し、Enterキーを押します。ただし、「wikipedia_wakatied_categories.txt」の代わりに「wikipedia_wakatied_data_categories.txt」と入力します。

    計算が実行されます。

    計算が終了すると、以下のように表示されます。

    「valley」カテゴリの判定に最も影響を与えているのは「渓谷」である、ということが分かったようです。

試しに、学習データとテストデータの割合を4対6にしてみましたが、それでも96パーセントの精度で判定できるようでした。