読者です 読者をやめる 読者になる 読者になる

keisukeのブログ

***乱雑です!自分用のメモです!*** 統計や機械学習の勉強と、読み物を書く練習と、備忘録用のブログ

Qiitaへ移行

はてなのMarkdownのTeXがぶっ壊れているので、ちゃんと実装されているQiitaに移行します。 ==新ブログはこちら==

カーネルとは直感的に説明するとなんなのか?

2015-06-01追記:Qiitaに移行しました 追記ここまで How to intuitively explain what a kernel is?に対する回答がわかりやすかったので和訳 まずは質問の意図から。 質問者は、「カーネルとは直感的に説明するとなんなのか?」を聞いています。それに対する…

eralchemyをWindows環境にインストール

手間取ったのでメモ。 前提 eralchemy は 現在 Python2でしか動かない。 依存ライブラリ sqlalchemy 例のごとく pip install sqlalchemy graphviz ここからダウンロードしてインストール pygraphviz 例のごとくWindows環境ではビルド失敗なので*1、いつもお…

pandasとSQL

参考:pandasでRDBの読み書きをする Pandasは、R言語のdata.frameと呼ばれるデータ構造をPythonに移植したもので、 データ解析によく使われるライブラリ。 データ解析にはデータベースが切っても切れない関係であるため、 PandasはSQLと密に連携できるように…

分布と検定のメモ

いつも忘れるのでメモ。 前提: は独立に [tex: N(\mu, \sigma2)] に従う 知識: は [tex: N(\mu, \sigma2/n)] に従う よって、 [tex: z = \frac{\overline{x}-\mu}{\sqrt{\sigma2/n}}] は に従う はてなブログのmarkdown/TeX記法の実装がゴミカスすぎてここ…

IPython Notebookのfontやフォントサイズを変える

