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

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

?? contin.cpp

?? 計(jì)算機(jī)人工智能方面的決策樹方法 c4.5
?? CPP
字號(hào):
/*************************************************************************/
/*                                                                       */
/*      Evaluation of a test on a continuous valued attribute            */
/*      -----------------------------------------------------            */
/*                                                                       */
/*************************************************************************/


#include "buildex.h"
#include "extern.h"


double
*SplitGain,     /* SplitGain[i] = gain with att value of item i as threshold */
*SplitInfo;     /* SplitInfo[i] = potential info ditto */

extern FILE *fpScreen;

/*************************************************************************/
/*                                                                       */
/*  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)
/*  -----------------  */ 
{ 
    ItemNo i, BestI, Xp, Tries=0;
    ItemCount Items, KnownItems, LowItems, MinSplit;
    ClassNo c;
    double AvGain=0, Val, BestVal, BaseInfo;
	
	
    Verbosity(2) 
	{
		fprintf(fpScreen,"\tAtt %s", AttName[Att]);
		printf("\tAtt %s", AttName[Att]);
	}
    Verbosity(3) 
	{
		fprintf(fpScreen,"\n");
		printf("\n");
	}
	
    ResetFreq(2);
	
    /*  Omit and count unknown values */
	
    Items = CountItems(Fp, Lp);
    Xp = Fp;
    ForEach(i, Fp, Lp)
    {
		if ( CVal(Item[i],Att) == Unknown )
		{
			Freq[ 0 ][ Class(Item[i]) ] += Weight[i];
			Swap(Xp, i);
			Xp++;
		}
    }
	
    ValFreq[0] = 0;
    ForEach(c, 0, MaxClass)
    {
		ValFreq[0] += Freq[0][c];
    }
	
    KnownItems = Items - ValFreq[0];
    UnknownRate[Att] = 1.0 - KnownItems / Items;
	
    /*  Special case when very few known values  */
	
    if ( KnownItems < 2 * MINOBJS )
    {
		Verbosity(2)
		{
			fprintf(fpScreen,"\tinsufficient cases with known values\n");
			printf("\tinsufficient cases with known values\n");
		}
		
		Gain[Att] = -Epsilon;
		Info[Att] = 0.0;
		return;
    }
	
    Quicksort(Xp, Lp, Att, Swap);
	
    /*  Count base values and determine base information  */
	
    ForEach(i, Xp, Lp)
    {
		Freq[ 2 ][ Class(Item[i]) ] += Weight[i];
		SplitGain[i] = -Epsilon;
		SplitInfo[i] = 0;
    }
	
    BaseInfo = TotalInfo(Freq[2], 0, MaxClass) / KnownItems;
	
    /*  Try possible cuts between items i and i+1, and determine the
	information and gain of the split in each case.  We have to be wary
	of splitting a small number of items off one end, as we can always
	split off a single item, but this has little predictive power.  */
	
    MinSplit = 0.10 * KnownItems / (MaxClass + 1);
    if ( MinSplit <= MINOBJS ) MinSplit = MINOBJS;
    else
		if ( MinSplit > 25 ) MinSplit = 25;
		
		LowItems = 0;
		ForEach(i, Xp, Lp - 1)
		{
			c = Class(Item[i]);
			LowItems   += Weight[i];
			Freq[1][c] += Weight[i];
			Freq[2][c] -= Weight[i];
			
			if ( LowItems < MinSplit ) continue;
			else
				if ( LowItems > KnownItems - MinSplit ) break;
				
				if ( CVal(Item[i],Att) < CVal(Item[i+1],Att) - 1E-5 )
				{
					ValFreq[1] = LowItems;
					ValFreq[2] = KnownItems - LowItems;
					SplitGain[i] = ComputeGain(BaseInfo, UnknownRate[Att], 2, KnownItems);
					SplitInfo[i] = TotalInfo(ValFreq, 0, 2) / Items;
					AvGain += SplitGain[i];
					Tries++;
					
					Verbosity(3)
					{   fprintf(fpScreen,"\t\tCut at %.3f  (gain %.3f, val %.3f):",
					( CVal(Item[i],Att) + CVal(Item[i+1],Att) ) / 2,
					SplitGain[i],
					Worth(SplitInfo[i], SplitGain[i], Epsilon));
					PrintDistribution(Att, 2, true);
					printf("\t\tCut at %.3f  (gain %.3f, val %.3f):",
						( CVal(Item[i],Att) + CVal(Item[i+1],Att) ) / 2,
						SplitGain[i],
						Worth(SplitInfo[i], SplitGain[i], Epsilon));
					PrintDistribution(Att, 2, true);
					}
				}
		}
		
		/*  Find the best attribute according to the given criterion  */
		
		BestVal = -Epsilon;
		BestI   = None;
		AvGain  = ( Tries ? AvGain / Tries : 1E6 );
		ForEach(i, Xp, Lp - 1)
		{
			Val = Worth(SplitInfo[i], SplitGain[i], AvGain);
			if ( SplitGain[i] >= 0 && Val >= BestVal )
			{
				BestI   = i;
				BestVal = Val;
			}
		}
		
		/*  If a test on the attribute is able to make a gain,
		set the best break point, gain and information  */ 
		
		if ( BestI == None )
		{
			Gain[Att] = -Epsilon;
			Info[Att] = 0.0;
			
			Verbosity(2) 
			{
				fprintf(fpScreen,"\tno gain\n");
				printf("\tno gain\n");
			}	
		}
		else
		{
			Bar[Att]  = (CVal(Item[BestI],Att) + CVal(Item[BestI+1],Att)) / 2;
			Gain[Att] = SplitGain[BestI];
			Info[Att] = SplitInfo[BestI];
			
			Verbosity(2)
			{
				fprintf(fpScreen,"\tcut=%.3f, inf %.3f, gain %.3f\n",
				Bar[Att], Info[Att], Gain[Att]);
				printf("\tcut=%.3f, inf %.3f, gain %.3f\n",
				Bar[Att], Info[Att], Gain[Att]);
			}
		}
} 



