カテゴリ:「Data Mining」

[ --.--.-- ] スポンサーサイト

[ 2013.08.04 ] Top 10 algorithms in data mining

[ 2012.09.07 ] Reality Mining

[ 2012.02.05 ] Naive Bayes(ナイーブベイズ)

[ 2012.01.31 ] Text Visualization

--.--.-- --:-- | EDIT
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Category: スポンサー広告
Permanent Link | Comment(-) | Trackback(-) | PageTop↑
2013.08.04 22:18 | EDIT
Data Miningをまた本格的に取り組みたいということで,とっかかりにサーベイ論文を引っ張りだしてきました.

"Top 10 algorithms in data mining"という論文が基本的なよく使われるアルゴリズムについて記述されていて,とても良いと思いました.

X. Wu, et al. "Top 10 algorithms in data mining", Knowledge and Information Systems, 14, pp.1-37, 2008.

データマイニングのことはよくわかりませんが,大御所の先生方も書いているということで,2013年8月の時点で引用数が800弱となっています.International Conference on Data Mining (ICDM: Data Miningのトップ会議で採択率は20%前後)でよく使われている10のアルゴリズムがまとめられています.

その10のアルゴリズムとは,
1. C4.5
2. k-Means
3. SVM
4. Apriori
5. EM algorithm
6. Page Rank
7. AdaBoost
8. k-Nearest Neighbor
9. Naive Bayes
10. CART

SVMやk-Means, AdaBoostなど機械学習から出てきてCV系でもおなじみの技術もあれば,頻出抽出のAprioriやページランクアルゴリズムなどがあります.

識別やクラスタリング,頻出アルゴリズムなど全てひっくるめたマイニング手法ですが,初学者には必見のサーベイ論文です.

書籍も出ていて,更に詳しく書かれていると思います.

Top 10 algorithms in data mining

スポンサーサイト
2012.09.07 17:13 | EDIT
Reality Miningという研究プロジェクトが,MITのメディアラボにあるようです.

現在ではアクティブな状態にはないようですが,興味深いと思ったので紹介だけ致します.

Reablity Miningのプロジェクトでは,携帯電話で取得されたデータを人物の行動のモデリングや予測に役立てようという研究です.

テキストや場所などの情報を取り入れ,マイニングを通して有益な情報を取り出してサービスに役立てようとする試みですね.

研究グループを見てみると,

- データセットの作成
- 行動のモデリングと予測
- 人間関係の予測
- ソーシャルセレンディピティ(新しい情報の発見?)
など

といったテーマが動いています.

ページを覗いてみるとデータも配布しているみたいですね.


[参考ページ]
MIT Media Lab: Reality Mining

2012.02.05 05:26 | EDIT
今回は,データマイニングの学習手法のひとつである,Naive Bayes(ナイーブベイズ)について説明します.

Naive Bayesは属性(attribute)を解析し,識別をするための手法です.

天気(天候,温度,湿度,風)から「テニスをする(yes)かしないか(no)」を識別するという有名な例があるので,この問題をベースに説明していきます.(下図参照)

naivebayes_weather


まずはMAP推定とNaive Bayesの関係を見てみましょう.

下はMAP推定です.

map

θは識別対象で,ここで言うと"yes"か"no"に,xは属性,ここでは"天候","温度","湿度","風"の要素です.
与えられた天候,温度,湿度,風から,テニスをするかどうかを数値として算出します.

この式を,ベイズ推定を用いて変形すると,

map_bayes

となります.

学習ではP(θi)とP(x1...xn|θi)を求めるわけなのですが,P(x1...xn|θi)の組み合わせを一つずつ確定させるには多くの学習サンプルが必要になります.ちょっと属性が増えたりすると,その数は膨大になります.

そこで,Naive Bayesが取り入れられてきました.

Naive Bayesは属性間の出現に依存性はない,つまり属性間は独立と仮定することで,学習を簡単にしようという方法です.

独立とみなす,つまり,P(x1...xn|θi)は以下のように書き変えられます.

independence

よって,Naive Bayesは

naivebayes
という式で示されます.

P(θ),P(xi|θ)は簡単に求められます.

P(θ)は全体の総数のうち,その状態"yes","no"がいくつあるか?ここでは総数が14, yesが9,noが5なので,
P(θ="yes")=9/14,P(θ="no")=5/14となります.

P(xi|θ)は識別対象のうちの属性の確率,例えば識別対象が"yes"(yesの数:9)の時の天気の属性"Sunny","Overcast","Rainy"があらわれる確率はそれぞれ,
P(Overlook="Sunny"|θ="yes")=2/9,P(Overlook="Overcast"|θ="yes")=4/9,P(Overlook="Rainy"|θ="yes")=3/9です.


全ての確率の計算は省略します(すいません!)が,この例では,

overlook=sunny, temperature=cool, humidity=highからyesかnoを識別しています.

yesの場合
P(Overlook="Sunny"|θ="yes")*P(temperature="cool"|θ="yes")*P(humidity="high"|θ="yes")*P(θ="yes")
= (2/9)*(3/9)*(3/9)*(3/9)*(9/14)=0.0053

noの場合
P(Overlook="Sunny"|θ="no")*P(temperature="cool"|θ="no")*P(humidity="high"|θ="no")*P(θ="no")
= (3/5)*(1/5)*(4/5)*(3/5)*(5/14)=0.0206


正規化すると,

0.0053/(0.0053+0.0206) = 0.205(yes)

0.0206/(0.0053+0.0206) = 0.795(no)

よって,ここでは値の高い"no"が識別結果となるわけですね.


Naive Bayesは学習が簡単なため(ここでは出現確率を求めて積をとるだけ),学習がとても早く,しかも学習データ数が少なくて済みます.

実装もとても簡単です.

さらに,精度もそこそこ出るので実際に使われている例も多いようです.

もし属性間が完全に独立であるならばMAP推定と等価,となりますね.


[参考]
Data Mining: Practical Machine Learning Tools and Techniques, Third Edition (The Morgan Kaufmann Series in Data Management Systems)Data Mining: Practical Machine Learning Tools and Techniques, Third Edition (The Morgan Kaufmann Series in Data Management Systems)
(2011/01/20)
Ian H. Witten、Eibe Frank 他

商品詳細を見る
2012.01.31 03:09 | EDIT
最近増えている,テキストを「見える化(Visualization)」するツールを試してみました.

ちょっと探してみたら,無料でテキストのVisualizationをしてくれるページがありました.

下は,僕の研究紹介で使ってるテキストを表示した例です.

だいたいどんな研究してるか分かるかな??

例:
- TagCrowd
tagcrowd


- Wordle
wordle


どちらもオプションを設定出来るみたいなので,いろいろ試して,自分のVisualizationを楽しめます.

 | ホーム | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。