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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? testrules.c

?? 數據挖掘c4.5算法(vc語言版本)歡迎大家下載測試!?。?!
?? C
字號:
/*************************************************************************/
/*									 */
/*	Evaluatation of rulesets					 */
/*	------------------------					 */
/*									 */
/*************************************************************************/


#include "defns.i"
#include "types.i"
#include "extern.i"
#include "rulex.i"



/*************************************************************************/
/*									 */
/*	Evaluate all rulesets						 */
/*									 */
/*************************************************************************/


    EvaluateRulesets(DeleteRules)
/*  ----------------  */
    Boolean DeleteRules;
{
    short t;
    ItemNo *Errors, Interpret();
    float AvSize=0, AvErrs=0;
    Boolean Final;

    if ( TRIALS == 1 )
    {
	/*  Evaluate current ruleset as there is no composite ruleset  */

	Interpret(0, MaxItem, DeleteRules, true, true);
	return;
    }

    Errors = (ItemNo *) malloc((TRIALS+1) * sizeof(ItemNo));

    ForEach(t, 0, TRIALS)
    {
	NRules    = PRSet[t].SNRules;
	Rule      = PRSet[t].SRule;
	RuleIndex = PRSet[t].SRuleIndex;
	DefaultClass = PRSet[t].SDefaultClass;

	if ( t < TRIALS )
	{
	    printf("\nRuleset %d:\n", t);
	}
	else
	{
	    printf("\nComposite ruleset:\n");
	}

	Final = (t == TRIALS);
	Errors[t] = Interpret(0, MaxItem, DeleteRules, Final, Final);

	AvSize += NRules;
	AvErrs += Errors[t];

	if ( DeleteRules )
	{
	    PRSet[t].SNRules = NRules;
	}
    }

    /*  Print report  */

    printf("\n");
    printf("Trial   Size      Errors\n");
    printf("-----   ----      ------\n");

    ForEach(t, 0, TRIALS)
    {
	if ( t < TRIALS )
	{
	    printf("%4d", t);
	}
	else
	{
	    printf("  **");
	}
	printf("    %4d  %3d(%4.1f%%)\n",
	      PRSet[t].SNRules, Errors[t], 100 * Errors[t] / (MaxItem+1.0));
    }

    AvSize /= TRIALS + 1;
    AvErrs /= TRIALS + 1;
    printf("\t\t\t\tAv size = %.1f,  av errors = %.1f (%.1f%%)\n",
	   AvSize, AvErrs, 100 * AvErrs / (MaxItem+1.0));
}



/*************************************************************************/
/*									 */
/*	Evaluate current ruleset					 */
/*									 */
/*************************************************************************/


float	Confidence;		/* certainty factor of fired rule */
				/* (set by BestRuleIndex) */


