ランダムフォレスト: random forest, randomized trees)は、2001年にレオ・ブレイマン英語版によって提案された[1]機械学習アルゴリズムであり、分類回帰クラスタリングに用いられる。決定木を弱学習器とするアンサンブル学習アルゴリズムであり、この名称は、ランダムサンプリングされたトレーニングデータによって学習した多数の決定木を使用することによる。ランダムフォレストをさらに多層にしたアルゴリズムにディープ・フォレストがある。対象によっては、同じくアンサンブル学習を用いるブースティングよりも有効とされる。

アルゴリズム

編集

学習

編集
  1. 学習を行いたい観測データから、ブートストラップ法によるランダムサンプリングにより B 組のサブサンプルを生成する
  2. 各サブサンプルをトレーニングデータとし、B 本の決定木を作成する
  3. 指定したノード数 に達するまで、以下の方法でノードを作成する
    1. トレーニングデータの説明変数のうち、m 個をランダムに選択する
    2. 選ばれた説明変数のうち、トレーニングデータを最も良く分類するものとそのときの閾値を用いて、ノードのスプリット関数を決定する

要点は、ランダムサンプリングされたトレーニングデータとランダムに選択された説明変数を用いることにより、相関の低い決定木群を作成すること。

パラメータの推奨値

  • : 分類の場合は1、回帰の場合は5
  • m: 説明変数の総数をpとすると、分類の場合は、回帰の場合は p/3

評価

編集

最終出力は以下のように決定する

  • 識別: 決定木の出力がクラスの場合はその多数決、確率分布の場合はその平均値が最大となるクラス
  • 回帰: 決定木の出力の平均値

特徴

編集

長所

編集
  • 説明変数が多数であってもうまく働く
  • 学習・評価が高速
  • 決定木の学習は完全に独立しており、並列に処理可能
  • 説明変数の重要度(寄与度)を算出可能
  • Out of Bag エラーの計算により、クロスバリデーションのような評価が可能
  • AdaBoost などと比べて特定の説明変数への依存が少ないため、クエリデータの説明変数が欠損していても良い出力を与える

短所

編集
  • 説明変数のうち意味のある変数がノイズ変数よりも極端に少ない場合にはうまく働かない

実装

編集

オープンソースによる実装

  • The Original RF by Breiman and Cutler. Written in Fortran 77. May be difficult to configure.
  • ALGLIB contains implementation of modified random forest algorithm in C#, C++, Pascal, VBA.
  • FastRandomForest Efficient implementation in Java, utilitizes multiple cores. Integrates into the Weka environment.
  • orngEnsemble module within Orange data mining software suite
  • PARF Written in Fortran 90. Can distribute work over a cluster of computers using MPI.
  • party an implementation of Breiman's random forests based on conditional inference trees for R
  • randomForest for R
  • Random Jungle is a fast implementation of for high dimensional data. (C++, parallel computing, sparse memory, Linux+Windows)
  • TMVA Toolkit for Multivariate Data Analysis implements random forests.
  • Waffles A C++ library of machine learning algorithms, including RF.
  • Matlab version.

商業実装

外部リンク

編集

文献

編集
  1. ^ Breiman, Leo (2001). “Random Forests”. Machine Learning 45 (1): 5–32. doi:10.1023/A:1010933404324. 

📚 Artikel Terkait di Wikipedia

OpenCV

1999年にプロジェクト開始。最初のアルファ版が公開されたのは、国際会議CVPR 2000 (IEEE Conference on Computer Vision and Pattern Recognition 2000) である。2001年から2005年の間に5つのベータ版がリリースされた。2006年の後半にバージョン1

第IX因子

PMID 11714704.  ^ “X-ray structure of clotting factor IXa: active site and module structure related to Xase activity and hemophilia B”. Proceedings of the

Mac Pro

的に刷新されたフルモデルチェンジとなっている。 筐体は、ステンレス製の脚からハンドルまで繋がったSpace Fameと多数の穴Lattice Patternの空いたアルミニウム製のケースを採用している。この穴は筐体の軽量化と通気性を見た目から「チーズおろし金」とも揶揄される。 本体内部は、8つのPCI

IPM

イラストレータ・パターン・メーキング(Illustrator Pattern Making) 総合的病害虫管理(または「総合的有害生物管理」、Integrated Pest Management) インテリジェントパワーモジュール(Intelligent Power Module) 埋込構造永久磁石同期電動機(Interior

Wolfram (プログラミング言語)

i,r=0; for(i=1;i<n;i++){ r+=i*i; } return r; } はMathematicaでは func[n_]:=Module[{i,r=0}, For[i=0,i<n,i++, r+=i*i; ]; r ] と表現される。 [脚注の使い方] ^ Maeder, Roman

キーワード (Java)

4でassertが追加された。 J2SE 5.0でenumが追加された。 Java 9では制限付きキーワード (restricted keyword) として、open, module, requires, transitive, exports, opens, to, uses, provides, withが10個追加された。また、Java

Javaバージョン履歴

ス制に変更された。従来の長期サポート(LTS)が無くなり、原則的に半年間サポートになった。 従来のパッケージ(package)の上にモジュール(module)を追加(Project Jigsaw) 言語仕様の細かな拡張(Project Coin) 並行処理ライブラリの拡張 Compact Stringの追加

QRコード

QRコードシンボルのモデル1は推奨されないシンボル形式となっている。よってここではQRコードシンボルのモデル2について記述する。 モジュール (Module) QRコードのシンボルを構成する最小の単位セル。モジュールの大きさは型番により決定され、データの1ビットが1モジュールに相当する。 型番 (Version)