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

StatsFragments

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

PyStan で「StanとRでベイズ統計モデリング」11.3節

著者の松浦さんから「StanとRでベイズ統計モデリング」をいただきました。ありがとうございます! 書籍では Stan の R バインディングである RStan を利用していますが、Stan には Python 用の PyStan もあります。松浦さんが書籍 5.1節の PyStan での実行例…

Python でパイプ演算子を使いたい <2>

ネタ記事です。/ This is a joke post which makes no practical sense. 過去にこんなエントリを書いた。 sinhrks.hatenablog.com R では パイプ演算子 %>% を使って連続した処理を記述できる。式に含まれる x, y, z は非標準評価 (NSE) によって data.frame…

Python pandas 欠損値/外れ値/離散化の処理

データの前処理にはいくつかの工程がある。書籍「データ分析プロセス」には 欠損など 前処理に必要なデータ特性の考慮とその対処方法が詳しく記載されている。 が、書籍のサンプルは R なので、Python でどうやればよいかよく分からない。同じことを pandas …

Python Dask で Out-Of-Core / 並列 LU 分解

はじめに 正方行列 を となる下三角行列 と 上三角行列 に分解することを LU 分解という。LU 分解ができると連立方程式の解や逆行列が 前進/後退代入でかんたんに求められてうれしい。 Dask を使って LU 分解を Out-Of-Core / 並列でやりたい。 LU 分解の並…

Cesium.js を Python から使うパッケージを作った

3D 地図を表示する JavaScript ライブラリである Cesium.js を Python から簡単に使いたい。Cesium.js についてはこちらを。 sinhrks.hatenablog.com 上に記載した方法は、可視化したい内容に応じて JavaScript のテンプレートを作成し、Python からデータを…

Python pandas で e-Stat のデータを取得したい

e-Stat とは "「政府統計の総合窓口(e-Stat)」は、各府省が公表する統計データを一つにまとめ、統計データの検索をはじめとした、さまざまな機能を備えた政府統計のポータルサイト" だそうだ。このデータを pandas で読めるとうれしい...ということで対応…

Python Jupyter + Cesium.js で 3D 地図が描きたい

Cesium.js とは Web GL を利用して 3D 地図を描画する JavaScript ライブラリ。かなり多機能で様々な見せ方ができるようだ。詳しく知りたい方は公式サイトの Demos を見ればいい。 cesiumjs.org これを Jupyter Notebook に埋め込んで使いたい。Cesium.js に…

Python pandas + folium で Leaflet をもっと使いたい

先日参加させていただいた Japan.R でこんな話を聞いた。 RPubs - leafletではじめるRによる地図プロット Python でも folium というパッケージを使うと JavaScript を書かなくても Leaflet.js の一部機能が使えるのだがあまり情報がない。上の資料に書いて…

Chainer + Dask で 並列 Deep Learning したい <1>

この記事は Chainer Advent Calendar 2015 17 日目の記事です。 はじめに サイズが大きいデータを Deep Learning すると学習に時間がかかってつらい。時間がかかってつらいので並列処理して高速化したい。 並列化するのに良さそうなパッケージないかな? と探…

Python Dask.Array で 並列 / Out-Of-Core 処理

この記事は Python Advent Calendar 2015 13 日目の記事です。 Python で手軽に並列 / Out-Of-Core 処理を行うためのパッケージである Dask について書きたい。Dask を使うと以下のようなメリットが得られる。 環境構築 / インストールが pip で簡単にできる…

Python Jupyter + pandas で DataFrame 表示をカスタマイズする

先日 pandas v0.17.1 がリリースされた。v0.17.0 に対するバグフィックスがメインだが、以下の追加機能もあるため その内容をまとめたい。 HTML 表示のカスタマイズ Jupyer 上では pandasの DataFrame は自動的に HTML として描画される。この HTML に対して…

Python pandas プロット機能を使いこなす

pandas は可視化のための API を提供しており、折れ線グラフ、棒グラフといった基本的なプロットを簡易な API で利用することができる。一般的な使い方は公式ドキュメントに記載がある。 Visualization — pandas 0.17.1 documentation これらの機能は matplo…

岩波データサイエンス Vol.1

ご恵贈いただきました。 ありがとうございます! あわせてタスクもいただきました (下部)。 書籍のコンテンツ 各章ごとの内容は id:sfchaos さんが詳しく紹介されています。 d.hatena.ne.jp まだ すべて読めていないのですが、以下 3 点がよいポイントだと思…

pandas 0.17.0 の主要な変更点

先日 10/9 に pandas 0.17.0 がリリースされた。直近のバージョンアップの中では かなり機能追加が多いリリースとなった。 重要な変更は リリースノート にハイライトとして列挙しているのだが、これらはある程度 pandas を使いこなしている方向けの記載とな…

PyConJP 2015: pandas/Daskについてお話させていただきました

