============================================= ナイーブベイズ分類器、あるいは単純ベイズ分類器という分類器について解説したいと思います。 何それ?という方。まずはわけがわからないとしてもWikipediaのエントリを見てみましょう。 http://ja.wikipedia.org/wiki/単純ベイズ分類器 上の説明でよくわかったという方はこれ以上先に進む必要はありません。 ナイーブベイズ分類器は、一言でいうと、 分類問題ってベイズの定理を使えば解けるんじゃね? というものです。入力 $X$ が与えられた時に出力 $Y$ が得られる確率 $P(Y|X)$ は以下の等式で表す事が出来ます: $$ P(Y|X) = \frac{P(Y) P(X|Y)}{P(X)} $$ これがベイズの定理です。 $P(Y)$ は事前分布と呼ばれ、 $P(X|Y)$
実践編です。 ベイジアンフィルタを使ったアプリケ-ションの流れは、大きく分けて以下の3段階になります。 カテゴリ(クラス)定義 パターン学習 文書分類 単純ベイズ分類器(Naive Bayes classifier)ではクラス毎に単語の出現頻度を記憶して、その情報をもとに文書がそれぞれのクラスに属する確率を求めます。 SPAMフィルタなどでは「spam」と「nospam」のように2つのクラスだけで使用されることが多いです。多分。 パターン学習は、特定の文書(単語のセット)がどのクラスに所属するかを指定します。 これにより出現頻度のデータベース(コーパス)が更新されて、次回以降の分類精度を向上させることができます。 通常は、クラスを最初に設定して、以降は学習と分類を繰り返すような感じになると思います。 …ということで、クラスの定義から。 何故かNaiveBayesianStorageには、カ
株式会社ゴクロの中路です。普段は機械学習の手法を用いたアルゴリズム改善など、サーバーサイドの開発を行っています。 SmartNewsでは様々なニュース記事を「エンタメ」「スポーツ」「グルメ」などのチャンネルに分けて表示しています。そのようなことを可能にするためには、ニュース記事がどのチャンネルに属するのかを判断する必要があるわけですが、それを行っているのは人ではありません。機械が、アルゴリズムに基づいて、自動的に行っています。 今回のエントリーでは、その「自動的にチャンネルに分類する仕組み」について書こうと思います。 SmartNewsにおける、ニュース記事のチャンネル判定を単純化すると、ベースには「ナイーブベイズ分類器」と呼ばれる、機械学習の初歩的な知見があります。このエントリーではナイーブベイズ分類器をメイントピックとして取り上げます。ナイーブベイズ分類器については、すでに様々なとこ
先日領収書の束やその他の書類を日付順に分類していたのだが、書類ソーターの類を使わずにソートしていたところ小分けの山がたくさんできあがってしまい、しまいにはどの山が何だったか分からなくなってしまった。 ふとコンピュータサイエンスの授業で習ったソートアルゴリズムを使えばいいのではと思い立ち、紙の山をすべて元に戻し基数ソートをかけたところすんなりと作業を終えることができた。その後別の作業でクイックソートやマージソートも試すことができた。 そこで質問なのだが/.erの皆は物理的にソートする際どんなアルゴリズムを使っているだろうか?
オバマ大統領の再選に大きく寄与したことで大きな注目を集めているA/Bテスト。A/Bテストを導入した、することを検討している、という開発現場も多いのではないだろうか。 そんな中、Web上で次のような議論を見つけた。 20 lines of code that will beat A/B testing every time Why multi-armed bandit algorithm is not “better” than A/B testing 一言でまとめると「A/Bテストよりバンディットアルゴリズムの方がすごいよ」「いやいやA/Bテストの方がすごいし」ということだ。 で、バンディットアルゴリズムとは一体何者なのか? そこでBandit Algorithms for Website Optimization (O'REILLY)を読んでみた。その結果分かったことを踏まえてざっくりと
最新記事(inside out)へ | 年と月を指定して記事を読む(クリック!) / 2001/ 2002/ 2003/ 2004/ 2005/ 2006/ 2007/ 2008/ 2009/ 2010/ 2011/ 2012/ 2013/ 2014/ 2015/ 2016/ 2017/ 2018/ 2019/ 2020/ 2013年1月 を読む << 2013年2月 を読む >> 2013年3月 を読む 東京が誇る「ラーメン二郎」と京都が誇る「天下一品(ラーメン)」を区別する画像処理アルゴリズムを、今日は作ってみました。 見た目(色)だけで言えば、ラーメン二郎と天下一品のスープはかなり似ています。しかし、Googleで「天下一品 こってり」と「ラーメン二郎」でイメージ検索をかけた結果(左下:”天下一品 こってり”のイメージ検索で得られた画像群、右下:”ラーメン二郎”のイメージ検索で得ら
最近、ゲーム界隈ではプロシージャルテクスチャー生成だとか、プロシージャルマップ生成だとか、手続き的にゲーム上で必要なデータを生成してしまおうというのが流行りであるが、その起源はどこにあるのだろうか。 メガデモでは初期のころから少ないデータでなるべくど派手な演出をするためにプロシージャルな生成は活用されてきたが、ゲームの世界でプロシージャル生成が初めて導入されたのは、もしかするとドルアーガの塔(1984年/ナムコ)の迷路の自動生成かも知れない。 なぜ私が迷路のことを突然思い出したのかと言うと、最近、Twitterで「30年前、父が7年と数ヶ月の歳月をかけて描いたA1サイズの迷路を、誰かゴールさせませんか。」というツイートが話題になっていたからである。 この迷路を見て「ああ、俺様も迷路のことを書かねば!俺様しか知らない(?)自動迷路生成のことを後世に書き残さねば!」と誰も求めちゃいない使命感が
友達との情報交換や、芸能人とのふれ合いの場などとして人気のTwitter。そんなTwitterが、ただのコミュニケーション手段に留まらず、もっとシリアスな面でも活用されるようになるという。その手段というのが、風邪や伝染病などのトラッキングだ。 米大学の研究チームは、ニューヨーク在住の60万人のTwitterユーザーによるつぶやきを、1ヶ月に渡り調査。全440万に上るつぶやきの中から、風邪や病気にかかったとのツイートのみをコンピュータ・アルゴリズムで抽出し、病人の分布マップを作成した。研究チームによると、コンピュータの口語解読技術でツイートからユーザーの健康状態を割り出し、GPS機能で体調不良のユーザーの所在及び健康なユーザーとの交流などを解析することによって、風邪や伝染病がどんなスピードで、どこに広がっていくかの予測に成功したという。 また、同解析で使用されるアルゴリズムでは、ユーザーのフ
目次 1. 『コンプガチャの数理 -コンプに必要な期待回数の計算方法について-』 2. 『「数学的ゲームデザイン」というアプローチ』 3. 『コンプガチャの数理 -ガイドラインに基づいたゲームデザイン その1-』 4. 『コンプガチャの数理 -ガイドラインに基づいたゲームデザイン その2-』 目的 コンプガチャのコンプに必要な回数を求める問題は「The Coupon Collector's Problem」と呼ばれる数学モデルの枠組みに沿った美しい問題である事を述べ,いくつかの有用な結果を示す。 ※ あくまで個人研究のつもりで書いたので,色々不備があるかもしれません。その際は一言頂けると助かります。 定義 コンプガチャ問題を Coupon Collector's Problem に準じた形で書くと以下の様になる: 「全部で n 種類のアイテムがあって,1つのガチャの中にアイテムが1つ入って
@shibataismさんが、日経Bizアカデミーに「日本のエンジニアはシリコンバレーで通用するのか?」という記事を書いている。 「僕は文系だけど、エンジニアとして一流だ」と自己主張する人がいますが、採用側から見て実際にそうであることは稀です。シリコンバレーの企業では、採用面接の際に「 ○○アルゴリズムを書いてみてください」といったように、具体的かつ実践的な課題が出されます。こうした面接で、文系の人は(そもそも大学できちんと勉強したことがないので)適切な回答をするのが難しい場合が多いのです。 とあるのだが、アメリカの大学で数学を勉強し、プログラミングは独習したソフトウェアエンジニアとして1、少し補足してみたいと思う。 「文系」だからといって諦める必要はない これはまあその人の経験によるのだろうけど、文系出身のエンジニアだからといって諦める必要はない。[平林さん](https://falla
私は昔、趣味で作っていたアプリに機能を「追加」する度に、アプリケーション(実行ファイル)の総サイズを「減らす」、というのを繰り返していたよ。速度も同様に。 これによって「あるパターンはこう簡潔に直せる」というパターン知識が積み上がっていった気がするな。 さらに、それを実現する過程で、限界に見えた状況を打開するために色んな既存アルゴリズムを勉強して実際に使って身につけていくことになった。 ある問題があるときに、的確に適合するアルゴリズムや構成が発見(選択)できると、劇的に簡潔になることがある。そこにたどり着けるかどうか考えるのが楽しい。 あと、同じコードを何年も「育てる」という経験をすると、保守性の低いコードがどう困るかが身に染みるようになるよね。ソースコードは「人が読む物」でもあり、読みやすいというのも保守するなら重要なパラメータになる。これはコメントを書けという意味じゃない。コメ
ちょっと最近というか、ここ数年はというか、ここ10数年は、 常に強迫的に勉強せざるえない状況が続いておりまして、 まぁその辺の反省も踏まえて、 特に今後のIT屋さんとして何が必要ですか、 という点をまとめておく。 「マスターしておきたい技術」という感じです。 今は汎用機・オープン化に変化があった時期以上の転換期でもあり、 twitterのTL上の知り合いのほぼ8割強が ここ一年で転職するという異常事態になっています。 自分自身も現状の会社では満足に仕事ができないということで 会社を作ったという経緯もあり、 そんな中で、動く人たち「共通の仕様」みたいなものを感じます。 そんなこんなで、 要は、特に一線で活躍している技術者の人たちには、 共通のコモンセンスというのがあるな、 ということを良く思う訳です。 これは冷静に見ると、汎用機の時代からあまり変わってなくて、 つまり基礎(基本ではないですよ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く