Skip to content

Instantly share code, notes, and snippets.

View atakemura's full-sized avatar

Akihiro Takemura atakemura

View GitHub Profile
@atakemura
atakemura / preprocessing.py
Created December 12, 2016 23:13
densecap_py3_preprocessing
# 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
@atakemura
atakemura / basic_kalman.md
Last active December 23, 2015 16:55
day_23_kalman

なんでまた

書いてみたかっただけです。反省していません。

その他

噂によると状態空間モデルは便利らしい…
とりあえずどういう原理で動いているかは理解しておいて損はなさそう

参考: http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf

@atakemura
atakemura / kdd_alive.md
Created December 30, 2014 09:50
まだ生きているKDDデータセット
@atakemura
atakemura / stfuawsc_itg_day_19.md
Last active August 29, 2015 14:11
PythonでCount-Min Sketch実装してみた

最近読んだHokusai論文の中にあったCount-Min Sketchというアルゴリズムを実装してみた。

##そもそもCount-Min Sketchとは?

詳しい説明はG. Cormode, S. Muthukrishnanによる元の論文解説をご一読いただければと。

学者や研究者の方が興味を持つところとは若干違うかもしれないが、

  • 全データをメモリに載せるのは諸事情により不可能(お金の問題でRAM100GB+はきつい)
  • 毎回SQLでSELECT KEY, COUNT(*)...は遅くて我慢できません
@atakemura
atakemura / stfuawsc_itg_day_18.md
Created December 18, 2014 15:32
numpy & scipyでソフトマックス回帰やってみる

はじめに

隠しても仕方ないのであらかじめ書いておきますと、この記事に出てくるコードはUFLDLの演習問題用に書いたOctaveコードをPythonに書き直しただけです。

Q. 実用度は?
A. ほぼありません。判別精度を求めるなら別の方法で組むべきです。
Q. 車輪の再発明?
A. 理解を深めるための意図的な再発明です。
Q. scikit-learnで(ry
(ちゃぶ台がひっくり返る音)

@atakemura
atakemura / stfuawsc_itg_day_14.md
Created December 13, 2014 18:38
stfuawsc_itg_day_14

まもの退治の心構え

ソフトウェア開発において「銀の弾丸」はあったらいいなとは思いますが、それがあったら/なかったらという仮定から始めるのではなく、まずそれが存在しないということに基づいて始めることにします。[1]
この記事では私がコードを書くときに心がけていることについて項目を分けて書いていきますが、全ての項目について共通して言えることは
「選択の責任を負うこと」
この一言です。

遺産

バグを出さない唯一の方法はコードを書かないことです。どれだけテストされたコードでもバグが含まれている可能性があり、その可能性をゼロにするにはコードの量をゼロにする以外に方法はありません。しかしそれでは問題の解決ができないので、コードを書くことにすることがほとんどです。[2]
ここで「コードを書く」という選択を下したことについての責任、およびその結果であるコードについての責任を負うと考えること。
例えば

@atakemura
atakemura / 小ネタ.md
Last active August 29, 2015 14:11
stfuawsc_itg_day_9

小ネタ

一日待ってみたものの他に書く人の気配がない…これは書くしかないということで小ネタを少々。

インプット

毎日最低3時間は学習する時間をつくる。

  • 本を読む
  • 参加できなかったカンファレンスのキャッチアップ(主に海外)
  • まとまった時間がとれるならCourseraで何か受講する

本は基本KindleかKindleで読めるフォーマットのみを購入。ハードコピーは特殊な理由がない限り買わない。気になるだけなら広尾の都立図書館で読んでみる。(技術系もかなり充実)

賞味期限

ソースコードはナマモノです。誰かが面倒を見てあげなければ腐ってしまいます。
見捨てられ、誰にも見向きもされず、「動いているから」という理由だけで放置されるコードほど醜いものはありません。
では誰かが面倒を見ればよいではないか、というそこのアナタ、ソフトウェア開発の現場に数年もいれば一度は見たことがあるのではないでしょうか、レポジトリという名の迷宮を…

そしてそこに棲まう魔物を。

行き止まりで口を大きく開け待ち受ける巨大メソッド、触れるもの全てを依存関係の触手で巻き取ってしまうクラス…
いずれもあなたの前任者[1]が迷宮に閉じ込め、新人開発者の魂を吸い続けたものの成れの果てです。

sys.version_info(major=2, minor=7, micro=6, releaselevel='final', serial=0)
@atakemura
atakemura / git clone log
Created August 22, 2014 10:04
jedi-vim cursormovedl error
$ 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.