この前のShibuya.lispの懇親会で教えてもらった論文(AutoEncoder by Forest)を読んだのでcl-random-forest (解説記事)で再現してみた。 どうやらDeepForestの研究グループらしい。 どのような内容なのか一言でいうと、入力データがランダムフォレストの各決定木のどの葉ノードに入るかが分かれば、元の入力を再構成できるという話だった。つまり、エンコードは入力データから各決定木の葉ノードのインデックスを調べ、そのベクトルを出力することに対応する。逆にデコードは葉ノードから根ノードへ逆に辿っていき、入力の範囲を制限していき、最後にそこから代表値を選ぶことに対応する。エンコーダの訓練は通常のランダムフォレストでモデルを作るだけなので、GPUを使ったニューラルネットのオートエンコーダよりも100倍速いと主張されている。(なおデコード速度では負けている模様
概要 UCIのAdultデータセットを予測する LIBSVM形式への変換 ランダムフォレストを構築 ランダムフォレストから特徴量の重要度を出す 番外: scikit-learnの場合 メモ: 上の図の作り方 (Lisp Advent Calendar 2017参加記事) 概要 ランダムフォレストは多くの特徴量を持つような大きなサイズのデータセットを現実的な計算量で学習できる便利なモデルであるが、その重要な特徴の一つに、「特徴量ごとの重要度を推測できる」というものがある。 Random Forestで計算できる特徴量の重要度 Selecting good features – Part III: random forests 特徴量の重要度の推測の方法にも色々あるが、これらの記事では、MeanDecreaseAccuracyとMeanDecreaseGiniという2つの方法が紹介されている。
はじめに 論文: Global Refinement of Random Forest インストール 使い方 データの用意 決定木を作る ランダムフォレストを作る Global refinement Global pruning 並列化 MNISTの例 ベンチマーク まとめ はじめに 前の記事でCLMLのランダムフォレストを試したのだが、計算速度が遅くてとても実用レベルとは言えなかったので一から書き直すことにした。また先月のShibuya.lispのLispmeetupでも発表してきた。何をやっているかはこの発表のスライドで大体説明しているのだが、実際の使い方はデモでしか説明していなかったのでこの記事で説明する。 cl-random-forest(Github) Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装(Slid
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く