タグ

algorithmに関するmoqadaのブックマーク (28)

  • UUID(v4) がぶつかる可能性を考えなくていい理由 - Qiita

    お手軽にランダムなIDを取得したい時にUUIDはとても重宝します。 でもたまに、 「このID(UUID)ってぶつかることない?対策しなくて大丈夫?」 と聞かれることがあります。 それに対して、 「ウィキペディア先生がぶつからねえって言ってたから大丈夫だよ!(#゚Д゚)」 で切り抜けるのもそろそろ限界のような気がするのでちゃんと調べました。 (もちろんウィキペディア先生を頼りました!) 2つの理論 UUIDの衝突確率について考える上で次の2つの理論が重要になります。 鳩の巣原理 誕生日のパラドクス 鳩の巣原理 鳩の巣原理とは、 m個の入れ物にn個のものを入れるとき、n > m ならば少なくとも1個の箱には2個以上のものが入る 9個の巣箱に10羽の鳩が入る場合、必ずどれかの巣箱には2羽以上入ることになるということです!(ウィキペディア先生) 考えれば当たり前のことですが同様にして考えれば、 「

    UUID(v4) がぶつかる可能性を考えなくていい理由 - Qiita
  • バンディットアルゴリズム入門と実践

    財務省の理論研修で担当した「上級ミクロ経済学」の講義スライドです。講義内容については、以下のウェブサイトをご参照ください: https://sites.google.com/site/yosukeyasuda2/home/lecture/mof15micro [2020/4/19] 講義の音声配信(無料です)を始めました。ご関心のある方はこちらをご覧ください: https://note.com/yagena/n/nab05d7a24681

    バンディットアルゴリズム入門と実践
  • バンディットアルゴリズムによる最適化手法

    TOPICS Programming , Database 発行年月日 2013年07月 ISBN 978-4-87311-627-3 原書 Bandit Algorithms for Website Optimization FORMAT 書は、「多腕バンディット問題」と呼ばれる問題を解くためのアルゴリズムを、Webサイトの最適化という例をもとに解説する書籍です。 バンディットアルゴリズムに関する基的な知識について、既存研究についての理解を十分に得て、多腕バンディット問題についての資料を自力で読めるようにすることを目的としています。 A/Bテストのような2者択一ではなく、新しいアイデアの探索と、既存のアイデアから最大限の利益を引きだすという矛盾する2つの問題を解決するための一助となるでしょう。なお書はEbookのみの販売となります。 yuku_tさんによる書の英語版とバンディット

    バンディットアルゴリズムによる最適化手法
  • A/Bテストよりすごい?バンディットアルゴリズムとは一体何者か - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? オバマ大統領の再選に大きく寄与したことで大きな注目を集めている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

    A/Bテストよりすごい?バンディットアルゴリズムとは一体何者か - Qiita
  • アルゴリズムイントロダクション輪講 動的計画法の発表資料 - てっく煮ブログ

    2009年3月2日に、はてな京都オフィスで開催された アルゴリズムイントロダクション輪講 の第12回で「動的計画法」について発表しました。資料をここにおいておきます。View more presentations from nitoyon.分かりやすくしようと気合を入れてまとめたら165ページの大作になっちゃいました。無駄に長くてすいません。アルゴリズムの設計と解析手法 (アルゴリズムイントロダクション)作者: T.コルメン, R.リベスト, C.シュタイン, C.ライザーソン, Thomas H. Cormen, Clifford Stein, Ronald L. Rivest, Charles E. Leiserson, 浅野哲夫, 岩野和生, 梅尾博司, 山下雅史, 和田幸一出版社/メーカー: 近代科学社発売日: 2007/03メディア: 単行

  • はてな

  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • そろそろChaIMEについて一言いっておくか - 射撃しつつ前転 改

    2月は割とガンガンと開発をしてきたのだが、3月に入ってさすがにエネルギーが切れてきたので、一旦、気分転換にエントリに書いてみることにする。 ChaIMEというのは主に研究目的のかな漢字変換エンジンである。奈良先の小町さん(id:mamoruk)がメインで開発していて、自分もここしばらくはアクティブに開発している。こちらでデモを試すことができる。ChaIMEの特徴はひたすらに統計情報で変換をするところなのだが、今回はそういった話ではなく、もうちょっと一般的なかな漢字変換についての話をダラダラと書いてみようと思う。 デモを見て分かる通り、今までのChaIMEはステートレスで、ひらがな列を入力に対してそれっぽい変換候補を複数出力してさぁ選べ、という形だった。文節境界を変更したり、文節毎に候補を出すことはできない。これは単に実装コストの問題で、研究用途で実験をする際には文節境界を変更してどうたらこ

    そろそろChaIMEについて一言いっておくか - 射撃しつつ前転 改
    moqada
    moqada 2009/03/02
  • クラスタリング (クラスター分析) - Toshihiro Kamishima

    クラスタリング (clustering) とは,分類対象の集合を,内的結合 (internal cohesion) と外的分離 (external isolation) が達成されるような部分集合に分割すること [Everitt 93, 大橋 85] です.統計解析や多変量解析の分野ではクラスター分析 (cluster analysis) とも呼ばれ,基的なデータ解析手法としてデータマイニングでも頻繁に利用されています. 分割後の各部分集合はクラスタと呼ばれます.分割の方法にも幾つかの種類があり,全ての分類対象がちょうど一つだけのクラスタの要素となる場合(ハードなもしくは,クリスプなクラスタといいます)や,逆に一つのクラスタが複数のクラスタに同時に部分的に所属する場合(ソフト,または,ファジィなクラスタといいます)があります.ここでは前者のハードな場合のクラスタリングについて述べます.

    クラスタリング (クラスター分析) - Toshihiro Kamishima
  • インデックスの基礎知識

    ■ インデックスとは データベースの世界で、インデックス(索引)とはテーブルに格納されているデータを 高速に取り出す為の仕組みを意味します。 インデックスを適切に使用することによってSQL文の応答時間が劇的に改善 される可能性があります。 インデックスにはB-Treeインデックスをはじめ、ビットマップインデックス、 関数インデックスなどの種類がありますが、ここでは最も一般的に使われ、かつ ほとんどのDBMSでサポートされているB-Treeインデックスについて解説します。 ※ CREATE INDEX文でオプションを指定しない場合は通常B-Treeインデックスが 作成されます。 ■ B-Treeインデックスのしくみ B-Tree(Balanced Tree)インデックスは次のようなツリー状の構造になっています。 ツリーの先頭はヘッダブロックと呼ばれています。ヘッダブロックでは、キー値の 範囲

    moqada
    moqada 2008/12/29
    データベースのインデックスについてわかりやすく解説してある。
  • クイックソート - Djangoへの片思い日記

    Javaによるアルゴリズム事典 作者: 奥村晴彦,杉浦方紀,津留和生,首藤一幸,土村展之出版社/メーカー: 技術評論社発売日: 2003/05メディア: 単行購入: 2人 クリック: 61回この商品を含むブログ (60件) を見るの P.60 のクイックソートをやってみた。 #!/usr/bin/env python # -*- coding: utf-8 -*- def _sort(list, first, last): x = list[(first + last) / 2] i = first j = last while True: print list while list[i] < x : i += 1 while x < list[j] : j -= 1 if i >= j : break swap = list[i] list[i] = list[j] list[j] =

    クイックソート - Djangoへの片思い日記
  • 著名ソーシャルメディアが使っているアルゴリズムを大公開! | Moz - SEOとインバウンドマーケティングの実践情報

    “アルゴリズム”は、もっとも非人間的なものの代表だともいえる。ソーシャルメディアにとって、そのアルゴリズムが不可欠だというのは、実に皮肉めいている。 僕はこの間、グーグルがどうやってユーザーデータを集めているかについて書いた記事を掲載した(前編、後編)。今回は、著名なソーシャルメディアサイトが、ユーザーデータを活用する上でどのようにアルゴリズムを用いているのか、白日の下にさらそう。 ソーシャルメディアを成り立たせているのは人間の力だが、ユーザーが入力したデータを利用できる状態にする仕組みは、アルゴリズムによって作られている。現在活動している無数のソーシャルメディアサイトで実証済みのことだが、ユーザーの関与とアルゴリズムによる処理ルールの上手いバランスを見出すことは、とても難しくなりがちだ。これから紹介するアルゴリズムは、悪意のないユーザーと結びついて初めてうまくいくものだ。 人気ソーシャル

    著名ソーシャルメディアが使っているアルゴリズムを大公開! | Moz - SEOとインバウンドマーケティングの実践情報
    moqada
    moqada 2008/08/19
    digg, deliciousなどのアルゴリズム
  • DO++: 機械学習による自然言語処理チュートリアル

    自然言語処理のときに使う機械学習手法のテクニックをざーっと2時間程度で紹介してほしいとのことだったので今日話してきました。基的に、そんなに頑張らなくても効果が大きいものを中心に説明(特にパーセプトロンとか)を説明してます。 紹介した手法はパーセプトロン、最大エントロピー、正則化、多クラス分類、系列分類(CRF, Structured Perceptron)などなどです。どれも一かじりする感じで網羅的に見る方を優先してます。個々の詳しい話はそれぞれの文献や実装などを当たってみてください。 スライド [ppt] [pdf] ここで話しているのは線形識別モデルの教師有り学習が中心で教師無し学習(クラスタリングなど)など他の自然言語処理を支える技術は省いてます。 こういうのを使って(使わなくてもいいけど)どんどんアプリケーション作らないといかんね。 Tarot is not used to ma

    DO++: 機械学習による自然言語処理チュートリアル
  • 統計ソフトRのブログ 共起性尺度

    共起尺度について説明します。 共起とは、まさに ある一組の「共に起きる」程度を表したものです。 例えば、 amazonを検索するときに、 この商品を買っている人は、このも買っています と紹介されますが、それは、過去の購買データから、 共起が高い商品を勧めているのです。 共起尺度として、 主なものは、 共起頻度、Jaccard係数、Simpson係数、コサイン距離があります。 これらの指標について、「X」と「Y」という一組の共起性がどう測られるか示します 「X」と「Y」の単独での出現数を|X|、|Y|、 どちらか一方が出現した回数を|X∪Y|、 両方が出現した回数を|X∩Y|とします。 A)共起頻度 共起の回数であり、 |X∩Y|で計算される。 B)Jaccard係数 どちらかが出現したうち、何回同時に出現するかで、 |X∩Y|/|X∪Y|で計算される C)Simpson係数 Jacc

    moqada
    moqada 2008/08/04
    共起頻度、Jaccard係数、Simpson係数、コサイン距離について
  • ”専門用語(キーワード)自動抽出システム”のページ

    1.専門用語(キーワード)自動抽出システムとは? 当サイトでは、専門用語(キーワード)自動抽出システムの基システムおよび応用システムを提供しています。 専門用語(キーワード)自動抽出システムとは、単なる文章の単語分割ではありません。一般に文章中では複数の単語の組み合わせで複雑な概念を表す場合が多く、文章の内容が専門的な事項に特化すればその傾向はさらに顕著なものとなるでしょう。したがって文章中からキーワードを抽出する場合、単語分割機能だけでは意味を成しません。そこで、このシステムでは、(1)形態素解析プログラムによる単語分割、(2)複合語の作成、(3)文章中における重要度の計算、という3つのステップを踏むことで、複合語により複雑な概念を表すことが多い専門用語をキーワードとして文章中から抽出することに成功しました。 自作の文章からキーワードを抽出したい! メタデータ作成のためにウェッブサイト

    moqada
    moqada 2008/07/08
    キーワード抽出アルゴリズム
  • Chapter.2 巡回セールスマン問題に対するGAの応用 - 田中雅博監修・日高正博製作補助 知能情報Web教材

    巡回セールスマン問題(TSP)とは? 巡回セールスマン問題 (the Traveling Salesman Problem) は,N個の都市すべてを1度ずつ訪問した後に最初の都市に戻る巡回路のうち、 最小の距離のものを求める問題である。 この巡回セールスマン問題に対してGAの応用を考えよう。 Partially Matched Crossover [PMX] 通常の交叉では、都市の重複が考えられるため、工夫する必要がある。ここでは連続した組の遺伝子対に着目し、交叉するPMXの手順を簡単に説明する。 一対の親染色体が以下のように与えられているとき、ある連続した部分列の組(この例では(3,7),(6,2),(1,5)の3組)に注目する。

  • 1日で作る全文検索エンジン - Building a full-text search engine in "ONE" day - - とあるはてな社員の日記

    最近、「Introduction to Information Retrieval」というStanfordの大学院向け教科書のドラフトを読んでいます。id:naoyaあたりが勉強会で読んでいる教科書です。この教科書には、効率のいい全文検索システムを作るにはどうすればいいか、という(まさに)教科書的手法が網羅的に書いてあり、そのあたりに興味がある人には、非常に興味深く読めるお勧めのです。 ただ、面白い面白いと言っているだけでは、エンジニアとしては価値半減ですので、GW中にrubyで一日かけて実装してみました。 さすがに実装は、一日で作ったものですから、非常に素朴です。マルチバイト文字はbi-gramで、シングルバイトはスペースなどの区切り記号で認識しています。インデックスは、rubyの処理系のHashやArrayで保持しており、外部にMarshallで書き出す、というものです。検索エンジン

  • タグクラウドのアルゴリズム (それなりブログ)

    それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou  座右の銘: 「三度の飯より、四度の飯」 タグクラウドの大きさを決めているアルゴリズムはどうなってるのかなと、PHPのTagCloud.phpと、Rubyのtagcloud-rubyを読んみました。 両方ともCSSセレクタ生成等が処理の中に入ってしまっており、ライブラリとしてはやや微妙な感じ。(元のPerlの実装に合わせているからだと思いますが) なので、アルゴリズムだけ貰おうかと。 【最も基的なアルゴリズム】 最終的に、各タグの大きさは25段階の範囲で区分される。 ソース内ではこれを level と読んでおり、0-24の範囲で指定している。 level算出方法は以下の通り 1. 最もタグ付けされている回数が多いタグの回数を取得し、それの平方根を求

  • mixi Engineers’ Blog javascript

    moqada
    moqada 2007/12/05
    キーワード関連情報のアルゴリズムなど
  • [を] 転置インデックスによる検索システムを作ってみよう!

    転置インデックスによる検索システムを作ってみよう! 2007-11-26-5 [Algorithm][Programming] 転置インデックス[2007-06-17-6]による検索システムの実装は パフォーマンスを無視すれば意外と簡単です。 それを示すために Perl で簡単な検索システムを作ってみました。 検索方式は転置インデックス(Inverted Index)、 ランキングには TF-IDF[2005-10-12-1] を用いました。 検索対象ファイルは一行一記事で以下のフォーマットとします。 [記事ID][SPC][記事内容]\n 記事IDは数字、記事内容は UTF-8 の文字で構成されるものとします。 以下のようなサンプル test.txt を用意しました。 1 これはペンです 2 最近はどうですか? 3 ペンギン大好き 4 こんにちは。いかがおすごしですか? 5 ここ最近疲れ

    [を] 転置インデックスによる検索システムを作ってみよう!