10日、11日と PyCon JP に参加させていただきました。ご参加いただいた皆様、スタッフの皆様ありがとうございました。資料はこちらになります。 pandas internals パフォーマンス向上のための pandas 内部実装の説明といくつかの TIPS について。そのうち翻…

Python XGBoost + pandas 連携の改善

一部 こちらの続き。その後 いくつかプルリクを送り、XGBoost と pandas を連携させて使えるようになってきたため、その内容を書きたい。 sinhrks.hatenablog.com できるようになったことは 以下 3 点。 DMatrix でのラベルと型の指定 pd.DataFrame からの D…

Python Dask で 並列 DataFrame 処理

はじめに 先日のエントリで少し記載した Dask について、その使い方を書く。Dask を使うと、NumPy や pandas の API を利用して並列計算/分散処理を行うことができる。また、Dask は Out-Of-Core (データ量が多くメモリに乗らない場合) の処理も考慮した実装…

Python 次世代の多次元配列パッケージ群

このところ、たびたび NumPy 後継が...とか 並列処理が...という話を聞くので、この秋 注目の多次元配列パッケージをまとめたい。 バックエンド系 NumPy のように数値計算処理を自前で実装しているパッケージ。 DyND Blaze プロジェクトのひとつ。C++ 実装 +…

NumPy でつくる俺々データ構造

はじめに Python での数値計算の基盤をなす NumPy 、直感的なスライスやブロードキャスト、関数のベクトル適用など大変便利だ。 import numpy as np np.__version__ # '1.9.2' np.array([1, 2, 3]) # array([1, 2, 3]) np.array([1, 2, 3])[:2] # array([1, …

Python でパイプ演算子を使いたい

ネタ記事です。/ This is a joke post which makes no practical sense. はじめに Python pandas では主要な操作を以下のようにメソッドチェインの形で書くことができる。 # Python (pandas) df.assign(x=df['y'] + df['z']).groupby('x').sum() pandas v0.1…

Python XGBoost の変数重要度プロット / 可視化の実装

Gradient Boosting Decision Tree の C++ 実装 & 各言語のバインディングである XGBoost、かなり強いらしいという話は伺っていたのだが自分で使ったことはなかった。こちらの記事で Python 版の使い方が記載されていたので試してみた。 puyokw.hatenablog.co…

Python xray で 多次元データを pandas ライクに扱う

はじめに pandas では 2 次元、表形式のデータ ( DataFrame ) を主な対象としているが、ときには 3 次元以上のデータを扱いたい場合がある。そういった場合 以下のような方法がある。 MultiIndex を使い、2 次元のデータにマッピングする。 3 次元データ構造…

Python geopandas + Bokeh で地理情報をプロットしたい

数日前、pandas を利用して地理情報をプロットするという非常によいエントリが翻訳されていた。 postd.cc 上のエントリ、前処理が手間に見えるが pd.read_html や .str アクセサを使えばもっと簡単に書けると思う、、、がそれは本題でない。 pandas で地理情…

Python pandas パフォーマンス維持のための 3 つの TIPS

pandas でそこそこ大きいデータを扱う場合、その処理速度が気になってくる。公式ドキュメントではパフォーマンス向上のために Cython や Numba を使う方法を記載している。 Enhancing Performance — pandas 0.16.2 documentation が、軽く試したいだけなのに…

Chainer で Deep Learning: Bokeh で Live Monitoring したい

概要 Deep Learning の学習には時間がかかるため、進捗が都度 確認できるとうれしい。その際、テキストのログ出力では味気ないので、リアルタイムでプロットを眺めたい。 いくつかの Deep Learning パッケージではそういった機能 (Live Monitoring) が提供さ…

Chainer で Deep Learning: model zoo で R-CNN やりたい

