StatsFragments

Python, R, Rust, 統計, 機械学習とか

Theano で Deep Learning <6>: 制約付きボルツマンマシン <前編>

DeepLearning 0.1 Documentation の第六回は 制約付きボルツマンマシン (Restricted Boltzmann Machines / 以降 RBM) 。RBM は オートエンコーダとはまた別の事前学習法。かなり分量があるので、とりあえず元文書 前半のRBM の仕組みまで。 RBM を理解しにく…

R {ggplot2} の散布図に凸包 / 確率楕円を描きたい

小ネタ。{ggplot2} でグループ別の散布図を描くときに、ちょっと飾り付けをしてグループをわかりやすくしたい。 凸包 (Convex) 最初にベースとなる散布図を描く。 library(dplyr) library(ggplot2) df <- iris p <- ggplot(df, aes(x = Petal.Width, y = Pet…

Theano で Deep Learning <6の準備>: ホップフィールドネットワーク

DeepLearning 0.1 Documentation の第六回は 制約付きボルツマンマシン (Restricted Boltzmann Machines / RBM) なのだが、文書/内容とも結構 ボリュームがあるので外堀から埋めていきたい。 そのため、今回は ボルツマンマシンの前身である ホップフィール…

Python networkx でマルコフ確率場 / 確率伝搬法を実装する

ここ 1ヶ月にわたって 聖書 DeepLearning 0.1 Documentation を読み進め、ようやく 制約付きボルツマンマシン の手前まできた。 Deep Learning カテゴリーの記事一覧 - StatsFragments 制約付きボルツマンマシン (RBM) の解説 には RBM = マルコフ確率場 ( M…

R で Google Speech API を使ってこっそりがんばりたい

R

この記事は R Advent Calendar 2014 (ATND) の26日目の記事です。 こういう話がある。 有意差でたよっ - 東京で尻を洗う すばらしいパッケージだ。特に yeah::zoi はよい。これを使えば今日も一日頑張れそうな気がする。 library(yeah) yeah::zoi() しかし、…

R {arules} によるアソシエーション分析をちょっと詳しく <2>

こちらの続き。 R {arules} によるアソシエーション分析をちょっと詳しく <1> - StatsFragments データの作り方 (承前) 単体の list や data.frame から arules::transactions インスタンスを作る方法は前回まとめた。 加えて、一般のデータでありえそうな …

Theano で Deep Learning <5> : 多層 Denoising オートエンコーダ

Python Theano を使って Deep Learning の理論とアルゴリズムを学ぶ会、第五回。 目次 DeepLearning 0.1 について、対応する記事のリンクを記載。 第一回 MNIST データをロジスティック回帰で判別する 英 第二回 多層パーセプトロン 英 第三回 畳み込みニュ…

Theano で Deep Learning <4> : Denoising オートエンコーダ

Python Theano を使って Deep Learning の理論とアルゴリズムを学ぶ会、第四回。 目次 DeepLearning 0.1 について、対応する記事のリンクを記載。 第一回 MNIST データをロジスティック回帰で判別する 英 第二回 多層パーセプトロン 英 第三回 畳み込みニュ…

Python simpy による離散イベントシミュレーション

この記事は Python Advent Calendar 2014 の14日目の記事です。 この記事では、離散イベントシミュレーション用の Python パッケージ simpy について書きたい。simpy の現在のバージョンは 3.0.5、イニシャルリリースは 2002 年とかなり歴史のあるパッケージ…

R {arules} によるアソシエーション分析をちょっと詳しく <1>

今週は系列パターンマイニング用 R パッケージ {arulesSequences} と格闘していた。使い方にところどころよくわからないポイントがあり、思ったよりも時間がかかってしまった。 関連パッケージである {arules} ともども、ネットには簡単な分析についての情報…

Theano で Deep Learning <3> : 畳み込みニューラルネットワーク

Python Theano を使って Deep Learning の理論とアルゴリズムを学ぶ会、第三回。今回で教師あり学習の部分はひと段落。 目次 DeepLearning 0.1 について、対応する記事のリンクを記載。 第一回 MNIST データをロジスティック回帰で判別する 英 第二回 多層パ…

Python pandas strアクセサによる文字列処理

概要 今週の 週刊 pandas は文字列処理について。やたらと文字数が多くなったのだが、これはデータを都度表示しているせいであって自分の話がムダに長いわけではない、、、と思いたい。 今回はこちらの記事に書いた内容も使うので、適宜ご参照ください。 Pyt…

多層パーセプトロンの動きを可視化する

概要 多層パーセプトロン記事の補足。下の記事の最後で、入力されたデータを隠れ層で線形分離しやすい形に変換している、ということを確かめたかったが、MNIST データでは次元が高すぎてよくわからなかった。ということで、もうちょっとわかりやすい例を考え…

Theano で Deep Learning <2> : 多層パーセプトロン

Python Theano を使って Deep Learning の理論とアルゴリズムを学ぶ会、第二回。 目次 DeepLearning 0.1 より、 第一回 MNIST データをロジスティック回帰で判別する 英 第二回 多層パーセプトロン (今回) 英 第三回 畳み込みニューラルネットワーク 英 第四…

Python pandas の算術演算 / 集約関数 / 統計関数まとめ

概要 恒例の pandas 記事。今回は 基本的な算術演算についてまとめた。このあたりの挙動は numpy と一緒で直感的だと思うが、知っていないとハマるポイントがいくつかあるので。 準備 サンプルは DataFrame のみ。だが内容は Series でも同じ ( 行/列 2次元…

Theano で Deep Learning <1> : MNIST データをロジスティック回帰で判別する

概要 ここ数年 Deep Learning 勢の隆盛いちじるしい。自分が学生の頃は ニューラルネットワークはオワコン扱いだったのに、、、どうしてこうなった?自分もちょっと触ってみようかな、と記事やらスライドやら読んでみても、活性化関数が〜 とか、 制約付き何…

ロジスティック回帰 (勾配降下法 / 確率的勾配降下法) を可視化する

いつの間にかシリーズ化して、今回はロジスティック回帰をやる。自分は行列計算ができないクラスタ所属なので、入力が3次元以上 / 出力が多クラスになるとちょっときつい。教科書を読んでいるときはなんかわかった感じになるんだが、式とか字面を追ってるだ…

pandas でメモリに乗らない 大容量ファイルを上手に扱う

概要 分析のためにデータ集めしていると、たまに マジか!? と思うサイズの CSV に出くわすことがある。なぜこんなに育つまで放っておいたのか、、、? このエントリでは普通には開けないサイズの CSV を pandas を使ってうまいこと処理する方法をまとめたい…

{flexclust} + DTW で 時系列を k-means クラスタリングする

概要 下の記事のつづき。下の記事では DTW (Dynamic Time Warping) 距離を使って階層的クラスタリングを行った。続けて、 DTW 距離を使って 非階層的クラスタリング (k-means法) を試してみる。 stats::kmeans では任意の距離関数を利用することはできないた…

Python pandas データ選択処理をちょっと詳しく <後編>

概要 こちらの続き。これで pandas でのデータ選択についてはひとまず終わり。 Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments Python pandas データ選択処理をちょっと詳しく <中編> - StatsFragments サンプルデータの準備 データ…

{TSclust} ではじめる時系列クラスタリング

概要 こちらで書いた 動的時間伸縮法 / DTW (Dynamic Time Warping) を使って時系列をクラスタリングしてみる。ここからは パッケージ {TSclust} を使う 動的時間伸縮法 / DTW (Dynamic Time Warping) を可視化する - StatsFragments {TSclust} のインストー…

Python pandas データ選択処理をちょっと詳しく <中編>

こちらの続き。 Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments 上の記事では bool でのデータ選択について 最後にしれっと書いて終わらせたのだが、一番よく使うところなので中編として補足。 まず __getitem__ や ix の記法では、…

動的時間伸縮法 / DTW (Dynamic Time Warping) を可視化する

いま手元に 20万件くらいの時系列があって、それらを適当にクラスタリングしたい。どうしたもんかなあ、と調べていたら {TSclust} というまさになパッケージがあることを知った。 このパッケージでは時系列の類似度を測るためのさまざまな手法 (=クラスタリ…

Python pandas データ選択処理をちょっと詳しく <前編>

概要 書いていて長くなったため、まず前編として pandas で データを行 / 列から選択する方法を少し詳しく書く。特に、個人的にはけっこう重要だと思っている loc と iloc について 日本語で整理したものがなさそうなので。 サンプルデータの準備 import pan…

Python pandas で日時関連のデータ操作をカンタンに

概要 Python で日時/タイムスタンプ関連の操作をする場合は dateutil や arrow を使っている人が多いと思うが、 pandas でもそういった処理がわかりやすく書けるよ、という話。 pandas の本領は多次元データの蓄積/変形/集約処理にあるが、日時操作に関連し…

R ggplot2 で線形回帰/一般化線形モデルの残差プロット

ggplot2 で出力している他のグラフとデザインを揃えたかったので作ってみた。 インストール library(devtools) install_github('sinhrks/ggfortify') サンプル デフォルトの plot と (ほぼ) 同じ見た目にしたつもり。 library(ggplot2) library(ggfortify) m …

R {seasonal} パッケージで X13-ARIMA-SEATSを使う

X13-ARIMA-SEATS とは 米国国勢調査局 (Census Bureau)で開発している 時系列処理/季節調整プログラム。日本の統計データも 前身バージョンの X12-ARIMA を利用して季節調整しているのをよく見かける。X13 では これまでの季節調整 (X12-ARIMA) に加え、欧州…

KalmanFilter の動きを可視化する 二次元版

こちらのつづき。一次元での動きはわかってきたので、今回は二次元でやってみる + KalmanFilter の予測 F を入れてみる。 KalmanFilter の動きを可視化する 一次元版 - StatsFragments 二次元への拡張 まず以下の条件で考える。 二変数は とし、それぞれ独立…

KalmanFilter の動きを可視化する 一次元版

KalmanFilter をきちんと理解したいのだが いまいち 具体的な動作がわからない、、、ということで実装 & 可視化してみた。 KalmanFilter とは 誤差が乗っているであろう観測値の系列について、直前の観測と現在の観測を用いて 真の状態を推定する手法。例え…

Python lifelines で生存分析

サイトのアクセス履歴をみていたら "Python", "生存分析", "Kaplan-Meier" なんかがちらほらあったので、知っている方法を書いてみる。 生存分析とは いくつかのサンプルについて、何らかのイベントが起きるまでの時間とイベント発生率との関係をモデル化す…