StatsFragments

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

2015-01-01から1年間の記事一覧

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 の一部機能が使えるのだがあまり情報がない。上の資料に書いて…

10 Minutes to DataFrames.jl

この記事は Julia Advent Calendar 2015 23 日目の記事です。 Julia で DataFrame を扱うパッケージ DataFrames.jl の使い方をまとめたい。 下の pandas ドキュメントにあるような処理が DataFrames.jl でどう書けるのかを整理する。 10 Minutes to pandas —…

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 で簡単にできる…

Rust で k-means クラスタリング

この記事は Rust Advent Calendar 2015 7 日目の記事です。 簡単な統計/機械学習のアルゴリズムを実装しつつ Rust を学びたい。こちらの続き。 Rust で重回帰 - StatsFragments Rust で主成分分析 - StatsFragments Rust で階層的クラスタリング - StatsFrag…

R {ggplot2} で 少し複雑なサブプロットが描きたい

この記事は R Advent Calendar 2015 4 日目の記事です。 {ggplot2} でのサブプロット {ggplot2} でサブプロットを描画したいことがある。同じ種類のプロットを水準別に描画するなど、単純なものであれば facet で描ける。例えば 適当な散布図を Species 別に…

{purrr} でリストデータを操作する <2>

前の記事に続けて、{purrr} で {rlist} 相当の処理を行う。今回はレコードの選択とソート。 sinhrks.hatenablog.com サンプルデータは前回と同じものを利用する。リストの表示も同じく Hmisc::list.tree を使う。 library(rlist) library(pipeR) library(pur…

{purrr} でリストデータを操作する <1>

R で関数型プログラミングを行うためのパッケージである {purrr}、すこし使い方がわかってきたので整理をしたい。RStudio のブログの記載をみると、とくにデータ処理フローを関数型のように記述することが目的のようだ。 purrr 0.1.0 | RStudio Blog The cor…

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

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

R パッケージを CRAN で公開する

少し前に 自作パッケージを CRAN で公開したのだが ブログに書くのを忘れていた。CRAN 公開時の注意点に関して、日本語の説明があまりない / 情報が古いので簡単にまとめたい。 パッケージの作成 この資料を読みましょう。 東京R非公式おじさんが教える本当…

Rust で階層的クラスタリング

こちらの続き。 Rust で重回帰 - StatsFragments Rust で主成分分析 - StatsFragments 階層的クラスタリングについてはこちらを。サンプルデータもリンク先のものを利用させていただく。 Rとクラスター(1) 再帰的なデータ構造の作成 階層的クラスタリングで…

Rust で主成分分析

Rust で重回帰に続き、今日は 主成分分析をやりたい。 Rust(Nightly) rustc 1.6.0-nightly (d5fde83ae 2015-11-12) rust-csv 0.14.3 : CSV の読み込みに利用 nalgebra 0.3.2 : 行列/ベクトルの処理に利用 rust-csv での CSV ファイルの読み込み 今回は ロー…

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

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

Rust で重回帰

簡単なアルゴリズムを実装しつつ Rust を学びたい。環境はこちら。 Rust(Nightly) rustc 1.6.0-nightly (d5fde83ae 2015-11-12) rust-csv 0.14.3 : CSV の読み込みに利用 nalgebra 0.3.1 : 行列/ベクトルの処理に利用 Python や R と比較すると、型のために …

岩波データサイエンス 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 次元データ構造…

{rbokeh} で Bokeh を R から使いたい

はじめに Bokeh は Python 以外にも R, Scala, Julia 用のパッケージを提供している。パッケージといっても Python の Bokeh と連携するものではなく、Bokeh がブラウザでのレンダリングに使っている Bokeh.js を各言語で扱えるようにするもののようだ。その…

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) が提供さ…