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

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

?? hooks.c

?? 這是vc開發(fā)的數(shù)據(jù)挖掘算法中的決策樹算法之see5算法源代碼.
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*************************************************************************//*									 *//*	Source code for use with See5/C5.0 Release 2.04			 *//*	-----------------------------------------------			 *//*		      Copyright RuleQuest Research 2007			 *//*									 *//*	This code is provided "as is" without warranty of any kind,	 *//*	either express or implied.  All use is at your own risk.	 *//*									 *//*************************************************************************/#define	MAXLINEBUFFER	10000char	LineBuffer[MAXLINEBUFFER], *LBp=LineBuffer;/*************************************************************************//*									 *//*	Read a name from file f into string s, setting Delimiter.	 *//*									 *//*	- Embedded periods are permitted, but periods followed by space	 *//*	  characters act as delimiters.					 *//*	- Embedded spaces are permitted, but multiple spaces are	 *//*	  replaced by a single space.					 *//*	- Any character can be escaped by '\'.				 *//*	- The remainder of a line following '|' is ignored.		 *//*									 *//*************************************************************************/Boolean ReadName(FILE *f, String s, int n, char ColonOpt)/*      --------  */{    register char *Sp=s;    register int  c;    char	  Msg[2];    /*  Skip to first non-space character  */    while ( (c = InChar(f)) == '|' || Space(c) )    {	if ( c == '|' ) SkipComment;    }    /*  Return false if no names to read  */    if ( c == EOF )    {	Delimiter = EOF;	return false;    }    /*  Read in characters up to the next delimiter  */    while ( c != ColonOpt && c != ',' && c != '\n' && c != '|' && c != EOF )    {	if ( --n <= 0 )	{	    if ( Of ) Error(LONGNAME, "", "");	}	if ( c == '.' )	{	    if ( (c = InChar(f)) == '|' || Space(c) || c == EOF ) break;	    *Sp++ = '.';	    continue;	}	if ( c == '\\' )	{	    c = InChar(f);	}	if ( Space(c) )	{	    *Sp++ = ' ';	    while ( ( c = InChar(f) ) == ' ' || c == '\t' )		;	}	else	{	    *Sp++ = c;	    c = InChar(f);	}    }    if ( c == '|' ) SkipComment;    Delimiter = c;    /*  Special case for ':='  */    if ( Delimiter == ':' )    {	if ( *LBp == '=' )	{	    Delimiter = '=';	    LBp++;	}    }    /*  Strip trailing spaces  */    while ( Sp > s && Space(*(Sp-1)) ) Sp--;    if ( Sp == s )    {	Msg[0] = ( Space(c) ? '.' : c );	Msg[1] = '\00';	Error(MISSNAME, Fn, Msg);    }    *Sp++ = '\0';    return true;}/*************************************************************************//*									 *//*	Read names of classes, attributes and legal attribute values.	 *//*	On completion, names are stored in:				 *//*	  ClassName	-	class names				 *//*	  AttName	-	attribute names				 *//*	  AttValName	-	attribute value names			 *//*	with:								 *//*	  MaxAttVal	-	number of values for each attribute	 *//*									 *//*	Other global variables set are:					 *//*	  MaxAtt	-	maximum attribute number		 *//*	  MaxClass	-	maximum class number			 *//*									 *//*	Note:  until the number of attributes is known, the name	 *//*	       information is assembled in local arrays			 *//*									 *//*************************************************************************/void GetNames(FILE *Nf)/*   --------  */{    char	Buffer[1000]="", *EndBuff;    int		AttCeiling=100, ClassCeiling=100;    Attribute	Att;    ClassNo	c;    ErrMsgs = AttExIn = 0;    LineNo  = 0;    LBp     = LineBuffer;    *LBp    = 0;    MaxClass = ClassAtt = LabelAtt = CWtAtt = 0;    /*  Get class names from names file.  This entry can be:	- a list of discrete values separated by commas	- the name of the discrete attribute to use as the class	- the name of a continuous attribute followed by a colon and	  a comma-separated list of thresholds used to segment it  */    ClassName = AllocZero(ClassCeiling, String);    do    {	ReadName(Nf, Buffer, 1000, ':');	if ( ++MaxClass >= ClassCeiling)	{	    ClassCeiling += 100;	    Realloc(ClassName, ClassCeiling, String);	}	ClassName[MaxClass] = strdup(Buffer);    }    while ( Delimiter == ',' );    if ( Delimiter == ':' )    {	/*  Thresholds for continuous class attribute  */	ClassThresh = Alloc(ClassCeiling, ContValue);	MaxClass = 0;	do	{	    ReadName(Nf, Buffer, 1000, ':');	    if ( ++MaxClass >= ClassCeiling)	    {		ClassCeiling += 100;		Realloc(ClassThresh, ClassCeiling, ContValue);	    }	    ClassThresh[MaxClass] = strtod(Buffer, &EndBuff);	    if ( EndBuff == Buffer || *EndBuff != '\0' )	    {		Error(BADCLASSTHRESH, Buffer, Nil);	    }	    else	    if ( MaxClass > 1 &&		 ClassThresh[MaxClass] <= ClassThresh[MaxClass-1] )	    {		Error(LEQCLASSTHRESH, Buffer, Nil);	    }	}	while ( Delimiter == ',' );    }    /*  Get attribute and attribute value names from names file  */    AttName	  = AllocZero(AttCeiling, String);    MaxAttVal	  = AllocZero(AttCeiling, DiscrValue);    AttValName	  = AllocZero(AttCeiling, String *);    SpecialStatus = AllocZero(AttCeiling, char);    AttDef	  = AllocZero(AttCeiling, Definition);    MaxAtt = 0;    while ( ReadName(Nf, Buffer, 1000, ':') )    {	if ( Delimiter != ':' && Delimiter != '=' )	{	    Error(BADATTNAME, Buffer, "");	}	/*  Check for attributes included/excluded  */	if ( ( *Buffer == 'a' || *Buffer == 'A' ) &&	     ! memcmp(Buffer+1, "ttributes ", 10) &&	     ! memcmp(Buffer+strlen(Buffer)-6, "cluded", 6) )	{	    AttExIn = ( ! memcmp(Buffer+strlen(Buffer)-8, "in", 2) ? 1 : -1 );	    if ( AttExIn == 1 )	    {		ForEach(Att, 1, MaxAtt)		{		    SpecialStatus[Att] |= SKIP;		}	    }	    while ( ReadName(Nf, Buffer, 1000, ':') )	    {		Att = Which(Buffer, AttName, 1, MaxAtt);		if ( ! Att )		{		    Error(UNKNOWNATT, Buffer, Nil);		}		else		if ( AttExIn == 1 )		{		    SpecialStatus[Att] -= SKIP;		}		else		{		    SpecialStatus[Att] |= SKIP;		}	    }	    break;	}	if ( Which(Buffer, AttName, 1, MaxAtt) > 0 )	{	    Error(DUPATTNAME, Buffer, Nil);	}	if ( ++MaxAtt >= AttCeiling )	{	    AttCeiling += 100;	    Realloc(AttName, AttCeiling, String);	    Realloc(MaxAttVal, AttCeiling, DiscrValue);	    Realloc(AttValName, AttCeiling, String *);	    Realloc(SpecialStatus, AttCeiling, char);	    Realloc(AttDef, AttCeiling, Definition);	}	AttName[MaxAtt]       = strdup(Buffer);	SpecialStatus[MaxAtt] = Nil;	AttDef[MaxAtt]        = Nil;	MaxAttVal[MaxAtt]     = 0;	if ( Delimiter == '=' )	{	    if ( MaxClass == 1 && ! strcmp(ClassName[1], AttName[MaxAtt]) )	    {		Error(BADDEF3, Nil, Nil);	    }	    ImplicitAtt(Nf);	}	else	{	    ExplicitAtt(Nf);	}	/*  Check for case weight attribute, which must be type continuous  */	if (  ! strcmp(AttName[MaxAtt], "case weight") )	{	    CWtAtt = MaxAtt;	    if ( ! Continuous(CWtAtt) )	    {		Error(CWTATTERR, "", "");	    }	}    }    /*  Check whether class is one of the attributes  */    if ( MaxClass == 1 || ClassThresh )    {	/*  Class attribute must be present and must be either	    a discrete attribute or a thresholded continuous attribute  */	ClassAtt = Which(ClassName[1], AttName, 1, MaxAtt);	if ( ClassAtt <= 0 || Exclude(ClassAtt) )	{	    Error(NOTARGET, ClassName[1], "");	}	else	if ( ClassThresh &&	     ( ! Continuous(ClassAtt) ||	       StatBit(ClassAtt, DATEVAL|STIMEVAL|TSTMPVAL) ) )	{	    Error(BADCTARGET, ClassName[1], "");	}	else	if ( ! ClassThresh &&	     ( Continuous(ClassAtt) || StatBit(ClassAtt, DISCRETE) ) )	{	    Error(BADDTARGET, ClassName[1], "");	}	Free(ClassName[1]);	if ( ! ClassThresh )	{	    Free(ClassName);	    MaxClass  = MaxAttVal[ClassAtt];	    ClassName = AttValName[ClassAtt];	}	else	{	    /*  Set up class names as segments of continuous target att  */	    MaxClass++;	    Realloc(ClassName, MaxClass+1, String);	    sprintf(Buffer, "%s <= %g", AttName[ClassAtt], ClassThresh[1]);	    ClassName[1] = strdup(Buffer);	    ForEach(c, 2, MaxClass-1)	    {		sprintf(Buffer, "%g < %s <= %g",			ClassThresh[c-1], AttName[ClassAtt], ClassThresh[c]);		ClassName[c] = strdup(Buffer);	    }	    sprintf(Buffer, "%s > %g",		    AttName[ClassAtt], ClassThresh[MaxClass-1]);	    ClassName[MaxClass] = strdup(Buffer);	}    }    /*  Ignore case weight attribute if it is excluded; otherwise,	it cannot be used in models  */    if ( CWtAtt )    {	if ( Skip(CWtAtt) )	{	    CWtAtt = 0;	}	else	{	    SpecialStatus[CWtAtt] |= SKIP;	}    }    ClassName[0] = "?";    fclose(Nf);    if ( ErrMsgs > 0 ) Goodbye(1);}/*************************************************************************//*									 *//*	Continuous or discrete attribute				 *//*									 *//*************************************************************************/void ExplicitAtt(FILE *Nf)/*   -----------  */{    char	Buffer[1000]="", *p;    DiscrValue	v;    int		ValCeiling=100, BaseYear;    time_t	clock;    /*  Read attribute type or first discrete value  */    if ( ! ( ReadName(Nf, Buffer, 1000, ':') ) )    {	Error(EOFINATT, AttName[MaxAtt], "");    }    MaxAttVal[MaxAtt] = 0;    if ( Delimiter != ',' )    {	/*  Typed attribute  */	if ( ! strcmp(Buffer, "continuous") )	{	}	else	if ( ! strcmp(Buffer, "timestamp") )	{	    SpecialStatus[MaxAtt] = TSTMPVAL;	    /*  Set the base date if not done already  */	    if ( ! TSBase )	    {		clock = time(0);		BaseYear = gmtime(&clock)->tm_year + 1900;		SetTSBase(BaseYear);	    }	}	else	if ( ! strcmp(Buffer, "date") )	{	    SpecialStatus[MaxAtt] = DATEVAL;	}	else	if ( ! strcmp(Buffer, "time") )	{	    SpecialStatus[MaxAtt] = STIMEVAL;	}	else	if ( ! memcmp(Buffer, "discrete", 8) )	{	    SpecialStatus[MaxAtt] = DISCRETE;	    /*  Read max values and reserve space  */	    v = atoi(&Buffer[8]);	    if ( v < 2 )	    {		Error(BADDISCRETE, AttName[MaxAtt], "");	    }	    AttValName[MaxAtt] = Alloc(v+3, String);	    AttValName[MaxAtt][0] = (char *) (long) v+1;	    AttValName[MaxAtt][(MaxAttVal[MaxAtt]=1)] = strdup("N/A");	}	else	if ( ! strcmp(Buffer, "ignore") )	{	    SpecialStatus[MaxAtt] = EXCLUDE;	}	else	if ( ! strcmp(Buffer, "label") )	{	    LabelAtt = MaxAtt;	    SpecialStatus[MaxAtt] = EXCLUDE;	}	else	{	    /*  Cannot have only one discrete value for an attribute  */	    Error(SINGLEATTVAL, AttName[MaxAtt], Buffer);	}    }    else    {	/*  Discrete attribute with explicit values  */	AttValName[MaxAtt] = AllocZero(ValCeiling, String);	/*  Add "N/A" unless this attribute is the class  */	if ( MaxClass > 1 || strcmp(ClassName[1], AttName[MaxAtt]) )	{	    AttValName[MaxAtt][(MaxAttVal[MaxAtt]=1)] = strdup("N/A");	}	else	{	    MaxAttVal[MaxAtt] = 0;	}	p = Buffer;	/*  Special check for ordered attribute  */	if ( ! memcmp(Buffer, "[ordered]", 9) )	{	    SpecialStatus[MaxAtt] = ORDERED;	    for ( p = Buffer+9 ; Space(*p) ; p++ )		;	}	/*  Record first real explicit value  */	AttValName[MaxAtt][++MaxAttVal[MaxAtt]] = strdup(p);	/*  Record remaining values  */	do	{	    if ( ! ( ReadName(Nf, Buffer, 1000, ':') ) )	    {		Error(EOFINATT, AttName[MaxAtt], "");	    }	    if ( ++MaxAttVal[MaxAtt] >= ValCeiling )	    {		ValCeiling += 100;		Realloc(AttValName[MaxAtt], ValCeiling, String);	    }	    AttValName[MaxAtt][MaxAttVal[MaxAtt]] = strdup(Buffer);	}	while ( Delimiter == ',' );	/*  Cancel ordered status if <3 real values  */	if ( Ordered(MaxAtt) && MaxAttVal[MaxAtt] <= 3 )	{	    SpecialStatus[MaxAtt] = 0;	}    }}/*************************************************************************//*									 *//*	Locate value Val in List[First] to List[Last]			 *//*									 *//*************************************************************************/int Which(String Val, String *List, int First, int Last)/*  -----  */{    int	n=First;    while ( n <= Last && strcmp(Val, List[n]) ) n++;    return ( n <= Last ? n : First-1 );}/*************************************************************************//*									 *//*	Read next char keeping track of line numbers			 *//*									 *//*************************************************************************/int InChar(FILE *f)/*  ------  */{    if ( ! *LBp )    {	LBp = LineBuffer;	if ( ! fgets(LineBuffer, MAXLINEBUFFER, f) )	{	    LineBuffer[0] = '\00';	    return EOF;	}	LineNo++;    }	    return (int) *LBp++;}/*************************************************************************//*									 *//*  Read a raw case description from file Df.				 *//*									 *//*  For each attribute, read the attribute value from the file.		 *//*  If it is a discrete valued attribute, find the associated no.	 *//*  of this attribute value (if the value is unknown this is 0).	 *//*									 *//*  Returns the Description of the case (i.e. the array of		 *//*  attribute values).							 *//*									 *//*************************************************************************/#define XError(a,b,c)	Error(a,b,c)Description GetDescription(FILE *Df, Boolean Train)/*          --------------  */{    Attribute	Att;    char	Name[1000], *EndName;    int		Dv;    Description	Dummy, DVec;    ContValue	Cv;    Boolean	FirstValue=true;#if defined WIN32  && ! defined _CONSOLE     extern int	XREF;#endif    if ( ReadName(Df, Name, 1000, '\00') )    {	Dummy = AllocZero(MaxAtt+2, AttValue);	DVec = &Dummy[1];	ForEach(Att, 1, MaxAtt)	{	    if ( AttDef[Att] )	    {		DVec[Att] = EvaluateDef(AttDef[Att], DVec);		if ( Continuous(Att) )		{		    CheckValue(DVec, Att);		}		if ( SomeMiss )		{		    SomeMiss[Att] |= Unknown(DVec, Att);		    SomeNA[Att]   |= NotApplic(DVec, Att);		}		continue;	    }	    /*  Get the attribute value if don't already have it  */	    if ( ! FirstValue && ! ReadName(Df, Name, 1000, '\00') )	    {		XError(HITEOF, AttName[Att], "");		FreeLastCase(DVec);		return Nil;	    }	    FirstValue = false;	    if ( Exclude(Att) )	    {#if defined WIN32 && ! defined _CONSOLE		if ( XREF || Att == LabelAtt )#else		if ( Att == LabelAtt )

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品成人免费在线| 日韩精品五月天| 欧美一级片免费看| 97精品国产露脸对白| 久久国产麻豆精品| 亚洲一区二区三区四区不卡| 久久婷婷久久一区二区三区| 欧美性猛交xxxx黑人交| 本田岬高潮一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 亚洲欧美另类小说视频| 久久精品网站免费观看| 欧美色国产精品| 91视频一区二区三区| 国产麻豆精品视频| 精品亚洲国内自在自线福利| 午夜精品福利久久久| 自拍偷拍国产精品| 中文字幕第一区| 久久亚洲精品国产精品紫薇| 日韩欧美综合一区| 欧美人妇做爰xxxⅹ性高电影| 91视频国产资源| 成人av在线影院| 国产xxx精品视频大全| 国产在线不卡一区| 激情综合色播激情啊| 蜜臀av一区二区在线免费观看 | 日本韩国欧美一区| 国产成人激情av| 国产成人自拍网| 国产精品影视网| 激情综合色播激情啊| 久久99热这里只有精品| 蜜臀精品一区二区三区在线观看| 日韩精彩视频在线观看| 日韩电影在线免费观看| 亚洲v日本v欧美v久久精品| 亚洲一区二区三区中文字幕在线| 亚洲欧美日韩国产一区二区三区| 综合在线观看色| 亚洲视频资源在线| 亚洲男人天堂一区| 一区二区三区精品| 亚洲成人免费影院| 日韩极品在线观看| 久久成人精品无人区| 韩国精品一区二区| 国产成人超碰人人澡人人澡| 不卡视频一二三| 色哟哟亚洲精品| 欧美绝品在线观看成人午夜影视| 欧美日韩国产高清一区| 欧美一区二区三区成人| 欧美成人性福生活免费看| 久久先锋影音av鲁色资源| 久久久久久久久99精品| 中文字幕亚洲视频| 亚洲精品乱码久久久久久| 亚洲成av人**亚洲成av**| 久久成人18免费观看| 成人精品视频一区二区三区尤物| 99久久亚洲一区二区三区青草| 色呦呦国产精品| 欧美一区二区三区四区久久| 久久久久久一级片| 亚洲精品国产高清久久伦理二区| 五月婷婷激情综合网| 久久av中文字幕片| 99久久婷婷国产综合精品电影| 欧美日韩成人综合| 久久久久久免费网| 亚洲亚洲人成综合网络| 国产精品一区二区在线播放| 91捆绑美女网站| 日韩视频免费观看高清在线视频| 国产丝袜在线精品| 亚洲午夜av在线| 国产一区二区主播在线| 一本大道av一区二区在线播放| 91精品国产综合久久福利| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲一区二区五区| 国产成人精品免费视频网站| 91豆麻精品91久久久久久| 2017欧美狠狠色| 亚洲一本大道在线| 成人免费观看av| 日韩免费视频线观看| 亚洲欧美日韩电影| 国产精品夜夜嗨| 日韩小视频在线观看专区| 亚洲三级免费电影| 国产激情视频一区二区三区欧美| 在线观看亚洲成人| 欧美韩国日本不卡| 蜜臀91精品一区二区三区| 日本乱人伦aⅴ精品| 国产午夜亚洲精品羞羞网站| 视频在线在亚洲| 一本久道中文字幕精品亚洲嫩| 久久久久国产精品厨房| 日韩不卡一区二区| 欧亚洲嫩模精品一区三区| 国产精品―色哟哟| 精品一区二区免费看| 在线播放日韩导航| 亚洲综合免费观看高清完整版| 国产精品一区二区男女羞羞无遮挡| 欧美天堂一区二区三区| 亚洲国产精品精华液2区45| 久久99精品一区二区三区| 欧美男生操女生| 一区二区三区丝袜| 91在线播放网址| 国产精品视频免费看| 处破女av一区二区| 久久女同互慰一区二区三区| 免费观看91视频大全| 欧美精品自拍偷拍动漫精品| 亚洲影视在线播放| 色94色欧美sute亚洲线路一久| 国产精品久久久久久久久搜平片 | 成人综合在线视频| 久久免费的精品国产v∧| 美洲天堂一区二卡三卡四卡视频| 欧美人动与zoxxxx乱| 午夜av一区二区三区| 欧美精品自拍偷拍| 日韩av中文在线观看| 欧美日韩一区二区三区在线 | 国产精品免费视频观看| 国产精品一二三在| 国产精品午夜在线观看| 成人综合在线观看| 中文字幕亚洲一区二区av在线| www.综合网.com| 色综合欧美在线| 中文子幕无线码一区tr| 国产激情一区二区三区桃花岛亚洲| 久久人人97超碰com| 国产高清成人在线| 中文字幕欧美一| 91视视频在线直接观看在线看网页在线看| 国产精品的网站| 色婷婷av一区二区三区大白胸| 亚洲猫色日本管| 欧美视频在线不卡| 日韩电影在线一区| 欧美精品一区二区三区很污很色的| 精品综合久久久久久8888| 久久综合色婷婷| 国产99精品国产| 亚洲欧美激情在线| 欧美情侣在线播放| 国产最新精品精品你懂的| 国产欧美日韩综合| 色哟哟精品一区| 男女性色大片免费观看一区二区| 日韩精品一区二区三区中文不卡 | 欧美喷水一区二区| 久久草av在线| 日本一区二区三区在线观看| 99久久亚洲一区二区三区青草| 亚洲综合色丁香婷婷六月图片| 欧美一区二区三区日韩| 国产一区二区三区精品视频| 亚洲欧洲日产国码二区| 欧美日韩一卡二卡| 国产一区二区三区| 亚洲精品成人悠悠色影视| 欧美一区二区三级| 成人免费看的视频| 日韩av电影免费观看高清完整版在线观看| 久久在线免费观看| 欧美性猛片aaaaaaa做受| 国产在线视频一区二区| 怡红院av一区二区三区| 精品国产百合女同互慰| 一本色道久久加勒比精品| 久久99热这里只有精品| 亚洲精品视频在线观看网站| 精品国产凹凸成av人导航| 色94色欧美sute亚洲13| 国产乱码精品一区二区三区忘忧草| 亚洲日本中文字幕区| 精品国产乱码久久久久久影片| 91小宝寻花一区二区三区| 久久国产人妖系列| 亚洲免费在线观看| 久久久久久**毛片大全| 欧美情侣在线播放| 99久久精品99国产精品| 极品美女销魂一区二区三区| 一区二区三区在线视频观看| 久久品道一品道久久精品| 欧美精品 国产精品| 91在线一区二区三区| 国内不卡的二区三区中文字幕| 一区二区三区高清不卡|