ItemNo Interpret(Fp, Lp, DeleteRules, CMInfo, Arrow)
/*     ---------  */
    ItemNo Fp, Lp;
    Boolean DeleteRules, CMInfo, Arrow;
{
    ItemNo i, Tested=0, Errors=0, *Better, *Worse, *ConfusionMat;
    Boolean FoundRule;
    ClassNo AssignedClass, AltClass;
    Attribute Att;
    RuleNo p, Bestr, ri, ri2, riDrop=0, BestRuleIndex();
    float ErrorRate, BestRuleConfidence;

    if ( CMInfo )
    {
	ConfusionMat = (ItemNo *) calloc((MaxClass+1)*(MaxClass+1), sizeof(ItemNo));
    }

    ForEach(ri, 1, NRules)
    {
	p = RuleIndex[ri];
	Rule[p].Used = Rule[p].Incorrect = 0;
    }

    Better = (ItemNo *) calloc(NRules+1, sizeof(ItemNo));
    Worse  = (ItemNo *) calloc(NRules+1, sizeof(ItemNo));

    ForEach(i, Fp, Lp)
    {
	/*  Find first choice for rule for this item  */

	ri = BestRuleIndex(Item[i], 1);
	Bestr = ( ri ? RuleIndex[ri] : 0 );
	FoundRule = Bestr > 0;

	if ( FoundRule )
	{
	    Rule[Bestr].Used++;
	    AssignedClass =  Rule[Bestr].Rhs;
	    BestRuleConfidence = Confidence;

	    /*  Now find second choice  */

	    ri2 = BestRuleIndex(Item[i], ri+1);
	    AltClass = ( ri2 ? Rule[RuleIndex[ri2]].Rhs : DefaultClass );
	    if ( AltClass != AssignedClass )
	    {
		if ( AssignedClass == Class(Item[i]) )
		{
		    Better[ri]++;
		}
		else
		if ( AltClass == Class(Item[i]) )
		{
		    Worse[ri]++;
		}
	    }
	}
	else
	{
	    AssignedClass = DefaultClass;
	}
	
	if ( CMInfo )
	{
	    ConfusionMat[Class(Item[i])*(MaxClass+1)+AssignedClass]++;
	}
	Tested++;

	if ( AssignedClass != Class(Item[i]) )
	{
	    Errors++;
	    if ( FoundRule ) Rule[Bestr].Incorrect++;

	    Verbosity(3)
	    {
	    	printf("\n");
	    	ForEach(Att, 0, MaxAtt)
	    	{
	    	    printf("\t%s: ", AttName[Att]);
	    	    if ( MaxAttVal[Att] )
	    	    {
	    		if ( DVal(Item[i],Att) )
			{
	    		    printf("%s\n", AttValName[Att][DVal(Item[i],Att)]);
			}
	    		else
			{
	    		    printf("?\n");
			}
	    	    }
	    	    else
	    	    {
	    		if ( CVal(Item[i],Att) != Unknown )
			{
	    		    printf("%g\n", CVal(Item[i],Att));
			}
	    		else
			{
	    		    printf("?\n");
			}
	    	    }
	    	}
	    	printf("\t%4d:\tGiven class %s,", i, ClassName[Class(Item[i])]);
	    	if ( FoundRule )
	    	{
	    	    printf(" rule %d [%.1f%%] gives class ",
	    		    Bestr, 100 * BestRuleConfidence);
	    	}
	    	else
		{
	    	    printf(" default class ");
		}
	    	printf("%s\n", ClassName[AssignedClass]);
	    }
	}
    }

    printf("\nRule  Size  Error  Used  Wrong\t          Advantage\n");
    printf(  "----  ----  -----  ----  -----\t          ---------\n");
    ForEach(ri, 1, NRules)
    {
	p = RuleIndex[ri];
	if ( Rule[p].Used > 0 )
	{
	    ErrorRate = Rule[p].Incorrect / (float) Rule[p].Used;

	    printf("%4d%6d%6.1f%%%6d%7d (%.1f%%)\t%6d (%d|%d) \t%s\n",
		    p, Rule[p].Size,
		    100 * Rule[p].Error, Rule[p].Used, Rule[p].Incorrect,
		    100 * ErrorRate,
		    Better[ri]-Worse[ri], Better[ri], Worse[ri],
		    ClassName[Rule[p].Rhs]);

	    /*  See whether this rule should be dropped.  Note: can only drop
		one rule at a time, because Better and Worse are affected  */

	    if ( DeleteRules && ! riDrop && Worse[ri] > Better[ri] )
	    {
		riDrop = ri;
	    }
	}
    }

    free(Better);
    free(Worse);

    if ( riDrop )
    {
	printf("\nDrop rule %d\n", RuleIndex[riDrop]);

	ForEach(ri, riDrop+1, NRules)
	{
	    RuleIndex[ri-1] = RuleIndex[ri];
	}
	NRules--;
    
	if ( CMInfo ) free(ConfusionMat);
	return Interpret(Fp, Lp, DeleteRules, true, Arrow);
    }
    else
    {
	printf("\nTested %d, errors %d (%.1f%%)%s\n",
	    Tested, Errors, 100 * Errors / (float) Tested,
	    ( Arrow ? "   <<" : "" ));
    }

    if ( CMInfo )
    {
	PrintConfusionMatrix(ConfusionMat);
	free(ConfusionMat);
    }

    return Errors;
}



/*************************************************************************/
/*									 */
/*	Find the best rule for the given case, leaving probability       */
/*      in Confidence							 */
/*									 */
/*************************************************************************/


