Python のデータ可視化ライブラリは複数あり、matplotlib や seaborn を使う場合が多いのではないかと思います。特に seaborn は出版品質の図が手軽に作れるため便利で、実際に機械学習系の論文ではこのライブラリで用意したであろうグラフをよく見かけます…
『モンテカルロ統計計算』(講談社、鎌谷研吾 著、駒木文保 編)の章末問題を Julia で解くシリーズ第2回で、今回は第3章「積分法」です。解析計算するだけの問題は割愛。
Julia 言語と MCMC の勉強のため、R 向けに書かれている教科書『モンテカルロ統計計算』(講談社、鎌谷研吾 著、駒木文保 編)の章末問題を解いていこうかと思います。また、単に問題解くだけでは面白くなかったりもするので、適宜 Python との比較などを追…
機械学習モデルのハイパーパラメータを最適化するのに Optuna を使っている人も多いと思います。最適化目標(深層学習のロスや RMSE など)を決め、探索空間を適当に設定するだけでいい感じにパラメータを求めてくれるので便利ですね。ところで、Optuna にお…
私は普段 Python を使った機械学習アルゴリズムの開発とか統計分析に関わっていますが、最近どうも Julia 言語 julialang が気になっています。よくある scikit-learn や pandas もしくは PyTorch などに不満を感じることはあまりないのですが、みんな Julia…
私は最近、国立遺伝学研究所が運営するスパコンにお世話になっています。特に CPU ヘビーな計算をさせる場合に重宝しています。遺伝研スパコンは、通常、まずゲートウェイノードに SSH した後にログインノードに改めてログインすることで開発作業を進めるこ…
先日、PDB ファイルから読んだタンパク質座標データを元に、コンタクトマップを numpy でミリ秒オーダーで計算する方法を書きました。 PDB ファイルを読み込みコンタクトマップをミリ秒で計算する - luggage baggage コンタクトマップとは、3次元空間内に存…
タンパク質の構造解析をする際、各アミノ酸残基が近接しているかどうかを記述するコンタクトマップが役立つ場合があります。通例、コンタクトマップは各アミノ酸の Cα の三次元座標を用いて、互いの距離が一定以下(8Åとすることが多い)であれば近接してい…
Albumentations で TypeError: __init__() got an unexpected keyword argument 'keypoint_params' が出る場合の対処
深層学習で画像認識系のタスクを解くとき、画像データセットに対する augmentation が重要となる場合が多いです。ランダムクロップ、フリップ、リサイズ、回転、ブラーリング等々。このような定型的な処理をする際、私は Albumentations をよく使います。Git…
Python でデータ分析をする際、pandas.DataFrame を基本的な道具として使うことは多いと思います。また、DataFrame の各カラムは pandas.Series で自然に表現されており、新しいカラムを Series として書いた上で、DataFrame に追加することもあるでしょう(…
重複を含む配列があり、各々の要素に対してスコアが付随している時、スコアの大きい順に最大 N 個のユニークな要素を取得してランキングを作成する、というのを numpy.unique を使ってやる小ネタです。
この記事では、C++ で OpenCV を使いつつ、cv::Mat に格納されたバイナリデータを protocol buffer に格納しシリアライズする方法を書いていきます。画像認識系のアルゴリズムを作る際、カメラデバイス上では C++ を使ってフレームを取得し、サーバ上の Pyth…
論文を読んでいて matrix determinant lemma の証明が思い浮かばなかったのでメモ(情けない。。)。内容としては、適当な次元の単位行列 と、それと同じ次元のベクトル に対して \begin{equation} \det(I+uv^T) = 1 + v^Tu \end{equation}が成り立つ、とい…
Mac で iTerm などを使ってターミナルを開き、(SSH 経由でサーバ上の)docker コンテナをおもむろに立ち上げた際、 設定されているはずの列数よりもかなり少ないところで表示が折り返されてしまい、画面上で長めのコマンドを打つのが難しくなる Python コン…
最近になり、TensorFlow の肩に乗って確率的プログラミングをするためのライブラリ TensorFlow Probability (TFP) v0.5 がリリースされました。私は画像系タスクを TensorFlow を使って解くことが多く、特にこの記事では、画像生成系タスクに取り組むための…
統計学の分野で、クラメル・ラオ (Cramer-Rao) の不等式と呼ばれる有名な式があります: \begin{equation} V(t(z)) \geq \frac{1}{I(\theta)}. \end{equation}ここで は確率変数で、一つのパラメータ で指定される確率分布 に従って生成されると仮定します。…
最近カルマンフィルタの勉強を少ししており、行列を含む数式を素直にプログラムできる言語があるといいなと感じていました。Python を長年書いてきたものの、毎回 numpy.array を用意したり numpy 関数を呼んだりするのが少し面倒になってきました。そこで今…
お久しぶりです。TensorFlow でモデル学習をする際、便利に使われるのがtf.dataAPI です。以前はtf.contribで提供されていましたが、非常に使い勝手の良い機能だったこともあり、現在は独立したモジュールとして存在しています。様々な形式のデータ入力に対…
お久しぶりです。吉田弁二郎です。Cython という便利なトランスパイラ(言語と言語の中間にある言語のようなもの)があります。Python ライクな文法で書ける Cython スクリプトは C/C++ コードに変換・コンパイルされた後に Python から呼び出し可能で、C/C+…
こんにちは。Python には標準的なデータ型に加えていくつかの便利な型が用意されています。特に collections モジュールには、以前記事に書いた deque や、今回取り上げる defaultdict が格納されています。通常、辞書型のデータ d にデフォルト値を設定しな…
こんにちは。吉田弁二郎です。タイトルにある Upsert とは、Update or Insert のことです。あるテーブルにデータを insert しようとするとき、ユニーク制約が効いているキーが過去データのものと重複して insert できない場合、update に切り替える処理のこ…
こんにちは。吉田弁二郎です。先日タスクスケジューラを Python で実装することがあり、深さ優先探索の方針で作業を進める必要がありました。その際、リストの先頭からデータを取り出し先頭にデータを入れる、ということをやったのですが、デフォルトの list…
こんにちは。吉田弁二郎です。先日(5月5日)、pandas の最新版 0.20.1 がリリースされました。agg/transformメソッドがgroupbyしなくても使えるようになり、10倍以上高速な I/O を実現する feather-format が(試験的に)導入され、スライスの際に頻繁に利…
こんにちは。吉田弁二郎です。 前置き 最近、TensorFlow のインストールは pip により簡単にできるようになりました。一方で GPU 環境の整備(CuDNN の準備等)が相変わらず面倒だと思うことも多く、GPU 自体の進歩も早いのでオンプレ環境に手を出すのも少し…
こんにちは。吉田弁二郎です。ipython コンソールや jupyter notebook をお使いの方は、起動時の自動処理設定ができることをご存知かもしれません。具体的には、 ~/.ipython/profile_default/startupに置かれたスクリプトが起動時に自動的に読み込まれます。…
こんにちは。吉田弁二郎です。だいぶ間が空いてしまいました。小ネタの紹介です。Python 実行環境を管理するために pyenv を使う方も多いのではないかと思います。私は Anaconda のバージョンを複数入れるのに使っています。ところが、 conda create -n new_…
こんにちは。吉田弁二郎です。今回は、web 開発の主力言語の一つとなっている Ruby の文法について、Python との違いをまとめます。文法の完全な紹介を目指すのではなく、特に紛らわしい項目の差分に注目していきます。そのため、Ruby 独自の文法的な事項(m…
こんにちは。吉田弁二郎です。Python でデータ分析をする際には pandas を使うのが標準的です。特に、通常はデータを横持ちで格納しているDBから抽出してクロス集計をするというような時には、pandas.pivot_table を使うと便利ですね。最近この関数がうまく…
こんにちは。吉田弁二郎です。有給消化中です。前回、混合ポアソン分布に対して変分ベイズ法を適用し、実際に学習が行われた様子を見ました。 yoshidabenjiro.hatenablog.comところで、推定した分布が真の分布とどの程度異なっているのか、やはり定量的に把…
明けましておめでとうございます。吉田弁二郎です。前回の記事yoshidabenjiro.hatenablog.comで、混合ポアソン分布の変分ベイズ更新式を導出しました。今回は、これらを実装してアルゴリズムの動作を確認していきます。