タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

AlgorithmとALgorithmとVIsualizationに関するagwのブックマーク (93)

  • 第6回 はてなブックマークの可視化(後編) | gihyo.jp

    はじめに 最終回となる今回は、これまでの学習内容のまとめとして、はてなブックマークの人気エントリーをツリーマップとして可視化します。 この可視化では、ノードの表示位置によってブックマークのカテゴリ特性を、ノードの大きさによってブックマーク数を、そして色によってブックマークの「コメント率」を、それぞれ視覚的に表現します。 ソースコードのダウンロード 今回作成するプログラムのソースコードは、こちらから一括してダウンロードすることができます。ZIPファイルを展開して生成されるフォルダを、プロジェクトとしてNetBeansに読み込むことも可能です。 特徴量ベクトルの生成 前回のプログラムでは、はてなブックマークにユーザーが付与したタグの一覧を収集しました。このタグ情報を特徴量ベクトルに変換し、第2回で作成したMultiVectorクラスのインスタンスとして表現することを考えます。 このとき問題とな

    第6回 はてなブックマークの可視化(後編) | gihyo.jp
  • 第5回 はてなブックマークの可視化(前編) | gihyo.jp

    はじめに 今回からは、これまで学んできた「階層的クラスタリング」と「ツリーマップ」の手法を活用して、はてなブックマークの人気エントリーの可視化に挑戦します。まずデータの準備段階として、はてなブックマークが提供するWeb APIにアクセスし、人気エントリーの情報を取得するプログラムを作成します。 ソースコードのダウンロード 今回作成するプログラムのソースコードは、こちらから一括してダウンロードすることができます。ZIPファイルを展開して生成されるフォルダを、プロジェクトとしてNetBeansに読み込むことも可能です。 はてなブックマークのAPI はてなブックマークには、数種類の開発者向けAPIが用意されています。これらのAPIを利用すると、はてなブックマークから様々な情報を取り出すことができます。連載では、人気エントリーのRSSフィードとエントリー情報取得APIを組み合わせて使用します。

    第5回 はてなブックマークの可視化(前編) | gihyo.jp
  • 第4回 ツリーマップによる木構造の可視化(後編) | gihyo.jp

    前回に引き続き、ツリー構造のデータを可視化する「ツリーマップ」の手法を扱います。今回は、グラフィックスAPIJava2Dを使用して、実際にツリーマップを描画し、画像ファイルへ出力を行います。 ソースコードのダウンロード 今回作成するプログラムのソースコードは、こちらから一括してダウンロードすることができます。ZIPファイルを展開して生成されるフォルダを、プロジェクトとしてNetBeansに読み込むことも可能です。 Java2Dによるグラフィックス Javaには、Java2Dと呼ばれる2次元グラフィックスAPIが標準で付属しています。Java2Dの仕様は大変充実しており、例えば以下のような機能がサポートされています。 基図形の描画 テキストの描画 パスの作成 交差判定 座標系の拡大・縮小・回転 アンチエイリアス グラデーション 半透明描画 画像ファイルの入出力 視覚的に美しい情報可視化を

    第4回 ツリーマップによる木構造の可視化(後編) | gihyo.jp
  • 第3回 ツリーマップによる木構造の可視化(前編) | gihyo.jp

    はじめに 前回は、統計学的観点からの情報可視化へのアプローチとして、「⁠階層的クラスタリング」の手法を紹介し、その実装と動作確認を行いました。 今回からは、階層的クラスタリングの実行結果を視覚的に分かりやすく表現する手段として、「⁠ツリーマップ」と呼ばれるテクニックを取り上げます。 ソースコードのダウンロード 今回作成するプログラムのソースコードは、こちらから一括してダウンロードすることができます。ZIPファイルを展開して生成されるフォルダを、プロジェクトとしてNetBeansに読み込むことも可能です。 ツリーマップの概要 ツリーマップ(treemap)とは、二次元平面上の領域を入れ子状に分割することによって、木構造のデータを可視化する手法です。 ツリーマップを利用した情報可視化の有名な例としては、世界のニュース記事をタイル状に並べて閲覧できるnewsmap(図1)があります。 図1 また

    第3回 ツリーマップによる木構造の可視化(前編) | gihyo.jp
    agw
    agw 2009/05/08
    距離関数としてのWard法。
  • wonderfl build flash online | 面白法人カヤック

    wonderflは、サイト上でFlashをつくることのできるサービス。 通常Flashをつくるためには、Flash IDEやFlex、FlashDevelop等といったツールを使って、コードを書き、コンパイルする必要がありますが、wonderflでは、サイトにあるフォームにActionscript3のコードを書けば、サーバサイドでコンパイルを行えます。 つまり、ブラウザさえあれば、Flashをつくれます。コンパイル結果はサイト上に表示され、作成されたFlash(swf)はページ上に自動的に表示されるので、完成したFlashをリアルタイムに見ながらコードを書くことができます。 ※APIとして、はてな OpenIDを使用してネットにさえつながれば、誰もがFlashクリエイターになれます。世界中のFlashクリエイターがユーザーになるwonderflは、 文字通り、世界のFlash図鑑となってい

    wonderfl build flash online | 面白法人カヤック
  • クイックソート

    ソートアルゴリズムの最後を飾るのは、やはりクリックソートです。 クイックソートは、データの比較と交換回数が非常に少ないのが特徴で、一般的なばらばらデータ(ランダムに散らばっているデータ)に対して、最も効率良く並べ替えを実行します。 クイックソートは、実用上もっとも高速であるとされている並べ替えアルゴリズムで、多くのプログラムで利用されています。 ばらばらなデータが格納された配列 a[ ] が与えられた場合に、それらをクイックソートで並べ替える手順を、下の図に示します。 まず始めに、「軸要素」と呼ばれるデータ値を決定します。この値は、データ全体を2つに分割するときのしきい値として使われます。軸要素は、分割が均等に行われるように選ぶのが望ましいのですが、その選択に時間をかけると、かえって並べ替えの時間を大きくしてしまいます。一般には、次のような方法がよく用いられているようです。 データの先頭の

  • Poker88 - Bandar Poker Online Terpercaya Mudah Jackpot #1

    Poker88: Situs Poker Online Terpercaya dengan Jackpot Terbesar di 2024 Selamat datang di Poker88, bandar poker online yang telah mendapatkan kepercayaan sebagai situs nomor satu untuk jackpot besar dan layanan pelanggan yang unggul. Di tahun 2024, Poker88 terus memimpin sebagai pilihan utama bagi para pemain yang mencari tidak hanya kemenangan besar tetapi juga pengalaman bermain yang adil dan ama

    agw
    agw 2009/05/05
    素晴らしい可視。
  • Visualizing and Diagrams « Cowboy Programming

  • Reddit - The heart of the internet

  • アルゴリズム再入門

    2012-07-16 14:25:12 WEB+DB PRESS総集編[Vol.1~36] | 技術評論社 WEB+DB Press 総集編[Vol.1〜36]に書いた記事『Webエンジニアのための基礎,徹底理解 3章:アルゴリズム再入門 C#編』を公開します。 ちなみにこの記事ではデータ構造についての話を最小限にしています。出てくるデータ構造は配列と二分木だけ。それは、データ構造については別のライターさんが記事を書くことになっていたからです。 ちなみに、書いてみたかった(というか、書いてみたけどやめた)アルゴリズムは、 ハッシュ法 (これはデータ構造の章にあります。すばらしいです) 木の探索 (traversal) 平衡木 (AVLとか) その他の有名なソート (バブルソート、シェルソート、ヒープソート、etc) Skip List (これはどちらかと言うとデータ構造メインな話なのでため

    アルゴリズム再入門
  • 第14回 近代コンピュータ史――「日本人初」はあなたかも,目指せ,チューリング賞

    コンピュータ界のノーベル賞と言われる「チューリング賞」。プログラミング言語やアルゴリズム,OSなど基盤技術の開発者が名を連ねる。ITエンジニアとして,偉大な先達たちの業績を知っておきたい。 この連載も,いよいよ最終回である。今回は「チューリング賞(ACM Turing Award,http://www.acm.org/awards/taward.html)」の受賞者たちの業績から,近代コンピュータ史を振り返ってみよう。チューリング賞は,コンピュータ界のノーベル賞と言われている。米国コンピュータ学会(ACM=The Association for Computing Machinery)が,1966年から毎年1回,コンピュータ科学の発展に貢献した人物に授与している権威ある賞だ。チューリング賞という名称は,1935年にコンピュータの数学的モデルを示したアラン・M・チューリング(Alan M.

    第14回 近代コンピュータ史――「日本人初」はあなたかも,目指せ,チューリング賞
  • クイックソート - Wikipedia

    クイックソート(英: quicksort)は、1960年にアントニー・ホーアが開発したソートのアルゴリズム。分割統治法の一種。 個のデータをソートする際の最良計算量および平均計算量は (ランダウの記号)である。他のソート法と比べて一般的に最も高速だと言われている[2]が、対象のデータの並びやデータの数によっては必ずしも速いわけではなく、最悪の計算量はである。安定ソートではない。 クイックソートは以下の手順で行われる。 ピボットの選択:適当な値(ピボット(英語版)という)を境界値として選択する 配列の分割:ピボット未満の要素を配列の先頭側に集め、ピボット未満の要素のみを含む区間とそれ以外に分割する 再帰:分割された区間に対し、再びピボットの選択と分割を行う ソート終了:分割区間が整列済みなら再帰を打ち切る 配列の分割方法の一例として、以下のようなものが考えられる: 配列要素からピボット P

    クイックソート - Wikipedia
  • サービス提供終了のお知らせ

    agw
    agw 2009/04/24
    良い二進木の可視化。
  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた - てっく煮ブログ

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、RESET を押すと好きなパラメータで試すことができます。こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。K-means 法とはK平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージになります。各点にランダムにクラスタを割り当てるクラスタの重心を計算する。点のクラスタを、一番近い重心のクラスタに変更する変化がなければ終了。変化がある限りは 2. に戻る。これ

    agw
    agw 2009/04/22
    大変分かりやすい。
  • Sticks(4) - カメヲラボ

    探索イメージ 探索方法がイマイチ掴み難いという人もいるかもしれないので、ちょっと図を描いてみた。 ポイントを整理しておくと、 (1)データを降順にソートしておく。 (2)値の大きい順(=配列の前から順)に、stickの長さ(=length)から0になるまで値を引いていく。同時に、使用した値にはラベリングしておく。 (3)長さ0になったら、lengthを元の長さにセットしなおして(2)を再実行 (4)失敗したらバックトラック (5)長さがlengthのstickがsum/lengthできれば成功。 DFSの肝は、 最も新しくラベリングされた点に隣接する点を探索するというところだ。つまり図の中では、探索を左側から順に行うことになる。一旦15-4-...と探索を始めたら、「どうやってもムリ!」というところまで探索してからバックトラックしていく。今回の解は15-3-2-...なので、図の①〜③は

    Sticks(4) - カメヲラボ
    agw
    agw 2009/04/07
    素晴らしい可視化。
  • Sorting Algorithms Animations

    KEY Black values are sorted. Gray values are unsorted. A red triangle marks the algorithm position. Dark gray values denote the current interval (shell, merge, quick). A pair of red triangles marks the left and right pointers (quick). DISCUSSIONThese pages show 8 different sorting algorithms on 4 different initial conditions. These visualizations are intended to: Show how each algorithm operates.

    Sorting Algorithms Animations
  • ALGORITHM NOTE

    X×Y個のセルから成るグリッド上のスタート地点から出発し、全5種類のパチクリ(生物)を捕まえた状態でゴール地点まで行く最短コストを求める問題です。各パチクリはそれぞれ、火、氷、木、土、水の属性を持ち、火のパチクリは氷のパチクリを捕まえることができ、氷のパチクリは木のパチクリを捕まえることができ、といったように火→氷→木→土→水→火というような属性の関連があります。スタート地点で最初に持つパチクリを1つ選ぶことができます。グリッドのサイズx, y はそれぞれ2以上1000以下で、各属性のパチクリの数はそれぞれ0以上1000以下です(全体の数は5000以下)。 最初に1つのパチクリを選んだ後のパチクリを捕まえる順番は、上記属性の関連の順番になります。例えば最初に火の属性をもつパチクリを持っていれば、氷、木、土、水の属性をもつパチクリを順番に捕まえてゴールに行けばよいので、下図に示すDAG(Di

  • 計算量を具体的に見てみる 2009-01-06 - きしだのはてな

    アルゴリズムの話では、計算量の解析がかかせません。 計算量はオーダー記法で表されますが、これは、データの入力量に対してどのくらい時間がかかるかをあらわしたものです。 こういった話はどのアルゴリズムのにも載ってるはずですが、具体的にどのようなプログラムを書くとそのオーダーになるかという記述はあまりありません。 ということで、やってみました。 計算時間表示のための共通処理を行うクラスは、一番最後に書いてます。 O(1) 計算時間がO(1)のアルゴリズムは、処理が入力の量によらない場合です。 配列の要素のアクセスや、ハッシュテーブルによるデータ検索、連結リストへの追加削除などがこれにあたります。 コードには入力量でのループが含まれません。 public class O1 extends ViewCompFrame{ @Override void compute(int n) { proc();

    計算量を具体的に見てみる 2009-01-06 - きしだのはてな
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • The Danger of Naïveté

    07 Dec 2007 The Danger of Naïveté In my previous post on shuffling, I glossed over something very important. The very first thing that came to mind for a shuffle algorithm is this: for (int i = 0; i < cards.Length; i++) { int n = rand.Next(cards.Length); Swap(ref cards[i], ref cards[n]); } It's a nice, simple solution to the shuffling problem: Loop through each card in the deck. Swap the current c