📄 mybase.h
字号:
#define Width 80 /* approx max width of printed trees */
/*************************************************************************/
/* */
/* Display entire decision tree T */
/* */
/*************************************************************************/
void PrintTree(Tree T);
/*************************************************************************/
/* */
/* Display the tree T with offset Sh */
/* */
/*************************************************************************/
void Show(Tree T,short Sh);
/*************************************************************************/
/* */
/* Print a node T with offset Sh, branch value v, and continue */
/* */
/*************************************************************************/
void ShowBranch(short Sh,Tree T,DiscrValue v);
/*************************************************************************/
/* */
/* Find the maximum single line size for non-leaf subtree St. */
/* The line format is */
/* <attribute> <> X.xx:[ <class (<Items>)], or */
/* <attribute> = <DVal>:[ <class> (<Items>)] */
/* */
/*************************************************************************/
short MaxLine(Tree St);
/*************************************************************************/
/* */
/* Indent Sh columns */
/* */
/*************************************************************************/
void Indent(short Sh,char * Mark);
/*************************************************************************/
/* */
/* Save entire decision tree T in file with extension Extension */
/* */
/*************************************************************************/
void SaveTree(Tree T,String Extension);
/*************************************************************************/
/* */
/* Save tree T as characters */
/* */
/*************************************************************************/
void OutTree(Tree T);
/*************************************************************************/
/* */
/* Retrieve entire decision tree with extension Extension */
/* */
/*************************************************************************/
Tree GetTree(String Extension);
/*************************************************************************/
/* */
/* Retrieve tree from saved characters */
/* */
/*************************************************************************/
Tree InTree();
/*************************************************************************/
/* */
/* Stream characters to/from file TRf from/to an address */
/* */
/*************************************************************************/
void StreamOut(char * s,int n);
void StreamOut(short * s,int n);
void StreamOut(int * s,int n);
void StreamOut(float * s,int n);
void StreamIn(char *s,int n);
void StreamIn(short *s,int n);
void StreamIn(int *s,int n);
void StreamIn(float *s,int n);
/*************************************************************************/
/* */
/* Free up space taken up by tree Node */
/* */
/*************************************************************************/
void ReleaseTree(Tree Node);
/*************************************************************************/
/* */
/* Construct a leaf in a given node */
/* */
/*************************************************************************/
Tree Leaf(ItemCount *ClassFreq,ClassNo NodeClass,ItemCount Cases,ItemCount Errors);
/*************************************************************************/
/* */
/* Insert branches in a node */
/* */
/*************************************************************************/
void Sprout(Tree Node,DiscrValue Branches);
/*************************************************************************/
/* */
/* Count the nodes in a tree */
/* */
/*************************************************************************/
int TreeSize(Tree Node);
/*************************************************************************/
/* */
/* Return a copy of tree T */
/* */
/*************************************************************************/
Tree CopyTree(Tree T);
/*************************************************************************/
/* */
/* Save attribute values read with "discrete N" */
/* */
/*************************************************************************/
void SaveDiscreteNames();
/*************************************************************************/
/* */
/* Recover attribute values read with "discrete N" */
/* */
/*************************************************************************/
void RecoverDiscreteNames();
void PrintConfusionMatrix(ItemNo *ConfusionMat);
/*************************************************************************/
/* From Prune.c */
/* */
/* */
/* */
/* Prune a decision tree and predict its error rate */
/* ------------------------------------------------ */
/* */
/*************************************************************************/
#define LocalVerbosity(x) if (Sh >= 0 && VERBOSITY >= x)
#define Intab(x) Indent(x, "| ")
/*************************************************************************/
/* */
/* Prune tree T, returning true if tree has been modified */
/* */
/*************************************************************************/
Boolean Prune(Tree T);
/*************************************************************************/
/* */
/* Estimate the errors in a given subtree */
/* */
/*************************************************************************/
float EstimateErrors(Tree T,ItemNo Fp,ItemNo Lp,short Sh, Boolean UpdateTree);
/*************************************************************************/
/* */
/* Remove unnecessary subset tests on missing values */
/* */
/*************************************************************************/
void CheckPossibleValues(Tree T);
/*************************************************************************/
/* From Classify.c */
/* */
/* */
/* */
/* Determine the class of a case description from a decision tree */
/* -------------------------------------------------------------- */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* Categorize a case description using the given decision tree */
/* */
/*************************************************************************/
ClassNo Category(Description CaseDesc,Tree DecisionTree);
/*************************************************************************/
/* */
/* Classify a case description using the given subtree by adjusting */
/* the value ClassSum for each class */
/* */
/*************************************************************************/
void Classify(Description CaseDesc,Tree T, float Weight);
/*************************************************************************/
/* From Subset.c */
/* */
/* */
/* */
/* Evaluation of the subsetting of a discrete attribute */
/* ---------------------------------------------------- */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* Evaluate subsetting a discrete attribute and form the chosen */
/* subsets Subset[Att][], setting Subsets[Att] to the number of */
/* subsets, and the Info[] and Gain[] of a test on the attribute */
/* */
/*************************************************************************/
void EvalSubset(Attribute Att, ItemNo Fp, ItemNo Lp, ItemCount Items);
/*************************************************************************/
/* */
/* Combine the distribution figures of discrete attribute values */
/* x and y, putting the combined figures in Freq[x][] and */
/* ValFreq[x][], and saving old values in Slice1 and Slice2 */
/* */
/*************************************************************************/
void Combine(DiscrValue x,DiscrValue y, DiscrValue Last);
/*************************************************************************/
/* */
/* Restore old class distribution figures of discrete attribute */
/* values x and y from Slice1 and Slice2 */
/* */
/*************************************************************************/
void Uncombine(DiscrValue x, DiscrValue y);
/*************************************************************************/
/* */
/* Print the values of attribute Att which are in the subset Ss */
/* */
/*************************************************************************/
void PrintSubset(Attribute Att,Set Ss);
/*************************************************************************/
/* */
/* Construct and return a node for a test on a subset of values */
/* */
/*************************************************************************/
void SubsetTest(Tree Node, Attribute Att);
/*************************************************************************/
/* From Discr.c */
/* */
/* */
/* Evaluation of a test on a discrete valued attribute */
/* --------------------------------------------------- */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* Set Info[] and Gain[] for discrete partition of items Fp to Lp */
/* */
/*************************************************************************/
void EvalDiscreteAtt(Attribute Att, ItemNo Fp, ItemNo Lp, ItemCount Items);
/*************************************************************************/
/* */
/* Compute frequency tables Freq[][] and ValFreq[] for attribute */
/* Att from items Fp to Lp, and set the UnknownRate for Att */
/* */
/*************************************************************************/
void ComputeFrequencies(Attribute Att, ItemNo Fp, ItemNo Lp);
/*************************************************************************/
/* */
/* Return the base info for items with known values of a discrete */
/* attribute, using the frequency table Freq[][] */
/* */
/*************************************************************************/
float DiscrKnownBaseInfo(ItemCount KnownItems, DiscrValue MaxVal);
/*************************************************************************/
/* */
/* Construct and return a node for a test on a discrete attribute */
/* */
/*************************************************************************/
void DiscreteTest(Tree Node, Attribute Att);
/*************************************************************************/
/* */
/* Evaluation of a test on a continuous valued attribute */
/* ----------------------------------------------------- */
/* */
/*************************************************************************/
/*************************************************************************/
/* From Contin.c */
/* */
/* */
/* Continuous attributes are treated as if they have possible values */
/* 0 (unknown), 1 (less than cut), 2(greater than cut) */
/* This routine finds the best cut for items Fp through Lp and sets */
/* Info[], Gain[] and Bar[] */
/* */
/*************************************************************************/
void EvalContinuousAtt(Attribute Att, ItemNo Fp, ItemNo Lp);
/*************************************************************************/
/* */
/* Change a leaf into a test on a continuous attribute */
/* */
/*************************************************************************/
void ContinTest(Tree Node, Attribute Att);
/*************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -