書いてみたかっただけです。反省していません。
噂によると状態空間モデルは便利らしい…
とりあえずどういう原理で動いているかは理解しておいて損はなさそう
# coding=utf8 | |
import argparse, os, json, string | |
from collections import Counter | |
from queue import Queue | |
#from multiprocessing import Queue | |
#from Queue import Queue | |
from threading import Thread, Lock | |
from math import floor |
書いてみたかっただけです。反省していません。
噂によると状態空間モデルは便利らしい…
とりあえずどういう原理で動いているかは理解しておいて損はなさそう
最近読んだHokusai論文の中にあったCount-Min Sketchというアルゴリズムを実装してみた。
##そもそもCount-Min Sketchとは?
詳しい説明はG. Cormode, S. Muthukrishnanによる元の論文と解説をご一読いただければと。
学者や研究者の方が興味を持つところとは若干違うかもしれないが、
SELECT KEY, COUNT(*)...
は遅くて我慢できません隠しても仕方ないのであらかじめ書いておきますと、この記事に出てくるコードはUFLDLの演習問題用に書いたOctaveコードをPythonに書き直しただけです。
Q. 実用度は?
A. ほぼありません。判別精度を求めるなら別の方法で組むべきです。
Q. 車輪の再発明?
A. 理解を深めるための意図的な再発明です。
Q. scikit-learnで(ry
(ちゃぶ台がひっくり返る音)
ソフトウェア開発において「銀の弾丸」はあったらいいなとは思いますが、それがあったら/なかったらという仮定から始めるのではなく、まずそれが存在しないということに基づいて始めることにします。[1]
この記事では私がコードを書くときに心がけていることについて項目を分けて書いていきますが、全ての項目について共通して言えることは
「選択の責任を負うこと」
この一言です。
バグを出さない唯一の方法はコードを書かないことです。どれだけテストされたコードでもバグが含まれている可能性があり、その可能性をゼロにするにはコードの量をゼロにする以外に方法はありません。しかしそれでは問題の解決ができないので、コードを書くことにすることがほとんどです。[2]
ここで「コードを書く」という選択を下したことについての責任、およびその結果であるコードについての責任を負うと考えること。
例えば
一日待ってみたものの他に書く人の気配がない…これは書くしかないということで小ネタを少々。
毎日最低3時間は学習する時間をつくる。
本は基本KindleかKindleで読めるフォーマットのみを購入。ハードコピーは特殊な理由がない限り買わない。気になるだけなら広尾の都立図書館で読んでみる。(技術系もかなり充実)
sys.version_info(major=2, minor=7, micro=6, releaselevel='final', serial=0) |
$ git clone --recursive https://github.com/davidhalter/jedi-vim.git | |
Cloning into 'jedi-vim'... | |
remote: Counting objects: 1563, done. | |
remote: Total 1563 (delta 0), reused 0 (delta 0) | |
Receiving objects: 100% (1563/1563), 283.70 KiB | 119.00 KiB/s, done. | |
Resolving deltas: 100% (674/674), done. | |
Checking connectivity... done. | |
Submodule 'jedi' (https://github.com/davidhalter/jedi.git) registered for path 'jedi' | |
Cloning into 'jedi'... | |
remote: Counting objects: 17347, done. |