Wekaでロジスティック分析して、予測を行う際のメモ。
ロジスティック回帰をつかうと、たとえば、いくつかの変数があって、今日は、かさを持っていくべき?いかないべき?なんていう予測もできちゃう。「いくつかの変数」は名義尺度(晴れ、くもり、雨)もOK。
(めちゃおーざっぱな説明。統計やっている人に怒られそうだ)
なお、これは、手法を書いているだけで、結果は、気にするな。
■1.データを作成
今回は、できあいのデータを利用しましょう。以下のサイト
データマイニングツールボックス "Weka" の使い方
http://web.sfc.keio.ac.jp/~soh/dm03/man_w_03.html
の「2.2 入力ファイルを作る」の
------ ここから ------------------------------
の下から
------ ここまで ------------------------------
の上までをコピー&ペーストしてweather.arffという名前で保存する。
ファイルの中身などは、そのサイトにかいてある
(ので、他のデータでも、自分で作成できる)
■Weka立ち上げ
Wekaを立ち上げると、以下のようなもんがでてくるので、
”Explorer”をクリック。
■ファイル読み込み
そうすると、以下の画面が出てくる。
Open fileをクリック
すると、ファイルを選択するダイアログになるので、さっき作った、
weather.arffを読み込む。すると、以下のように、読み込まれた内容が表示される。
■分析の設定
読み込み内容が表示されたら、「Classify」タブをクリック。
以下の画面になる。
そうしたら、ClassifierのところのChooseをクリック
Classifiers→functions→Logistic
を選ぶ
あと、いろいろ設定できるけど、今回は、まーいーや。
これで、テキトーに分析してくれる。
Startボタンの上にあるのが、目的変数をえらぶところ
nomっていうのは、名義尺度を意味する。arffファイルで定義している。
一番最後の変数がデフォルトでは名義尺度になる。
こんかいは、一番最後のplayが目的変数なので、このままでOK
■実行!
Startボタンをクリック!実行!!
右に実行結果。
さいごにででいるのは予測と実際のマトリックス
aと予測してaだった(左上)、bと予測してbだった(右下)が正解。それ以外は間違い。
■結果を見る
もうちょっと、上に上げてみる。
coefficientsが回帰変数ということになるけど、
6つある。
説明変数は、もうちょっと上のattributeをみるとわかるけど、
@attribute outlook {sunny, overcast, rainy}
@attribute temperature real
@attribute humidity real
@attribute windy {TRUE, FALSE}
の4つ(@attribute play {yes, no}は目的変数)
なのに、変数6つ??ってことだけど、
これは、1つめのoutlookがsunny, overcast, rainyの3つの値をとるから。
3個分の値になる。一方数値や、2値(windyのTrue,false)は、1変数になる。
だから、
outlook sunny
overcast(曇り)
rainy
temperature
humidity
windy
の6つになる。
■解析する
で、変数のcoefficientsがでたので、あとは
第31話 「ロジステッィク変換の逆変換」
http://software.ssri.co.jp/statweb2/column/column0711.html#c031
をみてくれ・・・って、Excelの説明だけど、そこのBがcoefficients
なのかしら
■おまけ-変数の絞込み
変数を絞り込みたいときは、はじめに出していたPreprocessタブに戻し、
・残したい変数のチェックをクリック
・Invertで反転する(消したい変数がチェックされる)
・Removeをクリック
チェックされていた消したい変数が消える
あとは同じように、classifyタブに戻って、StartすればOK
2つの変数が消えて、4つになっている。