You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.6 KiB
61 lines
1.6 KiB
#ifndef CART_H
|
|
#define CART_H
|
|
|
|
#include "Evaluation.h"
|
|
|
|
struct minEval;
|
|
|
|
struct DR;
|
|
|
|
struct DT;
|
|
|
|
class DecisionTree
|
|
{
|
|
public:
|
|
DT *DTree = nullptr;
|
|
double minIG;
|
|
long maxHeight;
|
|
long feature;
|
|
long maxFeature;
|
|
bool isRF;
|
|
long classes;
|
|
int *Sparse;
|
|
double forgetRate;
|
|
double increaseRate;
|
|
double initialIR;
|
|
Evaluation evalue;
|
|
long Rebuild;
|
|
long roundNo;
|
|
long called;
|
|
long retain;
|
|
long lastT;
|
|
long lastAll;
|
|
|
|
DecisionTree(long f, int *sparse, double forget, long maxFeature, long noClasses, Evaluation e);
|
|
|
|
void Stablelize();
|
|
|
|
void Free();
|
|
|
|
minEval findMinGiniDense(double **data, long *result, long *totalT, long size, long col);
|
|
|
|
minEval findMinGiniSparse(double **data, long *result, long *totalT, long size, long col, DT *current);
|
|
|
|
minEval incrementalMinGiniDense(double **data, long *result, long size, long col, long ***count, double **record, long *max, long newCount, long forgetSize, double **forgottenData, long *forgottenClass);
|
|
|
|
minEval incrementalMinGiniSparse(double **dataNew, long *resultNew, long sizeNew, long sizeOld, DT *current, long col, long forgetSize, double **forgottenData, long *forgottenClass);
|
|
|
|
long *fitThenPredict(double **trainData, long *trainResult, long trainSize, double **testData, long testSize);
|
|
|
|
void fit(double **data, long *result, long size);
|
|
|
|
void Update(double **data, long *result, long size, DT *current);
|
|
|
|
void IncrementalUpdate(double **data, long *result, long size, DT *current);
|
|
|
|
long Test(double *data, DT *root);
|
|
|
|
void print(DT *root);
|
|
};
|
|
#endif
|