ascfoil.cpp

来自「关联分类算法采用贪心算法发现高质量分类规则」· C++ 代码 · 共 82 行

CPP
82
字号
// AscFoil.cpp : Defines the entry point for the console application.//#include "StdAfx.h"#include <time.h>#include "global.h"#include "HashTable.h"#include "DESCRIPTION.h"#include "TUPLE.h"#include "LITERAL.h"#include "RULE.h"#include "RULESET.h"#include "DataSource.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// The one and only application objectusing namespace std;int main(int argc, const char* argv[]){	int nRetCode = 0;	//FOIL	clock_t old_tick=clock();	double accuracy=0;	int num_rules=0;	int num_dataset=0;	for(int i=0;i<10;i++)	{		printf("Training set #%d\n",i);		CString suffix;		suffix.Format("%d.txt",i);		DataSource source;		bool existed=source.ReadData("train"+suffix);		if(!existed) continue;		else num_dataset++;		num_rules+=source.GenRulesFOIL("rule"+suffix);		DataSource source_test;		source_test.ReadData("test"+suffix);		source_test.ReadRules("rule"+suffix);		accuracy+=source_test.Classify("result"+suffix);		if(i==0)		{//			source_test.IntepretRules("rule_semantics.tab","rule_interpreted.tab");		}	}	int time=clock()-old_tick;	FILE* fout=fopen("summary.txt","w");	fprintf(fout,"\nAccuracy: %g%%\n",accuracy*100.0/num_dataset);	fprintf(fout,"#Rules: %.1f\n",(double)num_rules/num_dataset);	fprintf(fout,"%.3f seconds\n",time*1.0/CLOCKS_PER_SEC/num_dataset);	fclose(fout);	printf("\nAccuracy: %g%%\n",accuracy*100.0/num_dataset);	printf("#Rules: %.1f\n",(double)num_rules/num_dataset);	printf("%.3f seconds\n",time*1.0/CLOCKS_PER_SEC/num_dataset);/*	DataSource source;	source.ReadData("train.txt");	source.GenRulesFOIL("rule_foil.txt");	source.ReadRules("rule_foil.txt");	source.EvaluateRules("rules.txt");*/	return nRetCode;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?