ニューラルネットワークを使ったオブジェクト検出の手法に R-CNN (Regions with CNN) というものがある。簡単にいうと、R-CNN は以下のような処理を行う。 入力画像中からオブジェクトらしい領域を検出し切り出す。 各領域を CNN (畳み込みニューラルネット…

Python pandas データのイテレーションと関数適用、pipe

pandas ではデータを 列 や 表形式のデータ構造として扱うが、これらのデータから順番に値を取得 (イテレーション) して何か操作をしたい / また 何らかの関数を適用したい、ということがよくある。このエントリでは以下の 3 つについて整理したい。 イテレ…

Python pandas + folium + Jupyter でリーフレット / コロプレス図を描きたい

引き続き、 R の可視化を Python に持ってくるシリーズ。R には以下のようなパッケージがあり、地図上へのリーフレット配置やコロプレス図の描画がカンタンにできる。それぞれの概要はリンク先を。 {leaflet}: リーフレット配置 Leaflet for R - Introductio…

Python pandas のデータを Highcharts/Highstock + Jupyter でプロットしたい

R を使っている方はご存知だと思うが、R には {htmlwidgets} というパッケージがあり、R 上のデータを任意の Javascript ライブラリを使ってプロットすることが比較的カンタンにできる。{htmlwidgets} って何?という方には こちらの説明がわかりやすい。 RP…

Python spyre によるデータ分析結果のWebアプリ化

R を使っている方はご存知だと思うが、R には {Shiny} というパッケージがあり、データ分析の結果を インタラクティブな Web アプリとして共有することができる。{Shiny} って何?という方には こちらの説明がわかりやすい。 RStudio Shiny チュートリアル …

pandas 日時まわりのリサンプリング/オフセット処理

こちらの続き。 Python pandas で日時関連のデータ操作をカンタンに - StatsFragments 今回のサンプルデータには自分の歩数のデータを使いたい。インスパイヤ元は以下のサイトだ。 下半身のデータをオープンにした - 盆栽日記d.hatena.ne.jp データの読み込…

pandas 0.16.0/0.16.1 の主要な新機能

先日 5/11 に pandas 0.16.1 がリリースされた。前バージョンである 0.16.0 とあわせて、主要な変更点である以下3点の概要をまとめたい。各見出しの括弧内には対応したバージョンを記載した。 簡単な列追加 / DataFrame.assign (0.16.0) 文字列処理の強化 (0…

簡単な集約/変換処理を PySpark & pandas の DataFrame で行う

こちらの続き。 簡単なデータ操作を PySpark & pandas の DataFrame で行う - StatsFragmentssinhrks.hatenablog.com 準備 サンプルデータは iris 。今回は HDFS に csv を置き、そこから読み取って DataFrame を作成する。 # HDFS にディレクトリを作成しフ…

Python pandas 関連エントリの目次

このブログ中の pandas 関連のエントリをまとめた目次です。 最近 pandas 開発チーム と PyData グループ の末席に加えていただき、パッケージ自体の改善にもより力を入れたいと思います。使い方についてご質問などありましたら Twitter で @ ください。 目…

簡単なデータ操作を PySpark & pandas の DataFrame で行う

Spark v1.3.0 で追加された DataFrame 、結構いいらしいという話は聞いていたのだが 自分で試すことなく時間が過ぎてしまっていた。ようやく PySpark を少し触れたので pandas との比較をまとめておきたい。内容に誤りや よりよい方法があればご指摘 下さい…

Python Theano function / scan の挙動まとめ

勉強のため たまに Pylearn2 など Theano を使ったパッケージのソースを眺めたりするのだが、theano.scan の挙動を毎回 忘れてしまう。繰り返し調べるのも無駄なので、一回 整理したい。theano.scan の動作は theano.function が前提となるため、あわせて書…

Python pandas / scikit-learn 向けのちょっとしたパッケージ作った <前編>

こちらの続き。 sinhrks.hatenablog.com pandas のデータを scikit-learn でうまく処理するためのパッケージを作ったのでその使い方を書きたい。今回は 適当なデータをファイルから読み込み -> 前処理してクラスタリングする、という例を書く。 このパッケー…

Python pandas のデータを scikit-learn でうまいこと処理したい

はじめに Python で機械学習する場合、pandas で前処理したデータを scikit-learn で処理する、というケースが多いと思う。pandas, scikit-learn には それぞれ 簡単にできる / できない処理があるので、うまいこと連携できるとうれしい。 scikit-learn の各…

Python pandas 日本語環境向けのちょっとしたパッケージ作った

最近の空き時間は GitHub で草植えをしている。まずは pandas を日本語環境で使う場合に たまに必要になる処理をまとめた パッケージを作った。 インストール pip install japandas 機能 機能の一覧はこちら。 日時処理 日本語日付のパース 日本の祝日カレン…

Python pandas で日本の株価情報取得とローソク足チャート描画

以下の記事を読んでいて、pandas 標準では日本株式の情報が直接とれないことに気づいたのでやり方をまとめたい。 pandas のデータ集約とグループ演算を利用して株価を分析する - Qiita この記事では以下 2 点の処理について書く。 Yahoo! ファイナンス から…

RStan / PyStan 開発版を GitHub からインストールする

最近ちょっとした事情で Stan を使いたく、状態空間モデルの勉強とあわせて こんな感じ でやっている。その環境構築ネタ。 補足 Stan って何?という方は StanTutorial がわかりやすい。 Stan の公式バインディングとしては R 用の RStan、Python 用の Pysta…

Python pandas 図でみる データ連結 / 結合処理

なんかぼやぼやしているうちにひさびさの pandas エントリになってしまった。基本的な使い方については網羅したい気持ちはあるので、、、。 今回は データの連結 / 結合まわり。この部分 公式ドキュメント がちょっとわかりにくいので改訂したいなと思ってい…

Amazon EC2 上に Pylearn2 環境を構築する

最近 pylearn2 や theano を使って Deep Learning を少しずつ勉強しているのだが、いろいろと試す場合には処理時間が結構ネックになる。とくに画像処理をしたい場合には GPU 計算ができないとちょっと現実的でない。 とはいえ、そこそこの PC + GPU を買おう…

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

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

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…

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 年とかなり歴史のあるパッケージ…

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

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