亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? siftrules.c

?? 決策樹是用二叉樹形圖來表示處理邏輯的一種工具。可以直觀、清晰地表達(dá)加工的邏輯要求。特別適合于判斷因素比較少、邏輯組合關(guān)系不復(fù)雜的情況。
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*************************************************************************//*									 *//*	Process sets of rules						 *//*	---------------------					         *//*								         *//*************************************************************************/#include "defns.i"#include "types.i"#include "extern.i"#include "rulex.i"ItemNo	*ClassFreq,	/* ClassFreq[c]	= no. items of class c  */	*Covered,	/* Covered[i]	= no. included rules that cover item i */	*FalsePos,	/* FalsePos[c]	= no. false positives from rules					  selected for class c */	*NoRule,	/* NoRule[c]	= no. items covered by no selected rule */	*Right,		/* Right[r]	= no. correct rule firings */	*Wrong;		/* Wrong[r]	= no. incorrect rule firings */float	*Value,		/* Value[r]	= advantage attributable to rule r or					  realisable if rule r included */	SubsetValue,	/* value of best class subset so far */	CodeWeight;	/* multiplying factor for rule encodings */Boolean	*RuleIn,	/* RuleIn[r]	= true if rule r included */	*Subset,	/* best class subset so far */	**Match;	/* Match[r][i]	= true if rule r fires on item i */RuleNo	*ClassRules;	/* list of all rules for current target class */ClassNo	FocusClass;/*************************************************************************//*									 *//*  Construct an ordered subset (indexed by RuleIndex) of the current	 *//*  set of rules							 *//*									 *//*************************************************************************/    ConstructRuleset()/*  ----------------  */{    RuleNo r, OldNRules = NRules;    /*  Allocate tables  */    Right = (ItemNo *) calloc(NRules+1, sizeof(ItemNo));    Wrong = (ItemNo *) calloc(NRules+1, sizeof(ItemNo));    Value = (float *) calloc(NRules+1, sizeof(float));    RuleIn = (Boolean *) calloc(NRules+1, sizeof(Boolean));    Subset = (Boolean *) malloc((NRules+1) * sizeof(Boolean));    ClassRules = (RuleNo *) malloc((NRules+1) * sizeof(RuleNo));    ClassFreq = (ItemNo *) calloc(MaxClass+1, sizeof(ItemNo));    Covered = (ItemNo *) calloc(MaxItem+1, sizeof(ItemNo));    Match = (Boolean **) calloc(NRules+1, sizeof(Boolean *));    FalsePos = (ItemNo *) calloc(MaxClass+1, sizeof(ItemNo));    NoRule = (ItemNo *) calloc(MaxClass+1, sizeof(ItemNo));    ForEach(r, 1, NRules)    {	Match[r] = (Boolean *) calloc(MaxItem+1, sizeof(Boolean));    }    /*  Cover each class, then order the classes to give an index of rules  */    InitialiseTables();    FindRuleCodes();    CodeWeight = 0.5;    ForEach(FocusClass, 0, MaxClass)    {	CoverClass();    }    MakeIndex();    FindDefault();    /*  Clear  */    cfree(Value);    cfree(RuleIn);    cfree(ClassRules);    cfree(Subset);    cfree(Covered);    cfree(FalsePos);    cfree(NoRule);    ForEach(r, 1, OldNRules)    {	cfree(Match[r]);    }    cfree(Match);}/*************************************************************************//*									 *//*		Initialise all tables used in sifting			 *//*									 *//*************************************************************************/    InitialiseTables()/*  ----------------  */{    ItemNo i;    RuleNo r;    ClassNo c;    float Strength();    ForEach(r, 1, NRules)    {	RuleIn[r] = false;	Rule[r].Used = Rule[r].Incorrect = 0;    }    ForEach(c, 0, MaxClass)    {	ClassFreq[c] = 0;    }    ForEach(i, 0, MaxItem)    {	ClassFreq[Class(Item[i])]++;	ForEach(r, 1, NRules)	{	    Match[r][i] = Strength(Rule[r], Item[i]) > 0.1;	    if ( Match[r][i] )	    {		Rule[r].Used++;		if ( Class(Item[i]) != Rule[r].Rhs ) Rule[r].Incorrect++;	    }	}    }}/*************************************************************************//*								         *//*	Select a subset of the rules for class FocusClass	         *//*								         *//*************************************************************************/    CoverClass()/*  ----------  */{    RuleNo r, RuleCount=0;    ItemNo i;    Verbosity(1)	printf("\nClass %s\n-----\nAction  Change  Value",		ClassName[FocusClass]);    ForEach(i, 0, MaxItem)    {	Covered[i] = 0;    }    ForEach(r, 1, NRules)    {	if ( Rule[r].Rhs == FocusClass )	{	    RuleCount++;	    ClassRules[RuleCount] = r;	}    }    if ( ! RuleCount )    {	return;    }    SubsetValue = 1E10;    if ( RuleCount <= 10 )    {	AllCombinations(RuleCount);    }    else    if ( SIMANNEAL )    {	SimAnneal(RuleCount);    }    else    {	SpotSearch(RuleCount);    }    memcpy(RuleIn, Subset, NRules+1);    Verbosity(1) printf("\n\tBest value %.1f\n", SubsetValue);} /*************************************************************************//*									 *//*    Try all combinations of rules to find best value			 *//*									 *//*************************************************************************/    AllCombinations(NR)/*  ---------------  */    RuleNo NR;{    RuleNo r;    if ( ! NR )    {	CalculateValue();    }    else    {	r = ClassRules[NR];	AllCombinations(NR-1);	AddRule(r);	AllCombinations(NR-1);	DeleteRule(r);	Verbosity(1) printf("\n");    }}/*************************************************************************//*									 *//*  Find a good subset by simulated annealing				 *//*									 *//*************************************************************************/    SimAnneal(RuleCount)/*  ---------  */    RuleNo RuleCount;{    RuleNo r, OutCount;    short ri, Tries;    float Temp, Delta;    Boolean Changed;    /*  Keep dropping and adding rules until can't improve  */    for ( Temp = 1000 ; Temp > 0.001 ; Temp *= 0.95 )    {	CalculateValue();	Verbosity(2)	{	    OutCount = 0;	    ForEach(ri, 1, RuleCount)	    {		r = ClassRules[ri];		if ( ! RuleIn[r] )		{		    if ( ! (OutCount++ % 3) ) printf("\n\t\t");		    printf("%d<%d|%d=%.1f> ", r, Right[r], Wrong[r], Value[r]);		}	    }	    printf("\n\n");	}	Changed = false;	for ( Tries = 100 ; ! Changed && Tries > 0 ; Tries-- )	{	    /*  Choose a rule to add or delete  */	    ri = RuleCount * Random + 1;	    r = ClassRules[ri];	    Delta = ( RuleIn[r] ? -Value[r] : Value[r] );	    if ( Delta > 0 || Random < exp(Delta / Temp) )	    {		if ( RuleIn[r] )		{		    DeleteRule(r);		}		else		{		    AddRule(r);		}				Changed = true;	    }	}	if ( ! Changed ) break;    }    /*  Try to improve best subset so far by hill-climbing  */    Verbosity(1) printf("Polish: ");    memcpy(RuleIn, Subset, NRules+1);    HillClimb(RuleCount);}/*************************************************************************//*									 *//*  Find a good subset by repeated greedy search			 *//*									 *//*************************************************************************/    SpotSearch(RuleCount)/*  ----------  */    RuleNo RuleCount;{    RuleNo r;    short ri, Trial;    float ProbIn;    ForEach(Trial, 0, 10)    {	Verbosity(1) printf("\n    Trial %d:", Trial);	/*  Add rules randomly to the initial subset  */	ProbIn = Trial / 10.0;	ForEach(ri, 1, RuleCount)	{	    r = ClassRules[ri];	    RuleIn[r] = Random < ProbIn;	}	HillClimb(RuleCount);    }}/*************************************************************************//*									 *//*  Improve a subset of rules by adding and deleting rules		 *//*									 *//*************************************************************************/    HillClimb(RuleCount)/*  ---------  */    RuleNo RuleCount;{    RuleNo r, Bestr;    short ri, OutCount;    ItemNo i;    float Delta, BestDelta;    ForEach(i, 0, MaxItem)    {	Covered[i] = 0;    }    ForEach(ri, 1, RuleCount)    {	r = ClassRules[ri];	if ( RuleIn[r] )	{	    ForEach(i, 0, MaxItem)	    {		if ( Match[r][i] )		{		    Covered[i]++;		}	    }	}    }        /*  Add or drop rule with greatest reduction in coding cost  */    while ( true )    {	CalculateValue();	Verbosity(2)	{	    OutCount = 0;	    ForEach(ri, 1, RuleCount)	    {		r = ClassRules[ri];		if ( ! RuleIn[r] )		{		    if ( ! (OutCount++ % 3) ) printf("\n\t\t");		    printf("%d<%d|%d=%.1f> ", r, Right[r], Wrong[r], Value[r]);		}	    }	    printf("\n\n");	}	Bestr = BestDelta = 0;	ForEach(ri, 1, RuleCount)	{	    r = ClassRules[ri];	    Delta = ( RuleIn[r] ? -Value[r] : Value[r] );	    if ( Delta > BestDelta )	    {		Bestr = r;		BestDelta = Delta;	    }	}	if ( ! Bestr ) break;	if ( RuleIn[Bestr] )	{	    DeleteRule(Bestr);	}	else	{	    AddRule(Bestr);	}    }}/*************************************************************************//*								         *//*  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.						 *//*								         *//*************************************************************************/    CalculateValue()/*  --------------  */{    RuleNo r, Selected=0, InCount;    ItemNo i, Times, FPos=0, FNeg=0, SumCover=0;    float BaseBits, RuleBits=0, NewBits, ExceptionBits();    ClassNo ThisClass;    Boolean *RuleMatch;    ForEach(i, 0, MaxItem)    {	ThisClass = Class(Item[i]);	if ( Covered[i] )

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线综合视频| 国产欧美日韩精品a在线观看| 国产偷国产偷精品高清尤物| 曰韩精品一区二区| 国产精品亚洲一区二区三区在线 | 欧美精品一二三| 欧美韩日一区二区三区| 蜜桃av噜噜一区二区三区小说| 99精品视频中文字幕| 亚洲精品在线三区| 日韩av电影天堂| 欧美亚洲综合久久| 亚洲另类色综合网站| 国产91对白在线观看九色| 日韩视频一区二区三区在线播放| 亚洲女同一区二区| av亚洲精华国产精华| 中文字幕高清一区| 国产suv一区二区三区88区| 精品国产成人系列| 久久99精品久久只有精品| 欧美日韩午夜在线| 亚洲成人动漫一区| 欧美日韩亚洲高清一区二区| 亚洲视频免费看| 99综合电影在线视频| 国产精品女同一区二区三区| 国产乱码一区二区三区| 欧美成人video| 精品一区二区精品| 久久久久亚洲蜜桃| 成人性视频网站| 国产精品沙发午睡系列990531| 国产传媒久久文化传媒| 国产色综合久久| 99久久免费精品高清特色大片| 亚洲视频中文字幕| 欧美性猛交xxxxxx富婆| 性做久久久久久久久| 日韩欧美另类在线| 国产精品小仙女| 中文字幕乱码久久午夜不卡| 91在线观看美女| 污片在线观看一区二区| 精品福利av导航| 成人美女在线视频| 亚洲高清视频的网址| 精品少妇一区二区| 99精品欧美一区二区三区小说| 亚洲一区二区四区蜜桃| 欧美一区二区免费视频| 国产激情91久久精品导航| 中文字幕一区二| 欧美丰满嫩嫩电影| 国产精品亚洲视频| 亚洲图片欧美色图| 久久影院视频免费| 91丝袜高跟美女视频| 天天影视涩香欲综合网| 精品精品国产高清一毛片一天堂| 国产98色在线|日韩| 亚洲一区二区在线观看视频| 欧美哺乳videos| 成人性生交大片| 亚洲国产日韩一区二区| 久久女同互慰一区二区三区| 91麻豆国产在线观看| 蜜桃在线一区二区三区| 亚洲日本在线看| 精品国产制服丝袜高跟| 色偷偷久久一区二区三区| 久久99久久99精品免视看婷婷| 国产精品另类一区| 91精品国产综合久久福利软件| 成人激情校园春色| 蜜臀av一区二区| 亚洲欧美日韩精品久久久久| 日韩片之四级片| 欧洲一区二区三区在线| 成人在线综合网站| 久久狠狠亚洲综合| 亚洲国产视频一区二区| 国产精品无码永久免费888| 欧美一级二级三级乱码| 欧美最猛性xxxxx直播| 成人开心网精品视频| 韩国av一区二区三区四区 | 日本成人超碰在线观看| 亚洲视频图片小说| 国产欧美一区视频| 日韩欧美一区二区视频| 欧美日韩久久不卡| 91麻豆swag| 97精品久久久午夜一区二区三区| 国产乱码字幕精品高清av| 婷婷中文字幕综合| 一区二区三区四区激情| 中文字幕一区二区三区四区不卡| 精品久久久久久久久久久久久久久久久 | 亚洲日本乱码在线观看| 久久久噜噜噜久噜久久综合| 日韩一区二区三区三四区视频在线观看 | 国产精品一区二区免费不卡 | 成人性视频免费网站| 国产麻豆91精品| 久久精品99国产国产精| 看片的网站亚洲| 免费成人在线网站| 免费成人在线视频观看| 蜜桃久久久久久| 久久99精品国产麻豆婷婷洗澡| 日韩国产在线观看| 麻豆国产欧美一区二区三区| 精品在线你懂的| 国精品**一区二区三区在线蜜桃| 麻豆国产91在线播放| 国产呦精品一区二区三区网站| 久久精品国产99国产| 国产精品一区二区久久不卡 | 国产一区二区福利| 国产九色精品成人porny| 国产成人免费视| 成年人网站91| 在线观看91精品国产入口| 欧美精品一卡二卡| 2023国产一二三区日本精品2022| 久久亚洲一区二区三区明星换脸| 亚洲精品一区二区三区四区高清| 久久久电影一区二区三区| 国产精品久久久一本精品| 一区二区三区在线免费视频| 午夜精品久久久久久不卡8050 | 亚洲午夜一区二区三区| 五月婷婷激情综合网| 激情综合网最新| 成人性生交大片免费看视频在线| 色天使久久综合网天天| 日韩一区二区麻豆国产| 欧美韩国日本一区| 亚洲一二三区在线观看| 精品一区二区久久久| 成人黄色在线网站| 精品视频在线免费观看| 亚洲精品在线电影| 日韩理论在线观看| 日产欧产美韩系列久久99| 国产一区二区免费看| 一本大道久久a久久精二百| 欧美一区二区三区成人| 国产精品福利一区| 麻豆国产精品官网| 在线观看视频91| 久久久蜜臀国产一区二区| 亚洲综合区在线| 国产一区欧美二区| 欧美美女喷水视频| 国产精品免费看片| 麻豆国产欧美日韩综合精品二区| 91小视频在线| 久久亚洲综合色| 午夜国产精品一区| 成人午夜精品一区二区三区| 欧美一卡二卡在线观看| 亚洲欧美日本韩国| 大胆亚洲人体视频| 欧美大片日本大片免费观看| 一个色综合av| 成人高清免费在线播放| 久久香蕉国产线看观看99| 舔着乳尖日韩一区| 色呦呦一区二区三区| 亚洲国产精品ⅴa在线观看| 日韩激情视频网站| 欧美色网一区二区| 亚洲免费视频中文字幕| 国产成人综合网| 欧美大胆人体bbbb| 日日夜夜精品视频天天综合网| av影院午夜一区| 中文字幕日韩一区二区| 国产精品夜夜爽| 精品国产乱码久久久久久久| 日韩激情一二三区| 欧美日韩国产一级二级| 亚洲一区二区精品久久av| 99国产精品一区| 国产精品久久久久久久久果冻传媒 | 中文字幕亚洲一区二区va在线| 国产乱码字幕精品高清av | 亚洲女人小视频在线观看| 国产一区久久久| 日韩视频一区二区三区 | 国产欧美一区二区三区网站| 久久福利视频一区二区| 欧美一级免费大片| 激情六月婷婷久久| 久久久不卡网国产精品一区| 国产精品1024| 国产精品久久毛片av大全日韩| 国产98色在线|日韩|