/*************************************************************************/
/*                                                                       */
/*  Change a leaf into a test on a continuous attribute                  */
/*                                                                       */
/*************************************************************************/


void ContinTest(Tree Node, Attribute Att)
/*  ----------  */
{
    double Thresh;
    
	
    Sprout(Node, 2);
	
    Thresh = GreatestValueBelow(Att, Bar[Att]);
	
    Node->NodeType      = ThreshContin;
    Node->Tested        = Att;
    Node->Cut           =
		Node->Lower         =
		Node->Upper         = Thresh;
    Node->Errors        = 0;
}



/*************************************************************************/
/*                                                                       */
/*  Return the greatest value of attribute Att below threshold t         */
/*                                                                       */
/*************************************************************************/


double GreatestValueBelow(Attribute Att, double t)
/*    ------------------  */
{
    ItemNo i;
    double v, Best;
	
    Best = -1E20;
	
    ForEach(i, 0, MaxItem)
    {
		v = CVal(Item[i], Att);
		if ( v != Unknown && v <= t && v > Best ) Best = v;
    }

    return Best;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本到三区不卡视频| 97久久超碰精品国产| 亚洲欧洲一区二区三区| 欧美精品久久一区| 成人激情午夜影院| 精品一区二区三区久久久| 日韩理论电影院| 久久久久久久综合色一本| 欧美欧美欧美欧美| 91丝袜美腿高跟国产极品老师| 麻豆精品视频在线观看视频| 亚洲一区二区不卡免费| 国产精品久久三| 久久精品水蜜桃av综合天堂| 日韩视频不卡中文| 欧美日韩国产bt| 一本大道综合伊人精品热热 | 裸体在线国模精品偷拍| 亚洲精品成人精品456| 中文一区一区三区高中清不卡| 日韩女优av电影在线观看| 在线播放/欧美激情| 欧美在线观看视频一区二区| 91美女在线视频| 成人av高清在线| 成人av动漫在线| 成人av午夜电影| 丰满白嫩尤物一区二区| 国产成人三级在线观看| 韩国一区二区视频| 久久精品国产秦先生| 日本欧美在线看| 日韩国产欧美在线播放| 日韩av成人高清| 日韩电影在线免费看| 日韩中文字幕亚洲一区二区va在线 | 成人午夜免费视频| 国产精品自拍一区| 国产精品99久久不卡二区| 国产裸体歌舞团一区二区| 韩国理伦片一区二区三区在线播放| 蜜臀av性久久久久蜜臀av麻豆| 日本午夜一本久久久综合| 日韩综合在线视频| 奇米综合一区二区三区精品视频| 日韩制服丝袜av| 蜜臀99久久精品久久久久久软件| 捆绑变态av一区二区三区| 蜜桃av噜噜一区| 国产一区二区三区免费看| 国产成人一级电影| 99综合影院在线| 日本久久一区二区| 欧美肥妇bbw| 日韩欧美一卡二卡| 国产无遮挡一区二区三区毛片日本| 国产欧美一区二区精品婷婷 | 欧美三级中文字| 欧美日韩成人在线一区| 91精品国产综合久久精品性色 | 中文字幕制服丝袜一区二区三区| 国产精品夫妻自拍| 一区二区三区欧美亚洲| 亚洲成人免费视| 捆绑紧缚一区二区三区视频| 国产成人免费网站| 91麻豆免费看片| 欧美日韩国产精品自在自线| 日韩精品在线一区| 欧美韩国日本一区| 一区二区三区蜜桃| 日本一区中文字幕| 成人免费三级在线| 欧美日本一道本在线视频| 日韩女优视频免费观看| 国产精品国产三级国产普通话蜜臀 | 亚洲国产一二三| 蜜臀久久久久久久| 成人免费看黄yyy456| 精品视频999| 国产亚洲精品bt天堂精选| 亚洲欧洲综合另类| 久久99久久久欧美国产| av影院午夜一区| 4hu四虎永久在线影院成人| 国产农村妇女精品| 婷婷久久综合九色综合伊人色| 国产乱色国产精品免费视频| 一本一本大道香蕉久在线精品| 91精品国产91综合久久蜜臀| 国产精品麻豆视频| 青娱乐精品在线视频| 91麻豆蜜桃一区二区三区| 欧美本精品男人aⅴ天堂| 亚洲欧美国产77777| 精品无码三级在线观看视频| 日本高清不卡aⅴ免费网站| 久久伊99综合婷婷久久伊| 亚洲最大的成人av| 国产成人亚洲精品狼色在线| 欧美精选午夜久久久乱码6080| 亚洲国产精品传媒在线观看| 日韩高清欧美激情| 日本韩国一区二区三区视频| 国产婷婷精品av在线| 亚洲成人tv网| 色婷婷一区二区三区四区| 久久人人爽爽爽人久久久| 丝袜美腿亚洲色图| 91捆绑美女网站| 国产精品网站导航| 国内一区二区视频| 91精品国产综合久久福利软件 | 欧美日韩激情一区二区| 国产精品久久久久7777按摩| 国精产品一区一区三区mba桃花 | 欧美一区二区三区系列电影| 亚洲激情五月婷婷| 成年人午夜久久久| 欧美国产日本视频| 国产一区二区美女| 精品成人a区在线观看| 日本va欧美va瓶| 欧美高清你懂得| 亚洲福利一区二区三区| 欧洲另类一二三四区| 亚洲蜜臀av乱码久久精品蜜桃| 成人丝袜高跟foot| 欧美韩国一区二区| youjizz国产精品| 国产精品国产三级国产aⅴ无密码| 国产电影一区在线| 久久精品亚洲国产奇米99| 国产精品白丝jk白祙喷水网站 | 日韩精品一区二区三区在线观看| 三级久久三级久久久| 制服丝袜日韩国产| 日韩精品五月天| 欧美一个色资源| 美女网站一区二区| 精品国产乱码久久久久久图片| 狠狠色狠狠色综合| 国产欧美日韩在线观看| 成人夜色视频网站在线观看| 国产欧美一区二区三区鸳鸯浴 | 激情五月播播久久久精品| 精品国内片67194| 国产成人在线观看免费网站| 中文字幕在线一区| 一本久久综合亚洲鲁鲁五月天| 一级中文字幕一区二区| 欧美日韩精品欧美日韩精品| 男男成人高潮片免费网站| 精品国产91洋老外米糕| 国产高清成人在线| 中文字幕亚洲一区二区av在线 | 成人免费视频视频在线观看免费 | 久久成人久久爱| 久久先锋影音av鲁色资源网| 成人三级在线视频| 一区二区三区在线视频免费| 在线播放中文一区| 精品一区二区三区影院在线午夜| 国产欧美精品一区二区三区四区| 99综合影院在线| 视频精品一区二区| 亚洲丝袜另类动漫二区| 欧美日韩一区二区三区视频| 久久精品国产免费看久久精品| 国产精品午夜免费| 欧美日韩高清影院| 国产传媒一区在线| 亚洲综合激情网| 精品sm捆绑视频| 色综合久久久久综合体| 免费在线观看成人| 亚洲欧洲日产国产综合网| 欧美夫妻性生活| 成人激情免费网站| 日本色综合中文字幕| 中日韩免费视频中文字幕| 欧美在线你懂的| 国产成人久久精品77777最新版本| 亚洲另类中文字| 久久综合色播五月| 在线免费观看不卡av| 国产真实乱偷精品视频免| 樱桃国产成人精品视频| 久久久亚洲午夜电影| 欧美午夜精品久久久| 国产成人免费视频网站高清观看视频| 亚洲影视资源网| 国产精品无人区| 欧美一二三区在线观看| 色综合久久天天综合网| 久久99在线观看| 五月天一区二区三区| 成人欧美一区二区三区小说| 2019国产精品| 6080午夜不卡|