タグ

algorithmに関するcomoglyのブックマーク (13)

  • COS類似度 - 小宮日記

    文章の類似度を計算する場合などにCOS類似度というのが 使われるらしい。 二次元で考えた場合、ベクトルAとベクトルBの類似度は、 COS類似度=AとBの内積/(norm(A)*norm(B))normは my $norm_1 = 0.0; map { $norm_1 += $_ ** 2 } values %{$vector_1}; $norm_1 = sqrt($norm_1);のように、ベクトルの要素をそれぞれ二乗して積算して、SQRTをとったもの。 二次元の場合は、norm([x,y])=sqrt(x^2+y^2)=距離ですね (このへんはボナメソのペナルティでもおなじみ。L1norm、L2norm) 内積をノルムで割ってるのは、正規化がかかるためのようです。 ベクトルによって長かったり、短かったりするでしょうから。 ベクトルとベクトルの間の角度が、類似度を表現するわけです。 内積は

    COS類似度 - 小宮日記
  • 経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた - てっく煮ブログ

    as詳解 ActionScript 3.0アニメーション ―衝突判定・AI・3DからピクセルシェーダまでFlash上級テクニック を読んでいて、経路探索のアルゴリズムで A* が取り上げられていました。A* については、いろいろ検索して調べたりもしたのですが、やっぱりに書いてあると理解しやすいですね。せっかくなので自分流に実装してビジュアライズしてみました。ダイクストラ法まずは A* の特別なケースでもあるダイクストラ法から見ていきます。クリックすると探索のシミュレーションが開始します。スタート地点(S)からゴール(G)への探索が始まります。色がついたところが「最短経路が決定した場所」です。スタート地点から少しずつ探索が完了していきます。半分ぐらい完了しました。まだまだ進みます。最後まで終わりました。最短経路を黒色矢印で表示しています。ダイクストラ法は、スタート地点から近いノード(=マス

  • コサイン尺度(コサイン類似度)の計算 - Ceekz Logs (Move to y.ceek.jp)

    文書間の類似度を求める方法の一つとして、コサイン尺度が挙げられます。コサイン尺度とは、2つのベクトルのなす角度であり、文書をベクトル化することにより、文書間の類似度を求めることが出来ます。 sub cosine_similarity { my ($vector_1, $vector_2) = @_; my $inner_product = 0.0; map { if ($vector_2->{$_}) { $inner_product += $vector_1->{$_} * $vector_2->{$_}; } } keys %{$vector_1}; my $norm_1 = 0.0; map { $norm_1 += $_ ** 2 } values %{$vector_1}; $norm_1 = sqrt($norm_1); my $norm_2 = 0.0; map { $nor

  • K-means法によるクラスタリングのスマートな初期値選択を行うK-means++ - kaisehのブログ

    K-means法は、入力データからK個のランダムな個体を初期クラスタの中心として選択し、以降、クラスタの重心を移動させるステップを繰り返すことでクラスタリングを行う非階層的手法です。K-means法はシンプルで高速ですが、初期値依存が大きいのが弱点で、不適切な初期値選択をすると間違った解に収束してしまいます。 以下は、Introduction to Information Retrievalの16章に出てくる例です。 {d1, d2, ..., d6}をK=2でクラスタリングする場合、{{d1, d2, d4, d5}, {d3, d6}}が大域最適解ですが、初期クラスタの中心をd2, d5で与えると、{{d1, d2, d3}, {d4, d5, d6}}という誤った解に収束してしまいます。 この問題を改善するK-means++という手法を見つけたので、試してみました。 K-means+

    K-means法によるクラスタリングのスマートな初期値選択を行うK-means++ - kaisehのブログ
  • ACO (Ant Colony Optimization)

    注意: このページは「XHTML 1.1 plus MathML 2.0」で書かれていますが、IEではMIME typeが「application/xhtml+xml」だと表示できないようです。Mozillaの場合は数式も表示できるのでapplication/xhtml+xmlバージョンをご覧ください(ただし、まだ書きかけですが)。 ACOとは 都市を選択する確率 時点tにおけるエージェントkが都市iから都市jへ移動する確率は次式で定義される。 p i j k ( t ) = [ τ i j ( t ) ] α [ η i j ] β ∑ l ∈ N i k [ τ i l ( t ) ] α [ η i l ] β ∀ j ∈ N i k (書き途中) いろいろなACO ACOとはフェロモンコミュニケーションを利用して最適化問題を解くアルゴリズムの総称です。ここではTSPに対するACOを

  • Graphs: Dijkstra's Algorithm

    How to find least-cost paths in a graph using Dijkstra's Algorithm. This video is distributed under the Creative Commons Attribution 2.5 Canada License. http://creativecommons.org/licenses/by/2.5/ca/

    Graphs: Dijkstra's Algorithm
  • Ibaraki Lab. (Kwansei Gakuin Univ.)

    茨木研究室の研究ターゲット 組合せ最適化問題 アルゴリズムの開発とその効率化 メタヒューリスティックによる近似アルゴリズム 問題解決エンジン 現実問題への応用 著作権 copyright©茨木研究室 カウンタ since June 2004 巡回セールスマン問題とは 平面上の n 点を一巡する最短巡回路を求める問題。困難な組合せ問題 の代表例として知られている。このデモは、225点の例であるが、最適解が 得られると“TSP”という文字が浮かび上がる。計算では、ランダムに初期解を発生 したのち、局所探索に基づく改良操作によって局所最適解を得ている。 反復のたびに異なる計算過程をたどるところに注目。

  • Yahoo!のAPIを利用してマルコフ連鎖で文章生成(php)

    形態素解析→マルコフ連鎖で文章生成のサンプル2007です。 前に書いたやつはchasenを使ってましたが、今回はYahoo!APIの 日形態素解析Webサービスを利用するサンプルコードです。 幅広い環境で使えるようにPEARのライブラリとかバージョン依存する関数とか使ってません(多分) あと、応用しやすいように冗長に書いてる部分とか、Errorチェックが抜けてる部分がありますが気にしないで下さいw 実行結果が見れるサンプルもおいときますね // 解析したい文章 $text = "はじめまして、こんにちは、わたしはLanタソです\nこんにちはこんにちは!!ぼくはまちちゃん!"; $text = str_replace("\n", "。", $text); //改行を適当に。にでも変換しる //API用パラメーター $params = array( 'appid' => '**

  • はてなのCAPTCHAを破るプログラムは30分で書ける - やねうらおブログ(移転しました)

    CAPTCHAとは、スパムコメントなどを防止するための認証画像のことである。 それにしても、はてなのCAPTCHAはひどい。無いよりマシという考え方もあるのでそれについてはあまり議論する気は無いのだが、それにしてもこれを破るプログラムは30分あれば十分書ける。 具体的には、はてなのCAPTCHAには8つの好ましくない特徴と、2つの脆弱性がある。 ■ 8つの好ましくない特徴 ・画像自体のサイズが小さすぎる。→ こんなに小さいと探索量(計算量)が小さくて済む。 ・フォントにゆがみがない → フォントはある程度変形させたほうが良い。変形させてあるとテンプレートマッチングがしにくくなる。 ・フォントが固定。→ フォントは毎回変えたほうが良い。 ・フォントを回転させていない → フォントは文字ごとにある程度ランダムに回転させた方が良い。 ・フォントサイズが一定 → フォントサイズは文字ごとにある程度

    はてなのCAPTCHAを破るプログラムは30分で書ける - やねうらおブログ(移転しました)
    comogly
    comogly 2009/08/02
    あまりに分かりづらいのも困る。
  • データ圧縮の基礎

  • Toriumi Lab.

    2024年3月26日 「情報的健康プロジェクト:アテンションエコノミーの暗翳と『情報的健康』−総合知で創出する健全な言論空間」を慶應義塾大&オンラインで開催されました. https://www.kgri.keio.ac.jp/news-event/156808.html 査読付き論文が出版されました.Chujyo, M., Toriumi, F. "Link-limited bypass rewiring for enhancing the robustness of complex networks". Appl Network Science Vol.9, No.17 (2024).  (2024年5月) 査読付き論文が出版されました.Lai, C., Toriumi, F. & Yoshida, M. ”A multilingual analysis of pro Russian m

    Toriumi Lab.
  • 転置インデックスを実装しよう - mixi engineer blog

    相対性理論のボーカルが頭から離れないmikioです。熱いわっふるの声に応えて今回はTokyo Cabinetのテーブルデータベースにおける検索機能の実装について語ってみたいと思います。とても長いのですが、最後まで読んだあかつきには、自分でも全文検索エンジンを作れると思っていただければ嬉しいです。 デモ モチベーションをあげていただくために、100行のソースコードで検索UIのデモを作ってみました。Java 6の日語文書を対象としているので、「stringbuffer」とか「コンパイル」とか「倍精度浮動小数」とかそれっぽい用語で検索してみてください。 インデックスがちゃんとできていれば、たった100行で某検索エンジン風味の検索機能をあなたのデータを対象にして動かすことができます。ソースコードはこちら(テンプレートはこちら)です。 でも、今回はUIの話ではないのです。ものすごく地味に、全文検索

    転置インデックスを実装しよう - mixi engineer blog
  • 経路探索アルゴリズムA* - gan2 の Ruby 勉強日記

    RTSや防衛ゲームでよく見るキャラが障害物を避けて通る移動方法って どういうアルゴリズムなんだろう?と気になったのでちょっと調べてみた。 そしたら、たぶんこれだっていうのが見つかったのでメモしておきます。 その名もA*(エースターって読むらしい)。 自分でFlash使って実装してみたい。 以下は参考ページ。 A*(A-star:エースター)探索アルゴリズム 概要の説明はここがすごく分かりやすい。WikipediaのA*の項を見たときは( ゜д゜)ポカーンって感じだったけど、ここの説明を読んだらすっきりした。 A*アルゴリズム、ActionScriptで。 Flashでの実装。ソース(コメントつき)あり。これを読んで勉強かなぁ。 http://torus.jp/memo/x200606/shibuya-js.rd.htmlと合わせて読むのがいいかも。 2007-07-12 C++での実装。ソ

    経路探索アルゴリズムA* - gan2 の Ruby 勉強日記
  • 1