clew

どっかの誰かの役にたてばうれしい。

第639回トトくじ WEKAによる機械予測の手法を一から説明してみる。

どんな手法で機械予測をしているのか?

さて、ここ最近はディープラーニングやらPYTHONについて調べていたので、トト予想は休止状態でした。
何事も継続する事が大事ですから、再開したいと思います。今回は私の行った予測手法を一から解説します。肝心の正解率については”正直わかりません・・”
少しでもいいから参考になればいかなと思います。

どんなデータを用意すればいいの?

以下に今回の予測で使用するデータについて説明します。

1、データを取ってくるサイトは・・・http://www.jsgoal.jp/schedule/2013/j2.html

上のリンクは”J2”の箇所。”J1” についても ”日程・結果”というタブを開いてコピーしてきます。
今回は直前一回分のデータを使用します。データといっても対戦カード、試合会場、スコアの三つだけです。

今回の例で言えば 二部は23節、一部は15節といった具合です。

2、コピーしたデータをエクセルに貼ります。

f:id:swat777:20130712204223j:plain

3、データを整形する。

次はデータに細工をします。今回は私も初めての形式にしてみます。
画像を貼りますから確認して下さい。

f:id:swat777:20130712204921j:plain

上から順にホームチーム、次にアウエイチームが並んでいます。
2列、3列目もチームに対応する試合会場、そしてゴール数とします。
要するに対戦カードを横に並べるのではなく、「あるチームがどこのスタジアムでどれだけゴールしたか?」という形になっています。

4、予測しようとする対戦カードについても同じようにコピー、そして整形します。

この場合はスコアの欄は ”?”と入力します。

整形したデータに属性名を付ける。

つぎに貼り付けたデータの最上部に”属性”をつけます。
1行分を挿入してください。
データは3列あります。そのそれぞれに名前を付けます。半角英数なら何でもいいです。
自分が識別できればOKです。

f:id:swat777:20130712210459j:plain

作成したデータファイルをCSV形式で保存する。

最後にデータを適当な場所にCSVで保存します。
私の場合、デスクトップとしました。(分かりやすいから)

WEKAを開く。

まだインストールしていないなら最新版をインストールしてください。
以下がWEKA公式サイトです。

http://www.cs.waikato.ac.nz/ml/weka/

f:id:swat777:20130712211240j:plain

ちなみに私のヴァージョンは WEKA 3.7.7 です。環境は WINDOWS7。32bit

データの読み込み

デスクトップに保存したファイルをWEKAに読み込みます。
最初に開く小さいウインドウ(全体のメニュー)は一番上の EXPLORER を選択。

f:id:swat777:20130712212319j:plain

画面が開いたら 上から二列目の ”OPEN FILE" をクリック、ファイルの置き場所を選択して開いてみてください。

属性にフィルターをかける。

さあ次は作成したデータにフィルターをかけてみます。
目的は”属性を変更する”ためです。

WEKAにおいては、数字は ”NUMERIC" 文字列は ”NORMINAL" と表現され、目的変数の属性によって使えるアルゴリズムが制限されます。

簡単な説明ですが、以上の理由から今回は数字を”名義属性”とするために以下の画像のようにフィルターを使用しました。

f:id:swat777:20130712213625p:plain

上から3列目の左側に FILTER と書かれ、その下に CHOOSE というボタンがあります。
これを押すとフィルターのメニューが開きます。
ツリー状のメニューとなっていますので分かりやすいかと思います。
ちなみに選ばれたフィルターは ”教師なし” という分類に属しています。

フィルターを選択したら、右側の ”APPLY" を押すように。これで目的変数の数字(GOAL)が名義属性となりました。

実際に走らせてみる。

準備ができたら実際に走らせて予測してみます。

f:id:swat777:20130712214454j:plain

一番上のメニューから ”CLASSIFY" をクリック、画面が切り替わります。
つぎはアルゴリズムを選択します。

アルゴリズムは classifier の CHOOSE で色々切り替えられます。画像では MLP を選択しています。
test option は 一番上を選択。

more option は 必ず開いて設定してください。
画像では ”OUTPUT PREDICTION” を、PLAIN TEXT に設定してあります。
目的変数(NOM)がGOALになっているのを確認して、START を押せば計算がはじまります。

出力は右側の欄に出てきます。

出力を保存、取り出す。

このままでは出力結果が取り出せません。
外部に保存するためには以下のようにしてください。

1、計算が終わると左側に記録が残ります。実際に走らせると”青い色が付いてるはずです。”
  これはクリックするごとに切り替わります。

2、これを右クリックするとメニューが出ます。

  ”SAVE RESULT BUFFER” をクリックすると保存ウインドウが開きます。
  ここでフォルダを指定して、名前を付ければ保存できます。
  拡張子は必ず指定してください。私の場合はいつも xls としています。(あとから使いやすいようにエクセル  がいいと思います。)

計算結果を見てみる。

さあ、デスクトップにある計算結果をみてみましょう。

ファイルを開くと予測モデルの作成に始まり、ずらーっと計算が続いています。
肝心な結果はずーっと後ろ・・・終わりの方にあります。

これをまた元の形に戻してみます。

f:id:swat777:20130712221455j:plain

若干、手を加えましたがこれが 639回の予測です。
出力されたファイルの”?”に対応する数字(スコア予測値)を対戦カード別に並べ替えただけです。
エクセルの(データの区切り)という機能で要らない要素を消しています。

まとめ

以上、長々と説明してみました。だいたいのイメージはつかめたかと思います。
WEKAを初めて触る方にはもっと説明が必要かもしれませんね。

こういったやり方は過去に何度も行ってきました。しかしまだまだ精度が足りません。
今回の予測は、データの整形の仕方が”初めてやる方法”なのですが、おそらく上手くいかないだろうと思います。

今後も結果を見て、色々試していきます。