// Copyright (c) 2012 Schloss Lab. All rights reserved.
//
-#ifndef rrf_fs_prototype_randomforest_hpp
-#define rrf_fs_prototype_randomforest_hpp
+#ifndef RF_RANDOMFOREST_HPP
+#define RF_RANDOMFOREST_HPP
#include "macros.h"
-#include "abstractrandomforest.hpp"
+#include "forest.h"
#include "decisiontree.hpp"
-class RandomForest: public AbstractRandomForest {
+class RandomForest: public Forest {
public:
- // DONE
- RandomForest(const vector <vector<int> > dataSet,const int numDecisionTrees, const string);
+ RandomForest(const vector <vector<int> > dataSet,
+ const int numDecisionTrees,
+ const string treeSplitCriterion,
+ const bool doPruning,
+ const float pruneAggressiveness,
+ const bool discardHighErrorTrees,
+ const float highErrorTreeDiscardThreshold,
+ const string optimumFeatureSubsetSelectionCriteria,
+ const float featureStandardDeviationThreshold);
//NOTE:: if you are going to dynamically cast, aren't you undoing the advantage of abstraction. Why abstract at all?
int calcForrestVariableImportance(string);
int populateDecisionTrees();
int updateGlobalOutOfBagEstimates(DecisionTree* decisionTree);
+ int printConfusionMatrix(map<int, string> intToTreatmentMap);
private:
MothurOut* m;