Data Mining --- Weka を起動する - MOT(Management of Technology)
by user
Comments
Transcript
Data Mining --- Weka を起動する - MOT(Management of Technology)
Data Mining --- Weka を起動する Weka を起動する ブログ:社会人 MBA−技術者編より 社会人 MBA−技術者編(http://tech-d.blogspot.com/)でページビューが多い データマイニングソフト Weka に関する「Weka を起動する」シリーズをまとめました のでご参考ください。 本テキストで取り扱う内容は、Weka 入門になります。Weka のアルゴリズムやデー タマイニングに関する数学的記述に関しては、本テキスト末の「関連リンク集」から調 査ください。 * 本ファイルは、ブログでは記事が日付順に並んでおり、シリーズとしては読みにく いので、掲載記事を日付順にまとめ直し、加筆修正を加えたものです。 * 図が見難い場合がありますが、http://tech-d.blogspot.com/の画面右、 “Labels & Links”の“データマイニング(Weka を起動する)”をクリックし、ブ ログ記事にて図をクリックし、ご確認ください。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 1 目次 1. セットアップ........................................................................................................................................... 3 2. 決定木分析.......................................................................................................................................... 7 2-1 決定木分析(分類)................................................................................................................... 7 2-2 交差検証法................................................................................................................................13 2-3 決定木分析(予測).................................................................................................................15 2-4 ベイズネットと決定木分析の比較.....................................................................................18 3. 記憶ベース推論 ...............................................................................................................................20 4. ニューラルネット ...............................................................................................................................24 5. アソシエーション分析 .....................................................................................................................30 補足 1 ROC 曲線と lift chart........................................................................................................36 補足 2 研究開発部門での使用 .....................................................................................................39 関連リンク .................................................................................................................................................43 Copyright (C) 2008 i-Library MOT テキスト製作委員会 2 1. セットアップ August 16, 2007 Weka を起動する。 Weka (http://www.cs.waikato.ac.nz/ml/weka/index.html) ペ ージにてダウンロード、インストールを行なう。 →上の URL にて、画面左の“Getting started”の “Download”をクリックしファイルをダウンロード後インス トール:詳細は「weka-jp.info: Weka の日本語情報 (http://www.weka-jp.info/)」にて画面左”資料室”→ 「Weka 入門(セットアップ編)」に詳しい)。 起動すると右のような画面が現れる。"Explorer"が実際 のマイニングを行なうコマンドである。"knowledgeFlow" はマイニング作業のフローをアイコンを使用し、実際に 計算も実施することができる。 が!使用したことはない。"Explorer"からで問題ない。 試しに、適当でよいのでアイコンを配置してみると・・・そ ういえば、提供企業がマイニング作業の説明にこの画面に似た画面を使用して説明 してくださった。 問題は、使用者が「どのようなデータを用いて、何をマイニングしたいのか」である。 例えば、ショップのレシートからどの商品と、どの商品の組み合わせがよく売れている のか?(ちなみに一般的にこの分野で言われているのは”ビール”と”おむつ”です)、 またある商品を購入した人は、次にどのような商品を購入している確率が高いのか? などである。 典型的には、コンビニエンスストアにて、レジ打ちの際に、性別と年代を入力している (よーくレジを見てみて下さい。受け取った金額を入力したあとに押すボタンです)。こ れと天候などの情報を組み合わせて、発注する商品を決定する。これこそ、マイニン グである。また、現在はポイントカードを使用する店も多く性別などの属性、購入商品 履歴が店に保存されているため、大手電器量販店などの棚の配置換えはそのデータ に基づいて行なっているのである。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 3 さて、作業に戻り、次に"Explorer"を押すと下の画面が出てくる。 画面左の"Open file.."をクリックしファイルを読み込み、分析を開始させるのである。 おそらく、最初の起動時には、Weka をインストールしたドライブの program files フォル ダ内にある Weka フォルダが参照され、その中の data フォルダ内が見えるはずであ る。ファイルの拡張子は arff である(***.arff となっていて鳥のようなアイコン)。 とここまでくると、「じゃ、arff データはどうやって作るのか」と知りたくなるが、分析すべ きデータが 6 万桁以下の場合は、csv ファイルで行なえる。ちなみに、"Open file.."を クリックし"weather.arff"を開き、上の画面の右上"Save"でファイルを csv 形式に変更 して保存してみる。これを立ち上げたものが、下の画面。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 4 この画面から、このデータは、「天気」「温度」「湿度」「風」により「Play」するかどうかの データである(*play はゴルフ)。逆に言うと、一行目に属性や因子、それ以降にデー タを入力する形をとれば、エクセル内でデータを作成し、csv 形式で保存したファイル を使用することが可能である。 とりあえず、今後の分析はこのデータを使用していきますのでご確認ください。 (「weka の起動」了) *データマイニングに関しては学術分野での活用は進んでいますが、企業実務で は?なのですが、本当に参考になる日本語の参考図書はあまりありません。当然、 Weka のようなソフトを使用しての解説本は皆無です。ただ、大よその分析の原理など を丁寧に記載してあるのは本文最後に示しましたので、よければ参考にしてください。 August 17, 2007 Weka を起動する(補足)。 前回掲載した arff 形式のデータはどのように作成されているのか? 下の画面がその答えとなる。前回掲載(このブログの前の記事)の csv 形式のデータ と比較すると違いがよくわかる。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 5 「あープログラムなのかぁ」と思われるかも知れないが、私もこの分野は素人であるが、 使うことが出来ているので、安心(!?どういう意味で!?)である。確か XML 形式 でもこのような形式だったと思う。 仕組みは以下である。 一行目の@relation weather は名前とする。ちなみに、プログラムに関係のないコ メントを挿入する際は、文頭に「%」をつけて記入していることが多い。 次に、「@attribute」で属性や因子を宣言する。「outlook」の場合「{sunny, overcast, rainy}」のいずれか、という属性データになる。「temperature」の場合 "real"としてあるのは、数値が入る宣言である。このように属性や因子を宣言してい けばよい。 そして、@data 以下に「,」を区切りとしてデータが入力されているのである。 ズボラな私は、このデータの上書きで分析対象ファイルを作成し、活用している。素人 なのでこの方法が手堅い。これだと、(汎用 PC であっても)データが数万桁であろう が対応できる。 「で、あなたは、上の画面をどうやって見てるの?」 これは「TeraPad」 (http://www.forest.impress.co.jp/lib/offc/document/txteditor/terapad .html)というテキストエディタを使用している。これもフリーソフトなので非常に便利で ある。 データマイニングは統計解析のように論理的に回答が算出されるわけではない。あぁ いう傾向、こうゆう傾向、など、分析の方法を変化させれば、百人が百人同じ行動を するわけでない様に種々に傾向が見つかるものである。それを踏まえてどのような行 動をするかは戦略である。 今後紹介する分析が「サラリーマンのお小遣い」程度の出費で行なえる(いやネットを サーフすれば、投資はほとんどいらないかもしれない)のであれば、結局は、取得して いるデータの傾向がつかめればいいのであれば・・・「安いにこしたことはない*」 本ブログ記事の下「Labels」の「データマイニング」をクリックすると、データマイニング に関する記事が一括掲載されます。(本文中の*はその昔、(全盛期の頃の)ダイエー の中内氏が膨大なデータを分析するシステムの提案を受けていた時、そういったそう です) (Weka を起動する(補足)了) 次回は決定木分析です。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 6 2. 決定木分析 2-1 決定木分析(分類) August 19, 2007 Weka を起動する(決定木分析①) まず、「習うより慣れろ」だと思う。今回は、とりあえず、決定木を作成する手順を紹介 する。データは、weather.arff を用いる(この投稿のシリーズでも掲載したが、csv 形式でもファイルを読めるので実用上はエクセルでデータ作成→csv 形式で保存→ weka で読み込みの流れになるが、説明のためインストールするとお試し用に作成さ れているデータを用いている。記事の投稿の最後のほうに"Labels"があり"データマ イニング"を選択すると関連記事が並んで表示されます)。 ファイルの読み込みは、下のとおり(クリックすると拡大されます)。 weka を起動し、"Explorer"をクリック、"Open file..."をクリックし、指定のファイル (weather.arff)を開く。 次に、"Classify"タブをクリック、"Chooes"タブをクリックし"tree"の"J48"を選択す る。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 7 下の画面の設定で"start"をクリックする。すると、アウトプット画面に結果が表示され ていることが確認できる。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 8 さらに、上の画面の操作に従い、操作すると、決定木が作成されていることが分かる。 データマイニングの決定木分析が完了したのである。あまりにもあっけないので拍子 抜けするかもしれない。 次回はこの分析結果の解説を行います。 (「Weka を起動する(決定木分析①)」了) Copyright (C) 2008 i-Library MOT テキスト製作委員会 9 August 20, 2007 Weka を起動する(決定木分析②-1)。 Weka を起動し決定木分析を実行することを前回掲載した。今回は下の画面に示され る結果の意味を掲載する。 今回の掲載分は下の部分である。 お気付きの様に、決定木分析は単なる分類である。 例えば、晴れて湿度が 75%以上の時は、ゴルフを play するのである(図では左の yes (2.0))。また、決定木の一番上が「outlook」からはじまることから、「天気」で分類する ことが最も分類しやすい、のである(これについては、「Greedy Algorithm」で検索して 参考にしてください)。結局、下の図は「このようなデータを、このような方法(アルゴリ ズム)を用いて分類しました」と述べているに過ぎない。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 10 Weka 起動からここまでの操作、及び J48 以外のアルゴリズム、決定木の設定などは、 WEKA と樹木モデル (左の単語でググッてみてください。同志社大学のページでの 連載にヒットします)にも解説されているので参考にしてください。 (「Weka を起動する(決定木分析②-1)」了) 次回は結果の解釈のつづきです。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 11 August 21, 2007 Weka を起動する(決定木分析②-2)。 Weka を起動し決定木分析を行い、Weka での結果の一部の意味を説明した(前回 まで)。Weka は種々のサイトでも説明されているので、あわせて参考にしてください。 今回は前回のアウトプットの解説の続きである。 図(クリックすると拡大されます)のように、種々の計算項が並んでいる。図中の 「(Kappa statistic)κ 統計量)」(http://aoki2.si.gunmau.ac.jp/lecture/Kappa/kappa.html)は一致率の検定に使用されるもので、この 場合に限らず使用するものである。 図では、Confusion Matrix を示し、TP Rate などが計算されている。これは、yes (ゴルフをする)を Positive とした場合である。 モデルの精度に関しては、通常「Accuracy」(図では Correctly Classified Instances "9"の右に示される 64.2857%)と呼ばれるもの示され、全データ(例 は 14 件)中、9 件(yes の場合)を正解している、というものである。 企業実務家が使用する指標はこれらである。 (Kappa statistic)κ 統計量や TP Rate などは、○○以上であればよい、という数 値はない。取得しているデータの性質(趣向なのか、売れ行きなのか)により、高低が あるからである。これは統計解析と異なる点である。 決定木分析は、あるデータ群において、目的変数を説明変数で分類し、傾向を把握 する、というものである。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 12 2-2 交差検証法 August 23, 2007 Weka を起動する(交差検証法)。 今回はモデルの精度についてである。分類モデルの生成では、その精度 (Accuracy)が非常に重要であることは前回までに述べた。今後、種々の分析手法 を紹介するが、それらは、何らかの方法でデータに対するモデルの精度を推定してや らなければならない。その代表的な方法が交差検証法(モデルの精度を推定する) (http://musashi.sourceforge.jp/tutorial/mining/xtclassify/accuracy.ht ml)である。下図で四角に囲んである部分がその設定である。 この方法では、まず元のデータを n 個のブロックに分割し(通常 10∼20 の値が用い られる)。その際、各ブロックに割り当てられる件数が同程度になるようにする。 と、ここで、「トレーニングデータ」と「テストデータ」の概念が必要である。 例で、ゴルフを play するかどうかの決定木分析を行なったが、このデータ件数は 14 件である。 仮にこれを 10 件と 4 件に分割し、10 件でモデルを作成する。作成されたモデルと 4 件を比較すると正答率が把握できる。このときの 10 件をトレーニングデータ、4 件をテストデータと呼ぶ。訓練データ、教師データと呼ぶ場合もあるみたいである。 このようにしなければ、精度が求まらないのである。このことを交差検証法(モデルの 精度を推定する) ((http://musashi.sourceforge.jp/tutorial/mining/xtclassify/accuracy.h tml))ではうまく表現していて: Copyright (C) 2008 i-Library MOT テキスト製作委員会 13 「これは、受験勉強に例えることができます。参考書の問題を「解答をみながら」解い ていけば、参考書に載っている問題ならばどのような問題でも 100%正解できるよ うになるでしょう。だからといって、本番のテスト(解答は見れない!!)でも良い結果が 得られるとは限りません。そこで、何らかの方法で未知のデータに対するモデルの精 度を推定してやる必要がでてきます。受験勉強で言えば、「あなたは○○大学に合格 できる確率は 60%です」といった目安が必要になってきます」」 だそうである。 要は、例えば 100 件のデータを 10 件ごとに、A,B,C,D,E,F,G,H,I,J と区切り、A∼ I でモデルを作成し、J で答えあわせを行なう。次に、B∼J でモデルを作成し A で答 えあわせを行なう。更に、B 以外でモデルを作成し B で答えあわせを行なう、更に・・・ を続けて精度を算出しているのである。実務上は、決定木分析といえども、種々に条 件を変えて行なうが、アウトプットで表示される「Correctly Classified Instances」 の%に着目して、モデルの精度が高いものを採用すればよいのである。 (「Weka を起動する(交差検証法)」了) 次回は「決定木分析で予測」を行ないます。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 14 2-3 決定木分析(予測) August 26, 2007 Weka を起動する(決定木分析③予測する)。 Weka を使用して決定木分析を行うが、これまではデフォルトの設定で分析したが、 詳細な分析条件の設定は以下の図で行うことが出来る。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 15 画面の"more"をクリックすると説明がなされているが、おおまかには: binarySplits=属性データ(例では天気、風など数値でないデータ)で決定木を作成 する。 minNumObj=リーフごとの instancesn の最小数。 seed=seed 数を設定。 subtreeRaising=刈り込みの際の設定 unpruned=刈り込みを行うかどうか。 などであるが、種々の設定を行って分析して、アウトプットの"Correctly Classified Instances"における%の表示でモデルの精度が高い設定がよい。 さて、モデルを構築したら、企業実務では「予測」がメインワークとなる。 「この条件が○○で、あの条件が○○のとき、ゴルフへは行くのか?」である。下の CSV 形式ファイルは、weather.arff を weather.csv に保存し、エクセルで編集、CSV 形式で保存したもので(「Weka を起動する。」参照;weka が使用しやすいのは、エ クセルでデータ入力が行える点である→データ数がエクセルの行数(約 6 万桁)を超 えない場合)、赤字の部分は予測したい条件を追記したものであり、"play"の部分 には"?"を入力している。追記したファイルは"westher_2.csv"として保存している。 このファイルを読み込み、分析を開始する。 ファイルを読み込んだら、上の設定で、あらかじめ、"Correctly Classified Instances"が高い条件を設定し、下の図のように、"More options..."をクリックし、 "Output predictions"にチェックを入れ、"OK"をクリック、分析を start する。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 16 すると、上図がアウトプット画面に挿入されている。"actual"は実際のデータで、 "predicted"は分類(予測)されたデータのことで、予測する際に"?"と入力した項目 には"?"がアウトプットされていることがわかる。 従って、この条件での予測は"yes"である。 (「Weka を起動する(決定木分析③予測する)。」了) 次回は「因果関係をつかむ」です。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 17 2-4 ベイズネットと決定木分析の比較 August 27, 2007 Weka を起動する(決定木分析④因果関係を知る)。 weka を使用し決定木分析を行い、その因果関係を知ることが今回の目的である。 前回まで、ゴルフを play するか否か J48 を使用し分類、また、こちらが指定する条 件での予測を行った。 さて、今回は、例において、「温度」は分類にはいらないのか?という疑問である。 結論からすれば、分析でそうなっていないのだから、分類の因子には入らない。 では、どのような因果関係にあるのであろうか? その分析は"Bayesian"を使用し行う。ベイズの法則を利用したものである。 が、ここで特にベイズの法則を理解する必要はない。Wikipedia での検索で十分で ある。 なぜなら、日頃エクセルで使用している線形グラフ(一次関数:y=ax+b に代表され る)で、y=ax+b の a,b は最小二乗法で算出されているが、その数式や概念を理解 して使用している人は・・・ 下の図が手順である: Classify:BaysNet:GeneticSearch を選択している。HillClimber でもよい。分析 条件はデフォルトのまま行った。 下の結果を見比べてみると、J48 で「温度」が分類されなかった理由が一目される。 「play」に関しては、「windy(風)」「humidity(湿度)」「outlook(天気)」が矢印で向 かっているので、因果関係が存在する。「temperature(温度)」は湿度、天気に因 果関係があり、play に寄与しにくいのである。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 18 ここまでの分析では、企業実務では、データを分類、ある条件下での予測、モデルの 精度を表明し、その解説として、「それは○○は△△な関係があるためです」とまで言 えるのである。 Bayesian に関しては Bayesian の使い方 (http://blogs.yahoo.co.jp/pironotakarabako) のページにて詳細に説明され ています。ご参考ください。 (「Weka を起動する(決定木分析④因果関係を知る)」了) 次回は「記憶ベース推論」です。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 19 3. 記憶ベース推論 August 30, 2007 Weka を起動する(記憶ベース推論①) 今回は、weka で記憶ベース推論を取り扱う。 最近傍アプローチは、過去に経験した類似の状況を元に分析を行う手法。分類、推 定、予測などの問題を解くために用いられるもので、そのなかの: ①記憶ベース推論とは、過去に起こった事例に基づいて次に起こる事象を予測する 場合などに用いられる。 例 1)過去の不正のパターンに類似する傾向を発見する。 例 2)過去の反応した顧客のパターンより次に反応しやすい顧客を特定する。 例 3)過去に効果があった治療法が類似している特徴の患者に効果的。 ②協調フィルタリングは、ある人に類似した人の好みを利用して、その人の好みを予 測する場合などに用いられる。 例 1)Amazon の書籍推薦など(「この商品を買った人はこんな商品も買っていま す」のあれです)。 とにかく、前回同様、「習うより慣れろ」である。 データは以下を CSV 形式にて作成した(参考図書 p239 表 6.12 より)。 ある顧客の番号、性別、年齢、収入のデータがあり、それぞれの購入可否(yes or no)を示しており、図中、赤で示した顧客が yes なのか no なのか予測する。予測の 項目には"?"を入力する。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 20 分析は、まず、Preprocess:Open files...でファイルを読み込み、 Classify:lazy:IBk を選択。More optios..をクリックし、Output predictions を 選択し"OK"。分析の設定は図のように設定し、"Test option"はデータ数の関係か ら、"Use training set"を選択し"start"。 すると、下の画面のアウトプットが現れ、予測は"yes"であることがわかる。 次回は分析を若干解説します。 (「Weka を起動する(記憶ベース推論①)」了) 次回は「記憶ベース推論分析の解説」です。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 21 September 6, 2007 Weka を起動する(記憶ベース推論②) 今回は、最近傍アプローチのイメージを掲載している。 最近傍アプローチは、過去に経験した類似の状況を元に分析を行う手法で、分類、推 定、予測などの問題を解くために用いられ、記憶ベース推論、協調フィルタリングとし てよく説明されている。 記憶ベース推論で「k-NN(k-Nearest-Neighbor 法)」とよく表現されるが、イメージ は下の図である。 図のように、k 個の近傍データを使用することから概念がイメージできる。 図のように、k 個の近傍データを使用することから概念がイメージされる。 * * * k の予測の影響 * * * 予測に求めることは、分散が小さく「実際の値とのズレが小さい、こと」である。このこ とを踏まえると、k を多くとると分散減少は減少する。が、もし、実際の値から外れてい て分散が小さかったら・・・ つまり、やみくもに大きくしても予測精度は上がらない・・・ 最適な k の値はデータの構造によって異なるので k=1、3、5 などいろいろ試してみ ることがお薦めである。 協調フィルタリングでは、予測する場合、類似ユーザの好みに基づいて,対象ユーザ の好みに合いそうなアイテムを予測していることから、イメージは図のようになる。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 22 Amazon で類似ユーザーが高く評価した本が推薦される、などはこの好例である。 (「Weka を起動する(記憶ベース推論②)」了) 次回は「ニューラルネットワーク」です。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 23 4. ニューラルネット September 9, 2007 Weka を起動する(ニューラルネット) 今回はニューラルネットで、これは、神経系機能のモデル化を行い、予測などに用い られる。やはり、習うより慣れろで、使用法から紹介する。 分析用のファイルを Preprocess:Open file...から呼び込み、 Classify:MultilayerPerceptron を選択する。このファイルは、以下で、weka をイ ンストールしたときに、添付されている weather.arff を csv 形式に変換し修正保存 したもので(この方法は以前のブログを参照してください)、赤字の部分を加筆してお り、予測したい部分は"?"を入力している。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 24 Cross-validation の Folds 数を 10 のままにして、More options...で Output predictions をチェックし OK。目的の因子に(Nom)play となっていることを確認し ("Start"のすぐ上の欄)、分析を"Start"をクリックする。 これまでの投稿のように、ここまでで分析は終了している。 output の欄を見ると、 ... ... 2 ? 2:yes + 0.327 *0.673 ... Correctly Classified Instances 12 85.7143 % ... ... と表示されている(...はアウトプットされている項目を省略しています)。 結論的には、ニューラルネットによる予測は"yes"と分析されたのである。 ちなみに、図のように GUI により input、output など層やノードの様子を観察でき るセッティングもある。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 25 上図での○(:○印→ノード)では、input からの情報を結合関数により結合し、次へ 出力する。この際の出力関数は tanh に類似しているものである(ある地点から急激 に変化が起こる様相、例)化学の滴定の実験のイメージ)。 どのような設定が最もふさわしいかは、分析のデータによるので、法則はない。種々 のパラメーターの設定を変更し、Correctly Classified Instances の%での評価と なる。 化学系の方がよく理解されている交互作用の存在は、統計解析では不十分である。 完全な分析方法は存在しないが、種々の積み上げてきた実験を統合的に分析する のは、ニューラルネットは有効である。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 26 データマイニングを使用し得た結果は、最後ではない。リーチなのである。その結果 から、どのように実験をおこなう、陳列を変更する、広告方法を変更する、などの戦略 の参考になるのである。従って、ビジネススクールの講義にも大学が準備するのであ る。 * * * 「重み」とは、何なのか?* * * 分析の応答因子は次の 3 つの目的で予測される。大きな値が望ましい(望大特性)、 逆の望小特性、ある値が望ましい望目特性である。この際に、分析に関する誤差をど うするかが「重み」である。例えば、ある値 100 に近いことを目的にしている場合、 100 付近の値周辺では誤差は小さいほうがいい(50 や 60、150 や 160 付近の誤 差に比べて)。 (「Weka を起動する(ニューラルネット)」了) 次回は「一度に複数の分析を行う」です。 September 22, 2007 Weka を起動する(複数の分析を行う)。 今回は「複数の分析を行う」である。複数の分析を行うとは、いくつかのアルゴリズム を同時に行うことである。 これまで、いくつかの分析を紹介してきたが、要はまとめて行い"accuracy"を比較し て、どのアルゴリズムが好適かを行うものである。これには weka の "Experimenter"を利用する。 分析データは weka のサンプルファイルの"weather.arff" 分析に用いたのは以下 ①決定木 ②記憶ベース推論(IBk) ③ベイズ ④ニューラル 以下、手順を下に示す。 * ここからは図を使用した説明になっており、以下の図は見難いため、 http://tech-d.blogspot.com/の画面右、“Labels & Links”の“デー タマイニング(Weka を起動する)”をクリックし、ブログ記事にて図をクリックし、 ご確認ください。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 27 Copyright (C) 2008 i-Library MOT テキスト製作委員会 28 結果から、決定木分析の"accuracy"が最も高いことがわかるが、IBk 以外は大きく 変わらない。分析の目的により選択しなければならないかもしれない。 (「Weka を起動する(複数の分析を行う)」了) 次回は「アソシエーション分析」です。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 29 5. アソシエーション分析 September 26, 2007 Weka を起動する(アソシエーション分析①) 今回のアソシエーション分析は、今更ながらであるが、データマイニングでは最も有名 な分析かもしれない。 「金曜日には、ビールとおむつが良く売れる」 といえば、どこかで聞いたことがあるかもしれない。 アソシエーション分析はマーケットバスケット分析とも呼ばれ、「商品 Z を購入する人 は商品 Y も購入する傾向がある」というように 2 つ以上のアイテムの関連性に関す るルールを探るものである。 従って、ルールの中には当然のルールもあり、ビールとおつまみ、歯ブラシと歯磨き 粉などはセットになることが多い。 さて、本ブログは「習うより慣れろ」である。早速、データ解析を行う。 まず使用するデータは以下のデータで、あるプロジェクトの概要である。参加企業数、 予算、利益などが記載されている。 分析の目的はプロジェクトでのルールを発見することで、「利益の高いのは・・・」と利 益を目的変数に設定し、説明因子を引き出すのではない。さらに、weka では、表 のように行と列が整っていることが条件で、レシートなどの顧客がいくつの品目を購 入したかが離散しているのには適さない(この方法ついては後日記載する予定)。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 30 さて、分析に入るが、weka を立ち上げ、第一に行なうのは、「分析の前に、変数の値 を名義尺度に変換する」必要がある。これは、数字ではなく、例えば、身長であれば、 高い、中程度、低い(3 つに区分:"bin"は"3"、高い、低いであれば"bin"は"2":"bin" は後述)に区分することである。 具体的には: "Choose"をクリック、filters:unsupervised:attribute:Discretize となる。 次に図の"4"(文字の部分)をクリックすると次の画面が現れる。 "bins":先ほどの身長ような数値をいくつのグループ(高い、中程度、低いなら"3")に 分けるかを指定し、通常は 2∼4 を指定する。 "useEqualFrequency":通常は"True"を指定する。 "attributeIndices"どの変数に対して変換を行うかを指定するもので通常は初期値の Copyright (C) 2008 i-Library MOT テキスト製作委員会 31 ままでよい。 "OK"をクリック後、先ほどの画面の"5"で"No class"に指定し、"6"の"Apply"をクリッ クする。これで、分析前のデータ処理が終了した。 次に、"WekaExplorer"画面の"Associate"タブをクリックする。さらに、図の赤の四角 の部分をクリックすると、別の画面が立ち上がる。 "numRules"は抽出する最大ルール数、"minMetric"は最小信頼度(metricType に ”Confidence”を選択している場合)。数値を小さくすると、抽出されるルールの候補が 増加する。"Start"をクリックすると分析が始まり、時にはルールが抽出されない場合 があるが、このような時は この数値(minMetric)を小さくしたり、"lower...support"の数値を設定したりして、ルー ルを抽出する。 画面には以下のようにアウトプットされる。 ****** Apriori ======= Minimum support: 0.1 Minimum metric <confidence>: 0.8 Number of cycles performed: 18 Generated sets of large itemsets: Size of set of large itemsets L(1): 25 Copyright (C) 2008 i-Library MOT テキスト製作委員会 32 Size of set of large itemsets L(2): 151 Size of set of large itemsets L(3): 21 Best rules found: 1. 予算='(6006.5-inf)' 企業数='(6.5-inf)' 8 ==> 開発期間='(15-25.5]' 7 conf:(0.88) 2. 企業数='(6.5-inf)' 開発期間='(15-25.5]' 8 ==> 予算='(6006.5-inf)' 7 conf:(0.88) 3. 開発期間='(15-25.5]' 利益='(19993.5-31697.5]' 7 ==> 開発種別=C 6 conf:(0.86) 4. 関連国数='(-inf-1.5]' 利益='(19993.5-31697.5]' 7 ==> 企業数='(-inf-3.5]' 6 conf:(0.86) 5. 要員='(18-inf)' 利益='(19993.5-31697.5]' 7 ==> 企業数='(-inf-3.5]' 6 conf:(0.86) ****** 典型的には"2"のルール:「企業数が多く、開発期間が中程度であれば、予算が高 い」というルールが抽出されている。 以上のように、weka では簡単に行なえるが、この分析で身につけて置かなければな らないのは、"support"と"confidence"の概念である。この概念が不明である と、当たり前のルールしか抽出できない状態になってしまい、折角のデータ収集がム ダに終わってしまう可能性がある。 これは次回に補足する。 (「Weka を起動する(アソシエーション分析①)」了) 次回は「Weka を起動する(アソシエーション分析②補足)」です。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 33 October 20, 2007 Weka を起動する(アソシエーション分析②) 今回は、support と confidence の概念についてである。 (投稿に間隔があいたにも関わらず、訪問してくださったヘビーユーザーの方に感 謝!) さて、support とは支持度、confidence は信頼度、確信度とされることが多い。 support 値とは「データベース全体で、その組み合わせ(事象)が発生する割合」で あり、confidence 値とは、「相関の強さを示し、例えば、A⇒B においては A が発 生した場合の B が発生する確率」である。 例えば、下の図において: A:おむつを購入する B:ビールを購入する として全体を 100 人とする。 それぞれ、A では 50 人、B では 20 人がこの行動をしている(購入している)ことが わかる。 ここで、support(A)とは A の行動を起こす支持度、いわゆる A の行動をする確率で、 それを P(A)と表すと、全体が 100 人なので、P(A)=50/100=0.5 となる。 同様に、P(B)=20/100=0.2 である。 さらに、A の行動を起こし、かつ、B の行動を同時に起こすのは(A⇒B)、図から 10 人いるので、これを P(A⇒B)とすれば、P(A⇒B)=10/100=0.1 となる。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 34 このときの confidence(A⇒B)は、p(B|A)と表し、p(B|A)=10/50=0.2 である。 (A の行動を起こした中で、B の行動を起こすのは?と考えるとと分りやすい) これらの結果について、どのルールを中心に考えるのかは、店舗運営者が欲するデ ータである。 そこで、分析で導出したルールの精度についての指標については、Lift 値という値が ある。 この値は、信頼度を期待信頼度で割った値で、上の例では: Lift 値(A⇒B) = confidence(A⇒B) / confidence(⇒B)= 0.2/0.2=1.0 Lift 値(B⇒A) = confidence(B⇒A) / confidence(⇒A)= 0.5/0.5=1.0 となる。 この値は 1.0 以上であることが目安とされている(が、どの値がよいかというのは分 析により様々である)。種々の導出されたルールを比較する際に役に立つ。 実際の分析では、support と confidence を指定して分析を行うことが多い。例えば、 support20%、confidende70%など・・・。この設定は分析対象により異なるので、 何回も try するしかない。 とは言っても正解がないので、どこまでルールを導出するかは決まっていない。ビジ ネスに直結するルールなら「面白いルール」より「金になるルール」の方が望ましいこ とは言うまでもない。 さて、Weka では、店舗のレシートの分析は困難で、以前記載した例のようなデータ のルール導出しかおこなえないが、apriori program(ブログで記載のリンクが切れ ていますので、ここを参照してください↓↓ http://ibisforest.org/index.php?Apriori)では、いわゆる「バスケット分析」が可 能で、ルールの導出やプログラムの使用法が詳細に記載されている。Windows で はコマンドプロンプトを利用して使用することが出来る。 非常に参考になるので、ご参照ください。 次は補足(ROC 曲線と Lift chart、研究開発部門での使用)です。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 35 補足 1 ROC 曲線と lift chart November 20, 2007 Weka を起動する(ROC 曲線と lift chart)補足 1 今回は、「Weka を起動するシリーズ」の補足である(が重要かも、これまでのシリー ズは本ブログ記事の下「Labels」の「データマイニング」をクリックすると御覧になれま す)。 「lift chart と ROC 曲線」・・・意味はわからなくとも、「習うより慣れろ」でとにかく上の グラフが描画できればいいのである。ファイルは weka がインストールされた時にイ ンストールされている weather.arff を使用し決定木分析(J48)を行う。 Classify:choose:trees:J48 でとりあえず Start、分析を行なう。 下図の部分を右クリックして、Visualize threshold curve→yes(この分析の場合 はゴルフ play する=yes)を選択する(図中"1")。すると図中"2"のグラフが描画さ れる Copyright (C) 2008 i-Library MOT テキスト製作委員会 36 これが ROC 曲線である。例では、データ数が少ないため、本記事の最初のグラフの ようにならないが、データ数が多くなれば、曲線が描けてくる。 また、"2"での赤い四角の囲みで X 軸、Y 軸を操作すれば、lift chart も描くことができ る。 つまり: ROC 曲線・・・X 軸:False Positive Rate、Y 軸:True Positive Rate lift chart・・・X 軸:Instance number、Y 軸:True Positive Rate となる。 このグラフは見難いので、Excel で描画するには: ①"2"で"Save"をクリックし、一旦 arff 形式で保存する。 ②Preprocess で①で保存したファイルをオープンし、それを csv として保存する。 手間はかかるが種々の加工がしやすいのでお薦めである。 さて、これはなぜ描画するのか? 例えば、複数の分析、決定木、ニューラル、Ibk などを実施して、分析の精度以外に比 較するときに用いる、また、単独の分析であっても、種々の条件を変更し分析を繰り 返し、満足するモデルを構築する、などである。 より最適な例としては、ROC 曲線が左上にあるほど、「泥棒が入ったときは 100%に近 づけた確率で検知システムを作動欲しいし、同時に誤報はできるだけ避けたい」であ り、同様に、lift chart では「何かのキャンペーンで何人に DM を送れば、何人の人が 反応してくれるだろうか(最小の DM 数で最大の効果を得たいなど)」を把握する測定 系である。 Confusion Matrix の概念を理解すれば、更なる助けになります。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 37 (「Weka を起動する(ROC 曲線と lift chart)補足 1」了) 適宜補足していきます。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 38 補足 2 研究開発部門での使用 December 11, 2007 Weka を起動する(補足 研究開発部門での使用) 研究開発では、特に化学反応を伴う業務では、統計解析は線形的であるため分析が 困難である。さらに、実験においては、例えば、A∼D までの 4 因子が挙げられても、 A について A1、A2、A3 など B∼D の条件は固定して A の挙動を確認することが多 い。いわゆる一因子実験である。 この方法はある意味、最もロバストな方法であるが、例えば: A:A1 で+2 B:B4 で+5 C:C1 で+3 D:D2 で+3(A∼D の総和は+13) と、一因子実験から導かれた A,B,C,D それぞれの最適条件を組み合わせると+13 が得られそうであるが(特性は望大特性とすると)、その組合せを実験すると+3 程度 と期待通りにはならない。(←本当に多い!) そういったことから、実験計画法やタグチメソッドなどの手法を推奨されているが、そ れらは最適化に用いるもので、いくつもの因子を考えている研究開発者はいずれは 最適化が必要だとは感じていても、研究開発の当初からは、(交互作用を把握するこ とを目的とすると)実験計画が膨大になり、受け入れがたい。 となると、一因子実験の集合を分析するしかない。 問題はその分析であるが、今のところ、それらをニューラルを用いて分析し、weka で の予測機能を使用し、実験計画法(交互作用を詳細に調べるには応答曲面法)でシミ ュレーションする方法が有効であると思う。 具体的には、weka で予測するには、下図のように応答因子の欄に"?"を入力し、分 析の設定で"More options..."をクリックし、"Output predictions"を選択すれば 予測値を計算してくれる。この際に"Test options("choose"の下)"を"Use training set"にしていれば、とりあえずのロジックは組んでくれる。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 39 この際に、上図の csv ファイルで"?"を入力した行を複数にして、実験計画法で設定 した因子を設定しておけば、これまでの実験から導き出されるルールをもとにシミュレ ーションしたことになる。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 40 結果を見て?であれば、新たな実験を行うであろうし、議論すべき結果があれば議論 するであろうし、シミュレーションはリソース(実験に伴う費用、人件費など)はほぼ皆 無なので、無駄なく先に進めると考えてよい(私も 100 通りほどの実験結果から仕様 を決定する際は実際にこの方法で決定した)。 ・・・研究開発に「魔法」は存在しないが、工夫は出来るものである。 (「Weka を起動する(補足 研究開発部門での使用)」了) 適宜気づいたことを掲載します。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 41 このシリーズの最後に・・・ 「データマイニング」シリーズも今回で最後になります。従来のコンセプトどおり、ほぼ 無料です(書籍代+ネット料金)。ネットで検索すれば、善意の利用者が多くのサイト に使用法を掲載していますし、海外のサイトにおいても多くの記事やファイルを無料 で手に入れることも出来ます。 データマイニングは「少しやってみよう」にもあまりにも高額ですが、わかってしまえば、 ほとんど無料で「だいたいのこと」が出来てしまいます。PC が発達した現在では、企 業実務において、ほとんどが分析可能になってくると思われますが(分析により時間 がかかるものもあります)、膨大な顧客のデータ、膨大なアイテム数となれば、分析は 同様に可能ですが、維持管理していくシステムは各企業の考え方によります。 高額なコストを支払える企業は、外部に任せてもいいのでしょうが、やはり、分析のシ ステムを知っていれば、価格交渉において有利に働くに違いありません。 そういったビジネス上の意味で、本ブログが「データマイニング」を知る上での入り口 になれば幸いです。 Copyright (C) 2008 i-Library MOT テキスト製作委員会 42 関連リンク ○本ブログの記事 http://techd.blogspot.com/search/label/%E3%83%87%E3%83%BC%E3%82%B F%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B 0) ○本ブログより内容の深いブログ データマイニング・WEKA(http://blogs.yahoo.co.jp/pironotakarabako) ○総合サイト 朱鷺の杜 Wiki−情報論的学習理論と機械学習に関するページ (http://ibisforest.org/index.php?FrontPage) *このページの"検索"にて"weka"を入力すると、多くの関連ページも表示されます。 WEKA の日本語情報サイト(http://www.weka-jp.info/) kdnuggets−マイニングのポータルサイト(英語) (http://www.kdnuggets.com/index.html) ○ソフトウェア WEKA−Machine Learning Project(http://www.cs.waikato.ac.nz/ml/) *このページヘッドの"software"をクリックし、左の"Download"から weka をダウ ンロードできます。 TeraPad−シンプルな SDI タイプのテキストエディタのダウンロードページ (http://www5f.biglobe.ne.jp/~t-susumu/library/tpad.html) ○各種分析に関する WEKA と樹木(決定木)モデルに関しての説明 (http://www1.doshisha.ac.jp/~mjin/R/20.pdf) アソシエーション分析の報告(同志社大学 金明哲教授) (http://www1.doshisha.ac.jp/~mjin/R/200611_40.pdf) 相関ルールの分析が行えるフリーソフト apriori がダウンロードできるページ κ 統計量の説明(http://aoki2.si.gunmau.ac.jp/lecture/Kappa/kappa.html) 交差検証法の説明 (http://musashi.sourceforge.jp/tutorial/mining/xtclassify/accuracy.ht ml) Copyright (C) 2008 i-Library MOT テキスト製作委員会 43 ○書籍 Ian H. Witten (著), Eibe Frank (著) 、『Data Mining: Practical Machine Learning Tools And Techniques (Morgan Kaufmann Series in Data Management Systems)』、Morgan Kaufmann Pub; 2 版 (2005/6/8) マイケル・J.A. ベリー (著), ゴードン・S. リノフ (著), Michael J.A. Berry (原著), Gordon S. Linoff (原著), 江原 淳 (翻訳), 上野 勉 (翻訳), 河野 順一 (翻訳), 佐藤 栄作 (翻訳), 朝稲 努 (翻訳)、『データマイニング手法―営業、マーケティング、CRM のための顧客 分析 (単行本) 』、 海文堂出版; 2 訂版版 (2005/10) Copyright (C) 2008 i-Library MOT テキスト製作委員会 44