StatsFragments

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

可視化

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

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

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

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

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

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…

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

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

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

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

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

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

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

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

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 チュートリアル …

R {ggplot2} で独自の geom を手軽に作りたい

重要 このエントリは {ggplot2} 1.1.0 以前の情報です。v2.0.0 以降の方法は vignettes "Extending ggplot2" を読んでください。 CRAN - Package ggplot2 はじめに {ggplot2} を使っていると、新しい描画図形 (geom) を作りたいなという場合がたまにある。そ…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

R ggplot2 で monthplot

Rで時系列データの周期特性をちゃっと確認したいとき、monthplotという関数を使うとデータを月次に分割してグラフ作成してくれる。 monthplot(AirPassengers) が、出力がちょっとアレなのと 月次以外の周期性をみたい場合があるので、 ggplot2 で作ってみた…

ggplot2でよく使うパッケージを autoplot する

パッケージを書いた。 つかいかた RPubs - Plotting Time Series with ggplot2 and ggfortify RPubs - Plotting Time Series Statistics with ggplot2 and ggfortify RPubs - Plotting PCA/clustering results using ggplot2 and ggfortify RPubs - Plotting…

ggplot2でsurvival::survfitさせた生存曲線を描画する

こちらの survival 版: ggplot2でforecastインスタンスを描画する - StatsFragments 同じように survfit 用の fortify を定義すればよい。lung(肺ガンデータ)を使って、男女別のKaplan-Meier曲線を描いてみる。 library(survival) library(ggplot2) library(…

ggplot2でforecastインスタンスを描画する

最近 時系列データを forecast パッケージを使って処理している。便利! library(forecast) d <- AirPassengers d.arima <- forecast::auto.arima(d) d.forecast <- forecast(d.arima, level = c(95), h = 50) plot(d.forecast) この結果を、総称関数 plot …