なぜベイズ予測分布はあれなのか?
お久しぶりです
久しぶりの投稿となります。いつの間にかXGBoostについての記事
が好評を得ていて、ブログのアクセス数も随分と増えていました!非常に嬉しいことです☆(ゝω・)v
今回は、ベイズ関連の教科書を読むと必ず紹介されているアレ(予測分布)がなぜそういう形をしているのかを説明します☆(ゝω・)v
参考文献は
階層ベイズモデルとその周辺――時系列・画像・認知への応用【統計科学のフロンティア4】 (岩波オンデマンドブックス)
- 作者: 松本隆,石黒真木夫,乾敏郎,田邉國士
- 出版社/メーカー: 岩波書店
- 発売日: 2018/03/13
- メディア: オンデマンド (ペーパーバック)
- この商品を含むブログを見る
です☆(ゝω・)v
Pythonのpandasで大きなデータを扱うときにメモリ効率を上げる方法メモ
最近Pythonを使って大きなデータフレームを結合したり、そのデータフレームに対してメソッドを使って処理をしていますが、頻繁に
"Memory Error"
に遭遇しています。そんな中で色々探し回って見つけたTips的なものをメモとして残しておきます。
- pandas.DataFrame.merge をする時に copy=False のオプションをつける
そもそもこのcopyってなんだかよくわからないのですが、使用メモリの挙動を見ている限りは copy=True とするとデータフレームを結合するときにそのcopyを用意して、それを参照している感じがします。copy=Falseで劇的にメモリ効率が良くなった気がします。
ちなみにpandas.DataFrame.mergeよりもpandas.DataFrame.joinの方が結合の効率が良いという報告もあります
参照:
python - Improve Pandas Merge performance - Stack Overflow
- del 変数名 で変数を消して gc.collect() でメモリを開放
参照:
Pythonで少なくメモリを使用する方法 - のんびりしているエンジニアの日記
- メソッドを呼び出すときは inplace=True オプションをつける
参照:
pandas でメモリに乗らない 大容量ファイルを上手に扱う - StatsFragments
特に中間テーブルなどを結合した最終的な結果データフレームだけを使いたい時などは、途中過程で生成されるデータフレームは結局使用されないと思うので、上記のオプションをつけても問題無いと思います。そうでなくても問題ないのかもしれません。
pandasのDataFrameのplotメソッドを使って描画するときにプロットを並べて表示する方法
pandasのDataFrameのplotメソッドを使って描画するときに、プロットを並べて表示する方法のメモ
例
import matplotlib.pyplot as plt import pandas as pd fig, axes = plt.subplots(nrows=1, ncols=2, squeeze=False) df1.plot(kind="bar", x="x", y="y", ax=axes[0,0], figsize=(15, 5)) df2.plot(kind="bar", x="x", y="y", ax=axes[0,1], figsize=(15, 5))
XGBoostの概要
XGBoostの凄さに最近気がついたので、もうちょっと詳しく知りたいと思って以下の論文を読みました。
XGBoost: A Scalable Tree Boosting System
せっかくなので、簡単にまとめてみたいと思います。。。と思っていたら結構な量になってしいました。
何か間違い等がありましたらコメントをしていただくか、@kefism へ連絡をしてくださると嬉しいです。