NaiveBayes

大量のニュースから興味関心のある話題をベイジアン分類で抽出する

前々回はニュースデータを収集するために RSS/Atom フィードを利用する話を書きました。 RSS/Atom フィードには全文配信と要約配信があり、昨今ではページビューを稼ぐため要約配信、特にリンクがリダイレクトになっているものや、本文がカラのものが多いという話をしました。 全文配信 … タイトル、リンク、それに記事本文全体を含むフィード 要約配信 … タイトル、リンク、記事の一部のみまたは本文がカラのフィード フィードデータをためる […]

クラスタリングの結果を再利用する

データマイニングは大量のデータに解析手法を適用することで、それまで未知だったデータの特徴を発見し、新たな知見を獲得することですが、しばしば機械学習と共通の技法が利用されます。 ごく単純な考え方として教師なし学習の結果をもってすれば残りのその他のデータも同様に知識の適用が可能であり、結果を訓練データとして正確性を向上させたりすることができるわけです。 学年全体の生徒の成績を分類する 前回は生徒の科目ごとの成績からその傾向ごとに班分けをする […]

Naive Bayes Classifierを実装してみる

概要 Naive Bayes Classifier (Wikipedia)はベイズの定理を用いた教師ありの分類器で、モデルの更新のしやすさとチューニングのしやすさが特徴です[1]。 $n$個の入力フィーチャー$(x_1, \cdots, x_n)$と分類クラス$C_k (k \in K)$に対して、以下のように尤度が最大となるクラスを探します。 \mathrm{argmax}_{k \in K} \left( \ln P(C_k) + […]

Naive Bayes classifier(単純ベイズ分類器)の仕組み(導入)

Naive Bayes classifier(単純ベイズ分類器)の仕組み Naive Bayes Classifierの原理を解説します. この記事では,その導入部分だけを書き,Naive Bayesそのものまでは書きません.Naive Bayesそのものについては,次の記事で書くつもりです. 概要 Naive Bayes Classifierは,機械学習の,分類アルゴリズムの一つです. 古くから,特にテキストの分類に使われてきました. […]

ナイーブベイズ分類器をjavaで実装してみる

Naibebayes分類器をJavaで実装してみる。 ちょっと必要にかられて、javaでナイーブベイズを使うことになった。 なんかいいライブラリないかなと思って調べたら、Hadoop関連のMahoutってやつが見つかった でもそんな大規模な感じで動かすわけじゃないし・・・ なのでここの実装のJava版を作ってみる。 わかりやすいソースなので、ほぼそのままJavaで書いただけだけど・・・ 分かち書きには前回つかったelasticsearc […]

Python3.3でナイーブベイズを実装する

これは現実逃避アドベントカレンダー2013の1日目の記事です 機械学習 はじめよう 第三回 ベイジアンフィルタを実装してみようで紹介されたナイーブベイズを実装した。 ただし、この記事のコードはちょっと読みにくい。具体的には、変数名が word という単数形の単語なのに型がlistであったりと、罠が多い。さらに、3ページ目のリスト7で比較演算子の < と > を間違えるという凡ミスも見つかった。たぶん、自分でコードを実行してい […]

ベイズ定理ことはじめ

統計的仮定におけるベイズ定理は古典的ながら確率論や統計学を語る上で避けては通れない重要かつ基礎的な理論です。 尤度と事後確率 次のような例を考えてみます。 新薬の効果を調べるために 5 人の治験者を抽出した。すると 4 人には薬が有効であり 1 人には有効ではなかった。 母集団全体に有効なとき = 1 、無効なとき = 0 とすると、この標本集団から得られる新薬の効き具合の分布はどうなるか。 効く確率 θ のもとで、データ X ( 5 […]