タグ

algorithmに関するsatojkovicのブックマーク (136)

  • テキストマイニングのための機械学習超入門 二夜目 パーセプトロン - あんちべ!

    一夜目はパターン認識と機械学習の概要を学びました。今夜は、識別部で用いられる機械学習の基的な線形識別器である「パーセプトロン」を具体的に学びたいと思います。「線形識別器?パーセプトロン?何それ?」字面は厳しいですが、手を動かしてみると意外と簡単に理解できます。今夜からは数式をバリバリ使っていきますし、手を動かしていただきます。「必ず」手元にペンと紙を用意してください。そうは言ってもパーセプトロンが一体何なのか、機械学習の中でどのような位置づけなのかがわからないと混乱するかもしれません。パーセプトロンの説明へ入る前に、機械学習の3つのアプローチをご紹介します。 ●機械学習の3つのアプローチ - 識別関数、識別モデル、生成モデル 機械学習は大きく分けて識別関数、識別モデル、生成モデルという3つのアプローチがあります。 識別関数 := 入力データを見て、特定のクラスに属するよう識別(代表的な手

    テキストマイニングのための機械学習超入門 二夜目 パーセプトロン - あんちべ!
  • L-BFGS法はだからメモリが節約できるのか! - あらびき日記

    この記事は abicky.net の L-BFGS法はだからメモリが節約できるのか! に移行しました

    L-BFGS法はだからメモリが節約できるのか! - あらびき日記
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • アルゴリズム百選 - ユークリッドの互除法 : 404 Blog Not Found

    2007年12月11日16:30 カテゴリアルゴリズム百選Math アルゴリズム百選 - ユークリッドの互除法 今回は、ユークリッドの互除法を取り上げます。 ユークリッドの互除法とは何か。小学校の時に実は習っているはずですが、忘れている方は思い出してみてください。最大公約数(Greatest Common Divisor)を確実に計算する方法です。古代から有名なこのアルゴリズムは、かつては"The Algorithm"といえばこれをさすほど有名なアルゴリズムです。 それは、コードではなく普通の言葉でも簡単に書くことが出来ます。gcd(m, n)を出すには、 mをnで割り、余りがrだとする 余りrが0なら、nがGCD。 そうでなければ、nとrのGCDを求める 互い違いに割っていくので、互除法というわけです。 function gcd(m, n){ if (m < n) return gcd(

    アルゴリズム百選 - ユークリッドの互除法 : 404 Blog Not Found
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • Pythonで実装する類似度計算 - Screaming Loud

    A = {"みかん":5,"りんご":8,"ぶどう":2} B = {"みかん":5,"なし":8,"ぶどう":2,"もも":1} 辞書の要素は{単語:その出現頻度}という構成です. この2つのベクトルの類似度を計算する尺度を紹介する. PMIなど共起についての尺度は使わず,単純なベクトルの比較を行うものです. コサイン類似度 (cosine similarity) 頻度を考慮した類似度計算. よく使われる. import math def dotProduct(dicX,dicY): '''return a dot product.''' sum = 0 for key in dicX: if key in dicY: sum += float(dicX[key])*float(dicY[key]) return sum def root_squareSum(vector): """th

    Pythonで実装する類似度計算 - Screaming Loud
  • 404 Blog Not Found:アルゴリズム百選 - 二分探索(binary search)

    2007年12月04日08:30 カテゴリアルゴリズム百選Math アルゴリズム百選 - 二分探索(binary search) 今回は二分探索を取り上げます。 検索:コンピューターの最もよくある利用法 「二分探索って何?」「ググレカス」と言われないためにこの記事は存在するのですが、Webの検索に限らず、「目的のデータを見つけて取り出す」というのは、およそコンピューターの利用法で最もポピュラーなものです。 配列:コンピューターがデータを扱う根的な方法 そのデータはコンピューターのなかでどう置かれているかというと、非常に単純です。デジタル化されたデータ=数値が一定間隔で並んでいるだけです。こういうデータ構造を、配列(array)といい、この数値一個一個のことを要素(element)と言います。 現代のコンピューターでは、最小要素はバイト(byte)と呼ばれています。このバイトの中には0と1

    404 Blog Not Found:アルゴリズム百選 - 二分探索(binary search)
  • k-d tree - Wikipedia

    In computer science, a k-d tree (short for k-dimensional tree) is a space-partitioning data structure for organizing points in a k-dimensional space. K-dimensional is that which concerns exactly k orthogonal axes or a space of any number of dimensions.[1] k-d trees are a useful data structure for several applications, such as: Searches involving a multidimensional search key (e.g. range searches a

    k-d tree - Wikipedia
  • algorithm - 最近点検索をkd-treeで : 404 Blog Not Found

    2009年04月30日01:00 カテゴリMathLightweight Languages algorithm - 最近点検索をkd-treeで というわけで、kd-treeによる検索も実装してみました。 はてなブックマーク - ototoiのブックマーク データ数が少ない場合、この全検索が高速。ただデータが多くなってくるとkd-treeがいいと思う。点ならば配列をソートするだけで実現できる。 以下のデモでは、単にkd-treeによる検索だけではなく、kd-tree構築の速度と、総当たりの場合の速度の比較もできるようにしてあります。10,000点ぐらいだと、その差を顕著に感じることが出来るでしょう。100,000点ぐらいあると、感動的なほど差が出ます。それだけあってもkd-treeの方はほぼ1ms以内に検索が終わるのですから(ただしこの場合、デモの実行に合計10秒以上かかるので注意!)。

    algorithm - 最近点検索をkd-treeで : 404 Blog Not Found
  • 最近傍探索のあれこれ 主にk-d tree: 御手洗特急途中下車

    メモ書き. 全探索 (線形探索) 最も単純な方法は全探索である.注目点から空間中の全点の距離を測り, その距離が最小になる点を最近傍点とする.なお,計算量はO(n) k-d tree (k-dimensional tree) 上手に二分木をつくることで探索空間を二分探索することが可能.最も有名なのがk-d tree. どうやって木をつくるか 簡単のため2次元で考えると手順は以下のようになる. 1. x軸に平行(別に垂直でもよい)に空間を二分割する.上下でノードをつくる 2. y軸に平行に空間を二分割する.左右でノードをつくる 3. x軸に平行に空間を二分割する.上下でノードをつくる 4. ・・・ これを再帰的に繰り返す. 分割とk-d tree どうやって空間を二分割するか 図では簡単のために単純にど真ん中で空間を分割しているが, 点の座標値の中央値で分割するとk-d treeは平衡木にな

  • C言語による画像回転処理について

    回転処理において処理結果に入力画像すべてが収まるようにするためには出力画像の大きさを計算する必要があります。 幅:sw、高さ:shの画像をA度回転させたときの出力画像の幅(dw)、高さ(dh)は次のように計算されます。 ( fabs() : math.hで定義されている浮動小数の絶対値を得る標準関数 ) dw = fabs( sw * cos(A) ) + fabs( sh * sin(A) ) dh = fabs( sw * sin(A) ) + fabs( sh * cos(A) ) 実際のプログラム上では幅高さは整数でないといけないので、通常次のように四捨五入をして結果を求めます。 int dw = (int)( fabs( sw * cos(A) ) + fabs( sh * sin(A) ) + 0.5 ) int dh = (int)( fabs( sw *

  • CRFがよくわからなくてお腹が痛くなってしまう人のための30分でわかるCRFのはなし - EchizenBlog-Zwei

    機械学習の3大有名手法といえばSVM、CRF、LDAではないだろうか(と勝手に思っている)。 SVM(Support Vector Machine)については以前記事を書いたので今回はCRF(Conditional Random Fields)について書いてみたい。 機械学習超入門IV 〜SVM(サポートベクターマシン)だって30分で作れちゃう☆〜 - EchizenBlog-Zwei といっても今回はさくっと読んでもらうのを目的にしているので手法の具体的な解説は行わない。具体的な部分は@uchumik氏の資料がとても詳しい。 uchiumi log: 間違ってるかもしれないCRFの説明 また、実装方法については高村(言語処理のための機械学習入門)がとても詳しい。 さて、具体的な解説をしないなら何をするの?ということだが、今回はそもそもCRFとは何かという話をする。過去の経験上この、そも

    CRFがよくわからなくてお腹が痛くなってしまう人のための30分でわかるCRFのはなし - EchizenBlog-Zwei
  • 平均と偏差、分散、相関

    調査とか測定を行って得たデータの集まりがあったとき、その集団の構造を端的に表現してしている代表的な言葉が平均値と偏差値です。 偏差値の出し方はともかくとして、平均値の出し方ぐらいはご存じだと思いますが、その概念的なものはどうでしょう。また、偏差値もよく聞く言葉ですが、何かモヤモヤした感じを抱いていませんか?これらはデータの集まりである集団構造を一言で表せる言葉ですので、統計にはよく用いられます。 ここでは、平均値・偏差値・分散及び相関などの概念について説明します。 【平均】 平均値を求めるには、データを全て加え総個数で割る事で求めていますが、このやり方は算術平均と呼ばれています。平均にはこの他に幾何平均、調和平均がありますが、これらは特殊なもので、通常特に断りが無ければ平均と言えば算術平均の事を指しています。 幾何平均は比率の平均を出したいとき、対数正規分布の中心を求めるとき、人口の増加率

  • 相関係数と順位相関係数について (1): ピアソンの積率相関係数 - シリコンの谷のゾンビ

    同僚に順位相関に関する質問と相談をされて,2つの順位相関係数の計算方法と意味について深く考えるきっかけがあった.その後調べてわかったことについてメモをする. 疑問がわいては説明文を加えて,ということを繰り返していたらあまりに長くなってしまい,今晩中に全部を書ききれなくなったので,今晩はピアソンの積率相関係数についてのみ記述する. 内容に誤りがある可能性があるので,そのまま鵜呑みにしないように気を付けてください.なお,誤りのご指摘やコメントは大歓迎です. ピアソンの積率相関係数 まず,順位相関を計算する前に一般的に使われている相関係数がどのような意味を持っているのかということについて考える.普段何も考えずに使っている相関係数は,正確にはピアソンの積率相関係数(Pearson product-moment correlation coefficient)と呼ばれるもので,2つの確率変数の類似性

    相関係数と順位相関係数について (1): ピアソンの積率相関係数 - シリコンの谷のゾンビ
    satojkovic
    satojkovic 2012/10/20
    なんだってー!
  • k近傍法 - Wikipedia

    k近傍法(ケイきんぼうほう、英: k-nearest neighbor algorithm, k-NN)は、入力との類似度が高い上位 k 個の学習データで多数決/平均するアルゴリズムである[1]。 パターン認識(分類・回帰)でよく使われる。最近傍探索問題の一つ。k近傍法は、インスタンスに基づく学習の一種であり、怠惰学習 の一種である。その関数は局所的な近似に過ぎず、全ての計算は分類時まで後回しにされる。また、回帰分析にも使われる。 k近傍法は以下の手順からなる: 入力と全学習データとの類似度(距離)測定 類似度上位 k 個の選出 選出されたデータの多数決あるいは平均 すなわち「入力とよく似た k 個のデータで多数決/平均する」単純なアルゴリズムである[1]。 例えば環境(気温/湿度/風速)から天気(雨/曇り/晴れ)を予測する分類問題を考える。k=5 のk近傍分類では、過去100日の環境-天

    k近傍法 - Wikipedia
  • 第76回 計算量の数学 計算量と実際のコード その2 | gihyo.jp

    物事はシンプルであればあるほど記憶しやすく、組み合わせて何事かを処理するのも容易になります。アルゴリズムもシンプルであればあるほど優れていると言えます。ただ、物事をシンプルにする、とひとことで言っても、いくつかの処理のステップをまとめて1つの名前を付けること、つまり、抽象化によってシンプルにした場合には注意が必要です。抽象化してシンプルになった名前の裏では、汗水たらしててんてこ舞いして働いている人がいるかもしれませんから。営業担当者が「簡単です!うちに任してください!」といって取ってきた仕事を、製造現場の労働者が泣きの涙で作って出荷している・・・という笑えない状況と、どこか似ているような似ていないような。いえ、決して営業さんは悪くないんですよ。悪くないんですけど。 図76.1 笑顔の営業、涙の現場 計算量:ハッシュサーチの場合O(1) バイナリサーチは十分高速な検索アルゴリズムです。これ以

    第76回 計算量の数学 計算量と実際のコード その2 | gihyo.jp
  • 緯度経度の変換方法を教えてください。度分(35度43分42.38秒)から 座標(35.728439)を算出する式(javascript)を教えてください。…

    緯度経度の変換方法を教えてください。度分(35度43分42.38秒)から 座標(35.728439)を算出する式(javascript)を教えてください。 例(geocoding.jp)として以下のよう結果が得れるような式を知りたいです。 http://www.geocoding.jp/?q=%E6%9D%B1%E4%BA%AC%E9%83%BD%E8%B1%8A%E5%B3%B6%E5%8C%BA%E5%8D%97%E6%B1%A0%E8%A2%8B1-28-1 緯度 35度43分42.38秒 ↓ 35.728439 経度 139度42分42.599秒 ↓ 139.711833 このサイトを参考にしたのですが http://kawa.at.webry.info/200602/article_6.html 結果ずれてしまうのです; 35度43分42.38秒(35/43/42.380) ↓

  • 度分表記(DMM)を度分秒(DMS)に変換する計算

    例えば富士山剣ヶ峰。日で一番高いところです。 この場所の座標は測地系WGS-84で度分表記で表すとこうなります。 N35°21.6363' E138°43.6448' これを度分秒に変換します。 まずは緯度(latitude)から... 度はそのまま35を使います。 次に分は整数部の21になります。 秒は分の小数点以下(0.6363)に60を掛けたもの。すなわち38.178になります。 ですからN35°21'38.178"となります。 経度(longitude)も同様の計算方法で 度はそのまま138 分は整数部の43 秒は (0.6448 * 60) = 38.688 でE138°43'38.688"このようになります。 逆に度分秒(DMS)表記の座標を度分(DM)表記に変換する場合は上記の逆をやればいいわけです。 N35°21'38.178"の場合 まず秒の38.178を60で割ります

  • 世界測地系移行の概要 | 国土地理院

    経線・緯線は、地球を測る「ものさし」です。 日では「ものさし」のあてかたが、 世界共通の「ものさし」と違っていました!?

  • Python & matplotlibでソートアルゴリズムを可視化 - Soleil cou coupe

    主語を大きく括った割にバブル、挿入、クイックの三種類しか用意してないです。 参考:python - Updating a matplotlib bar graph? - Stack Overflow テンプレート import matplotlib import matplotlib.pyplot as plt import numpy as np from random import randint N = 60 # 配列の数 y = np.random.rand(N)*100 # ランダムな列をソートする # ここに処理を書く def animated_func(): ... # 描画更新 for rect, h in zip(rects, x): rect.set_height(h) fig.canvas.draw() ... fig = plt.figure() win = fig

    Python & matplotlibでソートアルゴリズムを可視化 - Soleil cou coupe