clew

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

第650回トトくじ 13枠の予測。同じデータ、アルゴリズムでもカテゴリカルデータをバイナリーに変換すると結果が変わることが判明。

バイナリータイプに変換したほうが良いのか?

さて、今回もトトくじの予測を行うわけですが、ちょっとやり方を変えてみました。
まず、いつもどおりの漢字で書かれたカテゴリカルデータを使う方法。

もうひとつはカテゴリーをバイナリーデータに変換したデータで予測を行う方法です。

何を言ってるのかよく分からないかもしれないので、データについて少し解説してみます。
私の過去記事を見ていけば、”どんな形式のデータを使っているのか” 分かるのですが予測用データ…ファイルは数字ばかりではなく、チーム名とか試合会場などはそのまま漢字とかカタカナ、および平仮名を使っています。

WEKAにおいては、そういう状態のデータでも問題なくアルゴリズムは走ります。
いままでは特に問題視することもなく、そのままデータを読み込ませていたのですが、python においては日本語は使えるけれども予測用データとしては”そのまま使えない” ということがあります。

したがって、何らかの方法で数値に変換する必要があるわけです。
前回記事にも書きましたが、WEKAにおいてはフィルターを使えば簡単にカテゴリカルデータをバイナリーデータに変換できる。

問題は・・・結果的にどう違うのか? ってところ。
今回は両方試してみて、その予測結果を比較してみたいと思います。

実際にバイナリー形式に変換して予測してみた。

今回は WEKA のみでの比較になります。
以下に累積タイプデータによる予測結果をバイナリータイプと比較して載せてみます。

f:id:swat777:20130829123213j:plain

向かって左側はこれまでと同じ漢字などによるカテゴリカルデータによる予測。
右側がバイナリーに変換した予測となります。

バイナリーデータによる予測の説明。

バイナリータイプに変換した属性は全部で3個。
対戦カードのホームとアウエイ、それから試合会場の合わせて3個です。それ以外はすべて数値となります。
ただしゴール数は数値属性から名義へと変換しています。

これらホームのゴール数、アウエイのゴール数を別々に計算し、比較したものが表の結果です。
黄色で色付けした枠は・・・

バイナリーと通常予測の結果が違う枠です。

これを見ても分かるとおり、同じ元データ、同じアルゴリズムを使っても、バイナリータイプに変換することによって出力結果がまるで変わる枠があることが分かります。
奇妙なのは、同じ結果となる枠と混在しているところ。

全部が全部、違うわけではなくて一部違うという微妙な結果となっています。
現段階ではどう評価していいのか?さっぱりわかりません。
まだバックテストも行っていませんし、今回650の結果を待って判断することになりそうです。

とりあえずは左側の従来予測結果が、最低でも50%ぐらいの正解は含んでいると仮定して予測することになりそうです。
最終判断までもうひとひねりします。では。