📄 mybase.h
字号:
/* */
/* Return the greatest value of attribute Att below threshold t */
/* */
/*************************************************************************/
float GreatestValueBelow(Attribute Att, float t);
/*************************************************************************/
/* From info.c */
/* */
/* */
/* */
/* Calculate information, information gain, and print dists */
/* -------------------------------------------------------- */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* Determine the worth of a particular split according to the */
/* operative criterion */
/* */
/* Parameters: */
/* SplitInfo: potential info of the split */
/* SplitGain: gain in info of the split */
/* MinGain: gain above which the Gain Ratio */
/* may be used */
/* */
/* If the Gain criterion is being used, the information gain of */
/* the split is returned, but if the Gain Ratio criterion is */
/* being used, the ratio of the information gain of the split to */
/* its potential information is returned. */
/* */
/*************************************************************************/
float Worth(float ThisInfo, float ThisGain, float MinGain);
/*************************************************************************/
/* */
/* Zero the frequency tables Freq[][] and ValFreq[] up to MaxVal */
/* */
/*************************************************************************/
void ResetFreq(DiscrValue MaxVal);
/*************************************************************************/
/* */
/* Given tables Freq[][] and ValFreq[], compute the information gain. */
/* */
/* Parameters: */
/* BaseInfo: average information for all items with */
/* known values of the test attribute */
/* UnknownRate: fraction of items with unknown ditto */
/* MaxVal: number of forks */
/* TotalItems: number of items with known values of */
/* test att */
/* */
/* where Freq[x][y] contains the no. of cases with value x for a */
/* particular attribute that are members of class y, */
/* and ValFreq[x] contains the no. of cases with value x for a */
/* particular attribute */
/* */
/*************************************************************************/
float ComputeGain(float BaseInfo, float UnknFrac, DiscrValue MaxVal, ItemCount TotalItems);
/*************************************************************************/
/* */
/* Compute the total information in V[ MinVal..MaxVal ] */
/* */
/*************************************************************************/
float TotalInfo(ItemCount V[], DiscrValue MinVal, DiscrValue MaxVal);
/*************************************************************************/
/* */
/* Print distribution table for given attribute */
/* */
/*************************************************************************/
void PrintDistribution(Attribute Att, DiscrValue MaxVal, Boolean ShowNames);
float AddErrs(ItemCount N, ItemCount e);
/*************************************************************************/
/* */
/* Sort items from Fp to Lp on attribute a */
/* */
/*************************************************************************/
void Quicksort(ItemNo Fp, ItemNo Lp, Attribute Att, int Exchange);
/*************************************************************************/
/* */
/* Soften thresholds for continuous attributes */
/* ------------------------------------------- */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* Soften all thresholds for continuous attributes in tree T */
/* */
/*************************************************************************/
void SoftenThresh(Tree T);
/*************************************************************************/
/* */
/* Calculate upper and lower bounds for each test on a continuous */
/* attribute in tree T, using data items from Fp to Lp */
/* */
/*************************************************************************/
void ScanTree(Tree T, ItemNo Fp, ItemNo Lp);
void GenerateLogs();
/*************************************************************************/
/* */
/* From GeneRule.c */
/* */
/* Generate all rulesets from the decision trees */
/* --------------------------------------------- */
/* */
/*************************************************************************/
void GenerateRules();
/*************************************************************************/
/* */
/* Determine code lengths for attributes and branches */
/* */
/*************************************************************************/
void FindTestCodes();
/*************************************************************************/
/* */
/* Form composite ruleset for all trials */
/* */
/*************************************************************************/
void CompositeRuleset();
/*************************************************************************/
/* */
/* Form a set of rules from a decision tree */
/* ---------------------------------------- */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* Form a ruleset from decision tree t */
/* */
/*************************************************************************/
void FormRules(Tree t);
/*************************************************************************/
/* */
/* Find the maximum depth and the number of leaves in tree t */
/* with initial depth d */
/* */
/*************************************************************************/
void TreeParameters(Tree t,short d);
/*************************************************************************/
/* */
/* Extract disjuncts from tree t at depth d, and process them */
/* */
/*************************************************************************/
void Scan(Tree t, short d);
/*************************************************************************/
/* From Rule.c */
/* */
/* */
/* Miscellaneous routines for rule handling */
/* ---------------------------------------- */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* Save the current ruleset in rules file in order of the index */
/* */
/*************************************************************************/
void SaveRules();
/*************************************************************************/
/* */
/* Get a new ruleset from rules file */
/* */
/*************************************************************************/
void GetRules();
/*************************************************************************/
/* */
/* Find a test in the test vector; if it's not there already, add it */
/* */
/*************************************************************************/
Test FindTest(Test Newtest);
/*************************************************************************/
/* */
/* See if test t1 is the same test as test t2 */
/* */
/*************************************************************************/
BOOL SameTest(Test t1, Test t2);
/*************************************************************************/
/* */
/* Clear for new set of rules */
/* */
/*************************************************************************/
void InitialiseRules();
/*************************************************************************/
/* */
/* Add a new rule to the current ruleset, by updating Rule[], */
/* NRules and, if necessary, RuleSpace */
/* */
/*************************************************************************/
Boolean NewRule(Condition Cond[], short NConds, ClassNo TargetClass,float Err);
/*************************************************************************/
/* */
/* Decide whether the given rule duplicates rule r */
/* */
/*************************************************************************/
Boolean SameRule(RuleNo r, Condition Cond[], short NConds, ClassNo TargetClass);
/*************************************************************************/
/* */
/* Print the current indexed ruleset */
/* */
/*************************************************************************/
void PrintIndexedRules();
/*************************************************************************/
/* */
/* Print the rule r */
/* */
/*************************************************************************/
void PrintRule(RuleNo r);
/*************************************************************************/
/* */
/* Print a condition c of a production rule */
/* */
/*************************************************************************/
void PrintCondition(Condition c);
/*************************************************************************/
/* From SifRule.c */
/* Process sets of rules */
/* --------------------- */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* Construct an ordered subset (indexed by RuleIndex) of the current */
/* set of rules */
/* */
/*************************************************************************/
void ConstructRuleset();
/*************************************************************************/
/* */
/* Initialise all tables used in sifting */
/* */
/*************************************************************************/
void InitialiseTables();
/*************************************************************************/
/* */
/* Select a subset of the rules for class FocusClass */
/* */
/*************************************************************************/
void CoverClass();
/*************************************************************************/
/* */
/* Try all combinations of rules to find best value */
/* */
/*************************************************************************/
void AllCombinations(RuleNo NRR);
/*************************************************************************/
/* */
/* Find a good subset by simulated annealing */
/* */
/*************************************************************************/
void SimAnneal(RuleNo RuleCount);
/*************************************************************************/
/* */
/* Find a good subset by repeated greedy search */
/* */
/*************************************************************************/
void SpotSearch(RuleNo RuleCount);
/*************************************************************************/
/* */
/* Improve a subset of rules by adding and deleting rules */
/* */
/*************************************************************************/
void HillClimb(RuleNo RuleCount);
/*************************************************************************/
/* */
/* Find the number of correct and incorrect rule firings for rules */
/* for class FocusClass and hence determine the Value of the rules. */
/* If best so far, remember. */
/* */
/*************************************************************************/
void CalculateValue();
/*************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -