タグ

ブックマーク / sinhrks.hatenablog.com (6)

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

    いま手元に 20万件くらいの時系列があって、それらを適当にクラスタリングしたい。どうしたもんかなあ、と調べていたら {TSclust} というまさになパッケージがあることを知った。 このパッケージでは時系列の類似度を測るためのさまざまな手法 (=クラスタリングのための距離) を定義している。うちいくつかの手法を確認し、動的時間伸縮法 / DTW (Dynamic Time Warping) を試してみることにした。 DTWの概要 時系列相関 (CCF) の場合は 片方を 並行移動させているだけなので 2つの系列の周期が異なる場合は 相関はでにくい。 DTW では 2つの時系列の各点の距離を総当りで比較した上で、系列同士の距離が最短となるパスを見つける。これが DTW 距離 になる。そのため、2つの系列の周期性が違っても / 長さが違っても DTW 距離を定義することができる。 アルゴリズム

    動的時間伸縮法 / DTW (Dynamic Time Warping) を可視化する - StatsFragments
  • Python XGBoost + pandas 連携の改善 - StatsFragments

    一部 こちらの続き。その後 いくつかプルリクを送り、XGBoost と pandas を連携させて使えるようになってきたため、その内容を書きたい。 sinhrks.hatenablog.com できるようになったことは 以下 3 点。 DMatrix でのラベルと型の指定 pd.DataFrame からの DMatrix の作成 xgb.cv の結果を pd.DataFrame として取得 補足 XGBoost では PyPI の更新をスクリプトで不定期にやっているようで、同一バージョンに見えても枝番が振られていたりして見分けにくい。記載は日時点のこのコミットの情報。 %matplotlib inline import numpy as np import xgboost as xgb from sklearn import datasets import matplotlib.pypl

    Python XGBoost + pandas 連携の改善 - StatsFragments
  • Python 次世代の多次元配列パッケージ群 - StatsFragments

    このところ、たびたび NumPy 後継が...とか 並列処理が...という話を聞くので、この秋 注目の多次元配列パッケージをまとめたい。 バックエンド系 NumPy のように数値計算処理を自前で実装しているパッケージ。 DyND Blaze プロジェクトのひとつ。C++ 実装 + Python バインディング。GitHub にいくつか Example があがっているが、複合型やカテゴリカル型、GroupBy 操作がサポートされていて熱い。ラベルデータも NumPy より簡単に実装できそうだ。 speakerdeck.com 並列分散系 自身では直接 数値計算処理を行わず、バックエンド ( 主に NumPy )を利用して並列/分散処理を行うパッケージ。1 物理PC/複数コアでの並列計算を主用途とし、NumPy, pandas では少し苦しいが PySpark などを使うほどじゃない...とい

    Python 次世代の多次元配列パッケージ群 - StatsFragments
  • Python XGBoost の変数重要度プロット / 可視化の実装 - StatsFragments

    Gradient Boosting Decision Tree の C++ 実装 & 各言語のバインディングである XGBoost、かなり強いらしいという話は伺っていたのだが自分で使ったことはなかった。こちらの記事で Python 版の使い方が記載されていたので試してみた。 puyokw.hatenablog.com その際、Python でのプロット / 可視化の実装がなかったためプルリクを出した。無事 マージ & リリースされたのでその使い方を書きたい。まずはデータを準備し学習を行う。 import numpy as np import xgboost as xgb from sklearn import datasets import matplotlib.pyplot as plt plt.style.use('ggplot') xgb.__version__ # '0.4' ir

    Python XGBoost の変数重要度プロット / 可視化の実装 - StatsFragments
  • ロジスティック回帰 (勾配降下法 / 確率的勾配降下法) を可視化する - StatsFragments

    いつの間にかシリーズ化して、今回はロジスティック回帰をやる。自分は行列計算ができないクラスタ所属なので、入力が3次元以上 / 出力が多クラスになるとちょっときつい。教科書を読んでいるときはなんかわかった感じになるんだが、式とか字面を追ってるだけだからな、、、やっぱり自分で手を動かさないとダメだ。 また、ちょっとした事情により今回は Python でやりたい。Python のわかりやすい実装ないんかな?と探していたら 以下の ipyton notebook を見つけた。 http://nbviewer.ipython.org/gist/mitmul/9283713 こちらのリンク先に2クラス/多クラスのロジスティック回帰 (確率的勾配降下法) のサンプルがある。ありがたいことです。理論的な説明も書いてあるので ロジスティック回帰って何?という方は上を読んでください (放り投げ)。 この記事で

    ロジスティック回帰 (勾配降下法 / 確率的勾配降下法) を可視化する - StatsFragments
  • 多層パーセプトロンの動きを可視化する - StatsFragments

    概要 多層パーセプトロン記事の補足。下の記事の最後で、入力されたデータを隠れ層で線形分離しやすい形に変換している、ということを確かめたかったが、MNIST データでは次元が高すぎてよくわからなかった。ということで、もうちょっとわかりやすい例を考える。 可視化シリーズとしては以下の記事のつづき。 ロジスティック回帰 (勾配降下法 / 確率的勾配降下法) を可視化する - StatsFragments 多層パーセプトロンとは 詳細は上記の記事参照。この記事では、以下のような多層パーセプトロンを例とする。 入力層のユニット数が 2 隠れ層のユニット数が 3 出力層のユニット数が 2 つまり、入力層として 2 次元のデータを受けとり、隠れ層で 3 次元空間へ写像してロジスティック回帰 ( 出力は2クラス ) を行う。 サンプルデータ 2 次元で線形分離不可能なデータでないとサンプルの意味がない。こ

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