IPython Notebookの入力欄(code cell)はデフォルトだとmonospaceなフォントが使われているので、それを自分好みに変えるには %username%\.ipython\profile_default\static\custom\にある、custom.cssに次を追加: .CodeMirror {font-family: "Migu 1M"; font…

線形代数

線形代数の基礎を復習したので簡単にまとめ。 次のベクトル と、 行 列の行列 $$ \boldsymbol{A} = (\boldsymbol{a_1}, \boldsymbol{a_2}, \dots, \boldsymbol{a_n}) $$ を考える。 ただし と は横ベクトル、 は縦ベクトル。 行列 によって変換がおこなわれ…

gitのprintfデバッグ用のブランチ

git

参考:“debug” branch, merge “fix” branch without “debug” masterにバグがあったので、printfデバッグをおこなったブランチdebugと、バグを修正したブランチfixを作成したとします。

scipy.stats のパラメータ loc と scale について

scipy.stats の各種オブジェクトには locおよびscale というパラメータがあります. これらは結構混乱のもとなので,(自分向けに)まとめてみました. 任意の標準的な分布 があるとき, パラメータ loc=mu, scale=sigma と指定することで, が にしたがうよう…

【numpy】viewとcopy

配列のviewとは、もとの配列と同じデータを指している。 一方、copyは、もとの配列と同じデータのコピーを指している。 つまり、配列aのviewであるvが存在するとして、vの要素を書き換えるとaの値も同時に書き換わる。 しかし、aのcopyであるcの要素を書き換…

NumPyから最高のパフォーマンスを得る方法

この記事の和訳です。 色々間違っている可能性があるのでご注意ください。 NumPyはPythonの科学計算ソフトフェア群の基礎となるものです。 NumPyはndarrayというベクトル計算に最適化された特別なデータ構造を提供します。 このオブジェクトは、科学数値計算…

scipy.stats - scipyの統計関数群のAPI

scipyにはstatsという統計関数をまとめたモジュールがあります. statsにはいろいろな統計関数が用意されていますが,APIは統一されていますので,それについてちょっとまとめてみます.

【matplotlib】日本語の設定

Matplotlibで日本語を出力するのにかなり手間取ったのでメモ。 Windows, Python3を想定しています。

Markdown test - LaTeX, footnote

$$ abc $$ inline tex is $ y \sim \text{N}(\mu, \sigma) $ ok? inline tex is ok? inline tex is (y \sim \text{N}(\mu, \sigma) ) ok? $$ e^{i\pi} = -1 $$ broken footnote sample^1

【Python】 progressbar

進捗を示すためにshell上にプログレスバーを表示したいことがよくあります. 50% (200 of 400) |############ | こんなやつです. Pythonでも,重い処理をforループで回すときに欲しくなります. 当然同じことを考える人がいるので,すでにパッケージがあり…

WindowsでanacondaのEnvironment管理をする

参考:How to activate an Anaconda environment - Stack Overflow 何をしたいの? AnacondaのEnvironment管理に関する公式のドキュメントが、特にWindows環境においてはあまり充実しているとはいえないので、調べた結果を(自分用のメモも兼ねて)和訳して残…

IPython notebook (Jupyter) と IPython qtconsole を同じIPythonのカーネルで動かす

2015-05-23追記: IPython Notebook version 3 (Jupyter)からは、どうやらカスタムjavascriptが変わったようですので、%username%\.ipython\profile_default\static\customにある、custom.jsの末尾に挿入するコードは次のようになります: require([ 'base/j…

事前確率,事後確率,尤度,...

確率と統計の基礎(事前確率,事後確率,尤度,ベイズの法則,...)を勉強していると,何度も何度も見たことがある説明がなんとなく理解しづらく,難しく思えることがよくあります. 例えば, 「 が与えられたとき となる確率を と書き,事後確率と呼ぶ.」 と…

Windowsバージョン予測

世間はWindows10のニュースで賑わっていますが,なぜWindows8のあとが9ではなく10なのでしょうか. 「Windows9」にすると,これまでのWin9xシリーズであるWindows95やWindows98などを検出するためのコードにWindows9も引っかかってしまい,後方互換に問題が…

【Python】sliceの速度

listのsliceの速度がどれくらいかと思って実験してみました. 問題 長さlのlistがあるとします.その連続したr要素の和の最大値を求めます: x = [1,2,3,10,11,2] # l = 6: 長さ6のlist # sum([1,2,3]) # r = 3: 連続した3要素の和 # sum([2,3,10]) # sum([3…

xargsメモ

xargsで実行したいコマンドに2回引数を渡したいときは, 例えば画像をpngからjpgへ変換したいときは, $ find *.png | xargs -I{} convert {} {}_.jpgなどとするとよい. この例では,convert前の画像の名前と,後の画像の名前を指定しなければならないので…

【scikit-learn】変数やメソッドの命名規則

参考:http://scikit-learn.org/stable/developers/#apis-of-scikit-learn-objects自分の理解の整理も兼ねて、scikit-learnの公式ドキュメントの、特に 「規則」の部分について日本語でまとめます。 全体的にscikit-learnではAPIや命名が非常によく規則だっ…

メタ構文変数,意味のない言葉のリスト

参考:http://dev.classmethod.jp/etc/metasyntactic-variables/「メタ構文変数」とは,fooやbar,日本ではhogeやfugaなど,「意味のない」ことを意味する言葉たちです.一時的に何かをしたいときや,読者に対して「意味がない言葉である」ことを示すために…

MCMCサンプリングって何をするもの

MCMC (マルコフ連鎖モンテカルロ法)サンプリングが結局何をしているかというと, サンプリングという名の通り,未知の確率分布のサンプリングをしている. 例えば未知の確率分布を推定したいが, 解析的に解けないので数値的に解くことにする. そういうとき…

IPython Notebookの自動カッコ補完を無効にする

http://stackoverflow.com/questions/22843891/turn-off-auto-closing-parentheses-in-ipythonIPython Notebookの自動カッコ補完を無効にするには、 ~/.ipython/profile_default/static/custom/custom.js に次を書き加えば良い: if (IPython.CodeCell) { IP…

Windowsにpandocをインストール

うちの環境だけかもしれないけど、pandocをWindowsにインストールしても上手く動いてくれなかった。エラーの内容的に環境変数に追加をミスってるのだと思ってPATHを見てみると、確かに末尾にpandocへのPATHを追加してくれている: C:\my\existing\pathes;C:\…

matplotlibのArtistの階層構造

matplotlibのArtist(ユーザが意識して使っているクラス、FigureとかAxesとかAxisとか)は普通は階層構造を持つことになる。 例えば次のように図を作ると: >>> fig = plt.figure() >>> ax1 = fig.add_subplot(211) >>> line = ax1.plot(np.sin(np.arange(0,10…

matplotlib.axes.Axesのhelper methodsで作られたArtistsがどのcontainerに格納されるか

参考:Artist tutorial — Matplotlib 1.4.2 documentationmatplotlib.axes.Axes(一番良く使うArtists:subplotとか)のhelper methods(bar, plot, scatterなど)で作られたArtistsがどのcontainerに格納されるか: Helper method Artist Container Axes.annota…

matplotlibで背景の色や透明度を設定する - How to set the background color and transparency in matplotlib

参考:matplotlib公式のArtist tutorial JP matplotlibでプロットの背景の色や透明度の設定方法: >>> import matplotlib.pyplot as plt >>> fig = plt.figure() # Figure >>> ax = fig.add_subplot(211) # Axes >>> fig.patch.set_facecolor('blue') # 図全…

「情報系」と「電気系」は同じ学部?

歴史的な事情もあって,「情報系」と「電気系」は同じカテゴリにされることが多いけど,情報系と電気系とは本質的に関係はないと思う.これまでの科学で計算機を構築するためには電気回路が都合が良かっただけで,もしもメカニカルな機構のほうが効率が良か…

Python format string

Pythonのstringには.format()というフォーマット指定子のメソッドが用意されています. C言語のsprintfをするときのように,文字列に他の文字を埋め込みたいときに使うやつです. 例えば,次のように使います: >>> a = 'hoge' >>> b = 123 >>> c = 3.14 >>>…

【Google Calendar】Googleカレンダーの背景;日曜日を赤,土曜日を青にする

Googleカレンダーの日曜日の行を赤,土曜日の行を青で表示したいときは, Stylishで次を追加すれば良い: (If you want to color background of Sundays for red, Saturdays for blue in Google Calendar, you can add the following code in Stylish:) @nam…

【Python】ふたつの配列からすべての組み合わせを評価

引数をふたつとる関数f([x,y])が存在するとします(この場合は引数2つではなく、要素数2の配列をひとつ引数にとるのほうが正しいですが・・・)。 たとえば、f([x,y]) = x+y などです。 このfはうまく実装されているので、f([[1,3], [2,4]])とすると(つまり[1+…

【Python】max/minのindex

Pythonでmax/minの値ではなく、そのindexを取るためには、 >>> x = [2, 3, 0, 1] >>> max_idx = x.index(max(x)) >>> min_idx = x.index(min(x)) みたいな微妙に歯がゆい書き方をしないといけない(しかも、index()とmax()/min()で二回探索しててアホっぽい)…

numpyのshuffleとpermutationの違い

python - shuffle vs permute numpy - Stack Overflownumpyにはshuffle(x)とpermutation(x)というほぼ同じ機能の関数があります. どちらも,配列をランダムに並び替えますが,違いが2つあります.ひとつは,shuffle(x)は配列をin-placeで並び替えるが,perm…

p(x ; y, z)とp(x | y, z)の違い

probability - What is the meaning of the semicolon in $f(x;\Theta)$? - Cross Validated Probability notation question - Cross Validated Meaning of probability notations $P(z;d,w)$ and $P(z|d,w)$ - Cross Validated "The probability of x given…

マルコフ連鎖モンテカルロ法

マルコフ連鎖モンテカルロ(MCMC)法: ある時刻の標本が一つ前の時刻の標本に依存して生成されるとき,標本列をマルコフ連鎖と呼ぶ. MCMCでは,まず提案点と呼ばれる標本を生成する.提案点は代理分布にしたがって発生させる.代理分布は,ガウス分布や一様…

ベイズ推定(ベイズ予測分布)

訓練標本をとする. はの同時確率, はの事後確率, はの事前確率, はの尤度である. ベイズ推定ではは確率変数なのでモデルも条件付き確率で表される. ,から が得られる. よってであるから,ベイズ予測分布は となる. は, モデルをの事後確率で重みを…

selfってなんじゃ

Pythonでclassを定義する時、methodの引数やメンバ変数などに出現するself。 あれはそのクラスのオブジェクトを指している。obj = Cls(x, y)などとオブジェクトobjを生成すると、クラスClsのselfにobjが使われる。 実のところ、obj.method(z)は、Cls.method(…

【Firefoxアドオン】DictionaryTooltip+Stylishでポップアップ英辞郎

2015/04/15追記: 英辞郎 on the WEB (Space ALC) のサイトデザインが更新されました。 Stylishのスタイルは次のようにするとよいです: @namespace url(http://www.w3.org/1999/xhtml); @-moz-document domain("eowf.alc.co.jp") { /* common settings */ #…

matplotlibのplotの種類

pyplot — Matplotlib 1.4.0 documentationplt.plotの引数である,linestyleとcolor,markerの実際のプロット例. plt.plot(x, y, linestyle='-', color='b', marker='.')などと指定する. plt.plot(x, y, 'b.-')などと同時に指定もできる. import numpy as n…

decorator

http://www.jeffknupp.com/blog/2013/11/29/improve-your-python-decorators-explained/ @currency def price_with_tax(price, tax_rate_percentage): return price * (1 + tax_rate_percentage) では、currencyがdecorator. currencyは def currency(f): de…

yield

Improve Your Python: 'yield' and Generators Explained yield文はgenerator functionを作るために必要。 yield文をひとつでも持つ関数はgenerator functionと呼ばれる。 また、generator fucntionのインスタンス?クロージャ?(gen = gen_func()のgenみた…

numpyの1d-arrayを2d-arrayに変換

超基本的だけど毎回微妙にむかつくので整理するためにメモ.numpyはベクトルと行列を分けているので*1,ベクトルの転置が取れなくて困る. n次元ベクトルxは,numpyでは行ベクトルでも列ベクトルでもない.単にn次元ベクトル. だからx.transpose()してもな…

推定量の性質について

一致性 推定量が一致性を持つ:標本数が無限に多いときに,ある値に収束する. すなわち,に対し このときがに確率収束すると呼び, と書く. 特に,標本平均が真の期待値に確率収束することは大数の弱法則と呼ばれる. 不偏性 期待二乗誤差について, と分…

星座はクラスタリング

クラスタリングの身近な応用例といえば星座です. 距離の近い星を同じグループとみなし,分類をします.しかし,星座はそんな単純なクラスタリングではありません.まず第一に,たとえ星の距離が遠くても,「意味」が近ければ同じグループとみなされる点です…

メモ:主成分分析

主成分分析は,もとのデータ の分散共分散行列の対応する固有値が高い順にk個取ってきた固有ベクトル で張られる部分空間への, の正射影を与える.すなわち, なる変換である.

メモ:正定値/半正定値行列

行列Aが正定値行列(positive definite)であるとは, Aが対称(ゆえにAはnxn正方行列) Aの固有値がすべて正 である.これは, と等価.また,行列Aが半正定値行列(positive semi-definite)であるとは, Aが対称(ゆえにAはnxn正方行列) Aの固有値がすべて非…

【Firefoxアドオン】DictionaryTooltipの設定

Firefox最新版にしたら、DictionaryTooltipが動かなくなった。 正確に言うと、一度でもブラウザを閉じると設定がデフォルトに戻る= 英辞郎 on the WEBを永遠に追加できない という困った問題にあたった。 Waterfoxと共存させているのが悪い説もあるけど、未…

PowerPointのデフォルトテンプレート上書きのすすめ

PowerPointを空で起動すると表示される忌々しいデフォルトテンプレート。 あれが表示されると、16x9のスライドを4x3に直し、フォントを自分好みに設定し、 ページ番号を振れるようにマスタスライドをいじり、テーマに添って選んでくれた配色(大きなお世話)を…