Sha256: 4a557bfb0a2e0ccd0fc422e9a4c308c46560d268674353c22af97381d68395f4

Contents?: true

Size: 756 Bytes

Versions: 4

Compression:

Stored size: 756 Bytes

Contents

require 'rbbt/vector/model'
class RFModel < VectorModel
  def initialize(dir)
    super(dir)

    @extract_features = Proc.new{|element|
      element
    }

    @train_model =<<-EOF
rbbt.require("randomForest");
model = randomForest(as.factor(label) ~ ., data = features);
    EOF
 
    @eval_model =<<-EOF
rbbt.require("randomForest");
pred = names(model$forest$xlevels)
for (p in pred) { 
  if (is.factor(features[[p]])) { 
      features[[p]] = factor(features[[p]], levels=model$forest$xlevels[[p]])
    } 
}
label = predict(model, features);
    EOF
  end

  def importance
    TmpFile.with_file do |tmp|
      tsv = R.run <<-EOF
load(file="#{@model_path}");
rbbt.tsv.write('#{tmp}', model$importance)
      EOF
      TSV.open(tmp)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rbbt-dm-1.3.2 lib/rbbt/vector/model/random_forest.rb
rbbt-dm-1.3.0 lib/rbbt/vector/model/random_forest.rb
rbbt-dm-1.2.10 lib/rbbt/vector/model/random_forest.rb
rbbt-dm-1.2.9 lib/rbbt/vector/model/random_forest.rb