タグ

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

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

    概要 分析のためにデータ集めしていると、たまに マジか!? と思うサイズの CSV に出くわすことがある。なぜこんなに育つまで放っておいたのか、、、? このエントリでは普通には開けないサイズの CSV を pandas を使ってうまいこと処理する方法をまとめたい。 サンプルデータ たまには実データ使おう、ということで WorldBankから GDPデータを落とす。以下のページ右上の "DOWNLOAD DATA" ボタンで CSV を選択し、ローカルに zip を保存する。解凍した "ny.gdp.mktp.cd_Indicator_en_csv_v2.csv" ファイルをサンプルとして使う。 http://data.worldbank.org/indicator/NY.GDP.MKTP.CD?page=1 補足 pandas の Remote Data Access で WorldBan

    pandas でメモリに乗らない 大容量ファイルを上手に扱う - StatsFragments
  • ロジスティック回帰 (勾配降下法 / 確率的勾配降下法) を可視化する - StatsFragments

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

    ロジスティック回帰 (勾配降下法 / 確率的勾配降下法) を可視化する - StatsFragments
  • {flexclust} + DTW で 時系列を k-means クラスタリングする - StatsFragments

    概要 下の記事のつづき。下の記事では DTW (Dynamic Time Warping) 距離を使って階層的クラスタリングを行った。続けて、 DTW 距離を使って 非階層的クラスタリング (k-means法) を試してみる。 stats::kmeans では任意の距離関数を利用することはできないため、任意の距離関数が利用できる {flexclust} というパッケージを使うことにした。 補足 DTW についてはこちら。 動的時間伸縮法 / DTW (Dynamic Time Warping) を可視化する - StatsFragments インストール install.packages('flexclust') library(flexclust) {flexclust} の使い方 サンプルデータは前回記事と同一。 まずは既定 (ユークリッド距離) で k-means してみる。サンプル

    {flexclust} + DTW で 時系列を k-means クラスタリングする - StatsFragments
  • 動的時間伸縮法 / 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 pandas プロット機能を使いこなす - StatsFragments

    pandas は可視化のための API を提供しており、折れ線グラフ、棒グラフといった基的なプロットを簡易な API で利用することができる。一般的な使い方は公式ドキュメントに記載がある。 Visualization — pandas 0.17.1 documentation これらの機能は matplotlib に対する 薄い wrapper によって提供されている。ここでは pandas 側で一処理を加えることによって、ドキュメントに記載されているプロットより少し凝った出力を得る方法を書きたい。 補足 サンプルデータに対する見せ方として不適切なものがあるが、プロットの例ということでご容赦ください。 パッケージのインポート import matplotlib.pyplot as plt plt.style.use('ggplot') import matplotlib as mpl m

    Python pandas プロット機能を使いこなす - StatsFragments
  • 1