RuleNo BestRuleIndex(CaseDesc, Start)
/*     ---------------  */
    Description CaseDesc;
    RuleNo Start;
{
    RuleNo r, ri;
    float Strength();

    ForEach(ri, Start, NRules)
    {
	r = RuleIndex[ri];
	Confidence = Strength(Rule[r], CaseDesc);

	if ( Confidence > 0.1 )
	{
	    return ri;
	}
    }

    Confidence = 0.0;
    return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xfplay| 久久综合综合久久综合| 成人午夜伦理影院| 国产精品久久久99| 99久久99精品久久久久久| 中文字幕一区二区三区乱码在线| 国产成人aaa| 亚洲精品一二三四区| 欧美影院午夜播放| 美腿丝袜亚洲三区| 国产日韩影视精品| 91丝袜国产在线播放| 午夜精品在线视频一区| 日韩一区二区不卡| 国产不卡免费视频| 一区二区免费看| 日韩欧美视频一区| 国产成人在线看| 亚洲欧美色一区| 这里只有精品电影| 国产精选一区二区三区| 亚洲国产精品激情在线观看 | 欧美激情中文不卡| 99re成人精品视频| 日精品一区二区| 久久久久久亚洲综合影院红桃| 成人小视频免费在线观看| 亚洲一区二区三区中文字幕在线| 日韩午夜中文字幕| 波多野结衣亚洲| 日韩高清中文字幕一区| 中文字幕免费观看一区| 3atv在线一区二区三区| 成人午夜激情在线| 日韩国产精品91| 亚洲免费色视频| 久久综合色鬼综合色| 欧美午夜免费电影| 成人国产在线观看| 麻豆国产欧美一区二区三区| 一区二区三区四区亚洲| 国产欧美日韩三级| 欧美一区三区四区| 色婷婷一区二区三区四区| 激情综合网av| 婷婷成人综合网| 亚洲欧美一区二区三区孕妇| 久久精品视频一区二区三区| 在线播放91灌醉迷j高跟美女| a美女胸又www黄视频久久| 久久国产精品无码网站| 亚洲大片一区二区三区| 亚洲色图19p| 国产精品久久久久久久久免费丝袜 | 精品国产乱码久久久久久图片| 色国产精品一区在线观看| 国产iv一区二区三区| 久久99精品国产.久久久久久| 亚洲成av人片一区二区梦乃| 亚洲欧美日韩国产综合在线| 国产精品三级av| 久久午夜电影网| 精品少妇一区二区三区日产乱码| 欧美精三区欧美精三区| 欧美日韩一本到| 欧美这里有精品| 91福利资源站| 在线亚洲人成电影网站色www| av在线这里只有精品| 成人国产精品免费网站| 成人网页在线观看| 国产精品亚洲第一区在线暖暖韩国 | 国产1区2区3区精品美女| 视频在线观看一区| 日韩中文字幕区一区有砖一区| 亚洲一区二区三区激情| 亚洲国产日韩av| 亚洲影视资源网| 亚洲国产三级在线| 亚洲第一激情av| 日韩黄色免费网站| 蜜臀国产一区二区三区在线播放| 青草国产精品久久久久久| 捆绑紧缚一区二区三区视频 | 国产精品欧美久久久久无广告| 国产嫩草影院久久久久| 国产精品亲子伦对白| 综合在线观看色| 亚洲一级不卡视频| 日韩精品一级二级| 精品一区二区免费看| 国产成人自拍网| 99久久精品国产一区| 在线精品视频一区二区| 欧美视频第二页| 精品动漫一区二区三区在线观看| 一级日本不卡的影视| 亚洲影视在线播放| 秋霞国产午夜精品免费视频 | 国产91精品免费| 91蝌蚪porny九色| 7777女厕盗摄久久久| 精品日韩99亚洲| 亚洲天堂免费在线观看视频| 亚洲第一福利一区| 国产在线精品一区二区| av高清久久久| 69久久99精品久久久久婷婷| 久久日韩精品一区二区五区| 中文字幕中文字幕一区| 婷婷六月综合亚洲| 国产成人无遮挡在线视频| 色噜噜夜夜夜综合网| 精品国产一区二区在线观看| 亚洲色图欧美在线| 久久成人av少妇免费| 91论坛在线播放| 日韩免费福利电影在线观看| 中文字幕制服丝袜成人av | 精品免费日韩av| 1000精品久久久久久久久| 日产精品久久久久久久性色| 成av人片一区二区| 欧美本精品男人aⅴ天堂| 亚洲欧美国产高清| 激情丁香综合五月| 日本精品一区二区三区四区的功能| 日韩精品在线网站| 一区二区高清在线| 国产99一区视频免费| 在线播放/欧美激情| 亚洲另类一区二区| 国产精品一卡二卡在线观看| 欧美精品丝袜久久久中文字幕| 日本一区二区视频在线观看| 免费在线成人网| 色婷婷香蕉在线一区二区| 久久精品一区二区三区av| 日韩国产欧美三级| 色婷婷av一区| 国产精品久久久久久久久搜平片| 国产又粗又猛又爽又黄91精品| 欧美少妇性性性| 亚洲精品欧美二区三区中文字幕| 国产精品夜夜嗨| 日韩亚洲欧美一区| 午夜久久电影网| 欧美在线一区二区三区| 亚洲欧美日韩精品久久久久| 成人免费视频caoporn| wwww国产精品欧美| 久久精品国产第一区二区三区| 欧美性一级生活| 一片黄亚洲嫩模| 91福利国产成人精品照片| 成人欧美一区二区三区黑人麻豆| 国产成都精品91一区二区三| 精品国产乱码久久久久久影片| 久久精品国产在热久久| 884aa四虎影成人精品一区| 一个色在线综合| 在线观看91视频| 亚洲国产一区视频| 欧美色图激情小说| 亚洲午夜精品在线| 欧美日韩在线精品一区二区三区激情| 亚洲免费观看高清| 色88888久久久久久影院按摩 | 884aa四虎影成人精品一区| 首页亚洲欧美制服丝腿| 欧美精品乱码久久久久久| 首页国产欧美日韩丝袜| 欧美精品亚洲二区| 久久成人18免费观看| 久久男人中文字幕资源站| 国产不卡高清在线观看视频| 中文无字幕一区二区三区| av男人天堂一区| 亚洲国产美女搞黄色| 欧美精品色综合| 老司机精品视频在线| 亚洲精品一区二区三区福利| 国产不卡视频在线观看| 亚洲图片欧美激情| 欧美午夜精品电影| 青草国产精品久久久久久| www国产成人| 一本一道波多野结衣一区二区| 亚洲精品国产精品乱码不99| 777奇米成人网| 激情都市一区二区| 亚洲色欲色欲www在线观看| 欧美美女黄视频| 国产美女一区二区| 亚洲日本va在线观看| 欧美高清视频不卡网| 国产精品一区二区黑丝| 亚洲欧美另类图片小说| 欧美一卡2卡3卡4卡| 成人久久视频在线观看|