ランダムフォレストと検定を用いた特徴量選択手法 Boruta
- 特徴量選択とは
- Borutaとは
- とりあえず使ってみる
- ベースラインの判別
- Borutaの判別
- Borutaのアイデアの概要
- Borutaのアルゴリズム
- 1. 判別に寄与しないはずの偽の特徴量を作る。
- 2. 偽の特徴量と一緒にランダムフォレストを訓練。
- 3. 各特徴量の重要度と偽の特徴量の特徴量を比較。
- 4. 複数回比較し検定を行うことで、本当に重要な特徴量のみを選択。
- 検定について
- まとめ
- 補足
- 使う際のTips等 2019/01/06追記
- 参考
特徴量選択とは
特徴量選択(Feature Selection, 変数選択とも)はデータサイエンスにおいて非常に重要である。 Kaggle等のコンペティションではひたすら判別の精度を重要視するが、実務上どうしてそのような判別をしたのかという理由のほうが大事である(回帰問題も同様)。 例えば、なにかの製造工程をイメージしてみよう。 当然欠陥品は生じるだろうが、この欠陥品を見分けるシステムよりも欠陥品を減らせる改良のほうが良いだろう(もちろん見分けるのも大事だが)。 そこで、判別においてどのような特徴量が重要だったか選ぶことができれば、改良への糸口が見えてくるだろう。
また、特徴量選択した結果、モデルの学習や推論が高速化されたり、過学習しづらくなったり、結果判別の精度が良くなったりする。
Borutaとは
ランダムフォレストと検定を用いた特徴量選択の方法の一つである。 Witold R. Rudnicki, Miron B. Kursaらが考案。
Python実装 (バグあり。まとめ後に補足します。)(アップデートされてました pip install Boruta
しましょう)
(名前の由来はスラヴ神話の森の神の名前らしいです。こんな見た目してます。)
このBorutaという手法は経験上非常に強力で、判別や回帰の性能が著しく低下したことはない。低下しても誤差の範囲内。むしろ性能が良くなることが多い。
続きを読むpickleより楽にpythonオブジェクトを保存する方法
この記事で言いたいこと
import pickleしてwith openをいちいち書くのめんどくさくない?。pandas.to_pickleやpandas.read_pickleを使えば楽。DataFrame以外のものも保存できる。
- この記事で言いたいこと
- はじめに
- データの用意
- pickleをimportしてwith openで書き込んだり読み込んだりするやり方
- pandasを使ったやりかた
- まとめ
Hyper+xonshで超モダンな環境づくり
はじめに
ばんくしさんをフォローしたらすっかりxonshに洗脳された。 また、巷でうわさのHyperなるターミナルアプリを試してみたら使いやすかったので、組み合わせて使ったら最強では?と安直な発想で記事を書きはじめた。
適当に操作してみたのがこちら。
候補がフローティングウィンドウに出ていたり、補完がゴリゴリに効いていることがわかるだろう。また、動画内ではpythonの仮想環境を切り替えてもいる。
本記事では以下のことを書く
- はじめに
- Hyperとは
- xonshとは
- Hyperの導入
- 起動するshellの選択
- 文字化けの問題
- xonshの導入
記事の対象者
- .bashrc、.zshrcなどと言われて何かわかる方
- Homebrewがある
時系列データでVariational AutoEncoder keras
はじめに
前回の記事で時系列入力に対するオートエンコーダーを組んだ。
今回は潜在変数を正規分布に押し込むというVariational AutoEncoderを組んでみた。CNNとVAEを組み合わせる記事は割と見つかるのに、RNNとなったとたん見つからないものである。
データはMNISTであるが後述するように、時系列だと見なして入力した。
まずはモデルとデータの概要を説明する。そのあと、結果で再構成された数字と生成された数字の例を示す。最後に、潜在変数Zが正規分布になっているのか確かめる。
- はじめに
- モデルの概要
- データの概要
- 結果
- Zは本当に正規分布をしているのか?
- まとめ
- 参考文献
モデルの概要
続きを読む
時系列データを使ってオートエンコーダー keras
はじめに
時系列でオートエンコーダーを組む練習。ネットで漁っても見当たらなくて(kerasの日本語記事)、kerasのblogでも放置されていた。
Building Autoencoders in Keras
""We won't be demonstrating that one on any specific dataset. ""
→自分でやるしかねぇ
続きを読む