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

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

?? aprioriset.cpp

?? Apriori算法源碼(C++) 看了以前在這里發(fā)的apriori源碼
?? CPP
字號:
#include "stdAfx.h"
#include ".\aprioriset.h"

using namespace win32::gui;


CAprioriSet::CAprioriSet(int _itemCount, double _itemSupp)
{

	itemCount = _itemCount;
	freq  = _itemSupp * itemCount;

	//initialization database access
	con.connect ( DB_NAME, HOST, USER, PASSWD );

	Query query = con.query();
	query<<"select * from AprioriDB";

	res = query.store();

}

CAprioriSet::~CAprioriSet(void)
{
	con.close();
}

//************************************************************
//*
//* 功能:	查找1-頻繁項集				    
//*							    
//************************************************************
void CAprioriSet::FindlargeItem(void)
{
	int count = 0;

	string strInit;
	string strValue;

	// 初始化候選項目集——從I1到I9	
	for( int initCount = 0; initCount < itemCount ; initCount++ )
	{   
		strInit = "I" + boost::lexical_cast<std::string>( initCount+1 );
		candlargeItem[0][initCount] = strInit;
	}

	// 遍歷訪問數(shù)據(jù),獲取項集
	Result::iterator it;
	for ( it = res.begin() ; it != res.end(); ++it )
	{
		
		// 獲取當前列的值
		Row row(*it);
		strValue = row[1];
		//strValue = it->lookup_by_name( res.field_name(i).c_str() );   //效率較低,似乎無法獲得正確的值
		
		// 統(tǒng)計1-頻繁項集的值
		for(int j = 0; j < itemCount; j++)
			if ( npos != strValue.find( candlargeItem[0][j]) )
				candFreqCount[0][j]++;

	}

	// 生成1-頻繁項集
	for ( int i = 0; i < itemCount; i++)
	{
		if ( candFreqCount[0][i] > freq )
		{
			freqGroup.push_back( make_tuple( 0, candlargeItem[0][i], candFreqCount[0][i] ) );
			largeItem[0][count] = candlargeItem[0][i];
			freqCount[0][count] = candFreqCount[0][i];
			count++;
		}
	}

	candlargeItemCount.push_back(count);

	largeItemCount.push_back(count);

}

//************************************************************
//*
//* 功能:	生成k(k>1)-頻繁項集				    
//*							    
//************************************************************
void CAprioriSet::GenfreqItem(int level)
{
	string	strValue;
	int	count = 0;

	// 以下為求頻繁項目集
	int k = level;
	
	for(int i = 0; i < candlargeItemCount[k]; i++)
	{
		if ( candFreqCount[k][i] > freq )
		{
			freqGroup.push_back ( make_tuple( k, candlargeItem[k][i], candFreqCount[k][i] ) );
			largeItem[k][count] = candlargeItem[k][i];
			freqCount[k][count] = candFreqCount[k][i];
			count++;
		}
	}

	// 復制頻繁項目個數(shù)
	largeItemCount.push_back(count);
}

//********************************************************************
//*
//* 功能:	剪枝函數(shù), 對已生成的候選項集檢測其所有k-1組合是否存在				    
//*							    
//********************************************************************

bool CAprioriSet::Prune( int level, string& strCandFreqItem, vector<bool> itemFlag )
{
	int pos;
	vector<string> strFreqItem;	
	string strSubTemp;

	// 以,為間隔符取得字符串中的各項
	tokenItem ( strFreqItem, strCandFreqItem );

	pos = strFreqItem.size() - 2;
	while( pos-- >= 0 )
	{
		strSubTemp.clear();

		strSubTemp = next_combination( strFreqItem, pos );

		// 如果下一個k-1組合存在于C(k-1)中,則返回true
		for( int i = 0; i < largeItemCount[level-1]; i++ )
		{
			if ( npos == largeItem[level-1][i].find( strSubTemp ) ) 
			{
				return false;
			}
			else {
				itemFlag[i] = true;
			}
		}
	}

	return true;
}


//************************************************************
//*
//* 功能:	由L(k-1)生成C(k)				    
//*							    
//************************************************************

void CAprioriSet::AprioriGen( int level )
{
	string strTemp;
	int levelCount = 0;

	vector<bool> candLargeItemFlag( largeItemCount[level-1], false );
	
	// 如果兩個L(k-1)項,前k-2都相同,只是最后一項不同,且前一項小于后一項
	// 則生成C(k),并剪枝
	for(int i = 0; i < largeItemCount[level-1]; i++)
	{
		string strTemp1 = largeItem[ level-1 ][i];		
		
		for(int j = i + 1; j < largeItemCount[level-1]; j++)
		{
			// 如果此項為前面某k項組合中的k-1子項,則必不符合下述條件
			if( candLargeItemFlag[j] ){ 
				candLargeItemFlag[j] = false;
				continue;
			}
			string strTemp2 = largeItem[ level-1 ][j];

			// 檢查兩個L(k-1)項,是否只有最后一項不同,且符合條件
			pair<string::iterator, string::iterator> result =
				mismatch( strTemp1.begin(), strTemp1.end(), strTemp2.begin());

			if ( result.first == strTemp1.end()-1 && *(result.first) < *(result.second) )
			{
				strTemp = strTemp1 + ",I" + *(result.second);

				if( level == 1 || Prune( level, strTemp, candLargeItemFlag ) )
				{
					candlargeItem[level][levelCount++] = strTemp;				
				}
			}
		}

	}

	candlargeItemCount.push_back(levelCount);
}

//************************************************************
//*
//* 功能:	獲取頻繁項集,返回給view				    
//*							    
//************************************************************

vector<ItemType>  CAprioriSet::getFreqItem()
{
	Result::iterator it;
	string strValue;
	vector<string> strVec;

        FindlargeItem();
	
	for( int k = 1; largeItemCount[k-1] > k-1; k++ )
	{    

		AprioriGen(k);

		// 統(tǒng)計各項集頻繁度
		for ( it = res.begin(); it != res.end(); it++ )
		{
			Row row(*it);
			strValue = row[1];

			for ( int i = 0; i < candlargeItemCount[k]; i++)
			{
				tokenItem( strVec, candlargeItem[k][i] );
				if ( search( strVec, strValue) )
				{
					candFreqCount[k][i]++;
					
				}
			}
			

		} 
	
		// 生成頻繁項集
		GenfreqItem(k);

	}

	return freqGroup;
}

//************************************************************
//*
//* 功能:	以','為間隔符抽取字符串中的單項目,返回矢量				    
//*							    
//************************************************************

vector<string>& CAprioriSet::tokenItem(vector<string>& strVec, string& text)
{
	strVec.clear();
        
	string::const_iterator begin = text.begin(), end = text.end();
	boost::regex re("\\s*,\\s*", regex::optimize);
	boost::sregex_token_iterator token( begin, end, re, -1 );
	boost::sregex_token_iterator seeker;

	while ( token != seeker )
		strVec.push_back( *token++ );

	return strVec;

}

//************************************************************
//*
//* 功能:	生成L(k-1)的下一個組合				    
//*							    
//************************************************************

string& CAprioriSet::next_combination( vector<string>& kItem, int vecPos )
{
	vector<string> next = kItem;
	string str;
	
	// 用排除法求k-1組合
	vector<string>::iterator it;
	vector<string>::iterator new_end = remove( next.begin(), next.end(), kItem[ vecPos - 1 ] );
	next.erase( new_end, next.end() );

	for( it = kItem.begin(); it != kItem.end()-1; it++ )
		str += *it + ",";
	str += *it;

	return str;
}

//************************************************************
//*
//* 功能:	查找候選項集在在數(shù)據(jù)集中的匹配				    
//*							    
//************************************************************
bool CAprioriSet::search(vector<string>& src, string& text)
{
	vector<string>::iterator it;
	for( it = src.begin(); it != src.end(); it++ )
	{
		if ( npos == text.find(*it) )
			return false;
	}

	return true;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性欧美巨大黑白大战| 日本韩国欧美三级| 一区二区三区四区蜜桃| 欧美不卡一二三| 欧美日韩精品久久久| 成人伦理片在线| 日本不卡的三区四区五区| 中文字幕永久在线不卡| 欧美精品一区二区高清在线观看| 欧美中文字幕亚洲一区二区va在线 | 国产一区二区在线观看免费 | 亚洲一区二区三区美女| 国产麻豆精品视频| 艳妇臀荡乳欲伦亚洲一区| 亚洲国产精品久久久久秋霞影院| 亚洲自拍另类综合| 精品理论电影在线观看| 不卡的av电影| 国产精品久久一卡二卡| 在线成人免费观看| 91久久线看在观草草青青| 亚洲成av人片| 国产日韩在线不卡| 成人黄页在线观看| 亚洲欧美国产高清| 国产精品一区二区免费不卡| 欧美一区二区免费视频| 亚洲精品成人在线| 国产99久久久国产精品 | 欧美日韩中文字幕一区| 蜜桃一区二区三区四区| 国产三级一区二区| 日韩美一区二区三区| 国产精品自在在线| 一区二区三区四区五区视频在线观看| 欧美日韩高清一区| 奇米精品一区二区三区四区| 精品国产乱码91久久久久久网站| 日韩午夜激情电影| 国产在线不卡一区| 午夜精品福利一区二区蜜股av| 在线日韩国产精品| 国产在线一区二区| 精品乱人伦一区二区三区| 国产美女久久久久| 久久亚洲影视婷婷| 色婷婷香蕉在线一区二区| 国产精品私人影院| 日韩午夜中文字幕| 欧美在线三级电影| 国产电影一区二区三区| 日本网站在线观看一区二区三区| 国产精品嫩草影院com| 国产精品久久777777| 自拍偷在线精品自拍偷无码专区| 中文一区二区在线观看| 精品少妇一区二区三区在线播放| 成人深夜在线观看| 香蕉久久夜色精品国产使用方法| 色婷婷精品久久二区二区蜜臀av | 91网站最新网址| 成人福利在线看| 色综合天天综合网天天看片| 在线观看亚洲一区| 91精品欧美久久久久久动漫| 日韩欧美国产电影| 久久久一区二区三区捆绑**| 中日韩av电影| 亚洲午夜久久久久久久久电影院| 天堂成人国产精品一区| 狠狠v欧美v日韩v亚洲ⅴ| 福利一区二区在线观看| 欧美午夜精品一区二区蜜桃| 欧美一区二区三区精品| 国产日产精品1区| 亚洲综合久久av| 麻豆精品视频在线| voyeur盗摄精品| 6080日韩午夜伦伦午夜伦| 精品福利二区三区| 亚洲另类在线一区| 久久精品国产一区二区三区免费看| 国产激情一区二区三区| 色婷婷av一区二区三区大白胸| 91精品在线观看入口| 欧美经典一区二区| 亚洲444eee在线观看| 国产精品夜夜嗨| 欧美日韩一区二区三区四区五区| 久久影视一区二区| 亚洲一区二区欧美激情| 国产一区二区三区电影在线观看| 在线观看一区二区精品视频| 精品91自产拍在线观看一区| 一区二区高清视频在线观看| 老司机精品视频线观看86| 91在线视频观看| 26uuu亚洲婷婷狠狠天堂| 亚洲第一二三四区| 国产白丝精品91爽爽久久| 91精品国产入口在线| 国产精品久久久久久久第一福利| 免费欧美在线视频| 91九色02白丝porn| 国产精品免费网站在线观看| 麻豆一区二区三| 欧美三级电影网| 国产精品家庭影院| 国产一区二区三区免费看| 欧美精三区欧美精三区| 亚洲乱码国产乱码精品精小说| 国产又粗又猛又爽又黄91精品| 欧美年轻男男videosbes| 亚洲特黄一级片| 成人免费av在线| 欧美精品一区在线观看| 视频在线观看一区| 欧美无砖砖区免费| 亚洲欧美电影一区二区| 成人免费电影视频| 日本一区二区三区国色天香 | 99热在这里有精品免费| 久久亚洲精品国产精品紫薇| 理论电影国产精品| 日韩午夜三级在线| 日本不卡一区二区三区高清视频| 在线一区二区三区四区| 亚洲精品中文字幕乱码三区| 国产盗摄视频一区二区三区| 久久久久88色偷偷免费| 精品在线视频一区| 欧美一区二区三区色| 日韩国产欧美在线播放| 欧美美女一区二区三区| 婷婷开心激情综合| 欧美美女视频在线观看| 日本亚洲一区二区| 日韩精品一区二区在线| 美腿丝袜在线亚洲一区| 欧美mv日韩mv国产网站| 精品亚洲国产成人av制服丝袜| 日韩免费观看高清完整版| 麻豆精品在线观看| 2020国产精品自拍| 国产成人午夜精品5599| 国产精品沙发午睡系列990531| jlzzjlzz国产精品久久| 亚洲美女少妇撒尿| 欧美性猛片aaaaaaa做受| 视频一区视频二区中文| 欧美一级二级三级蜜桃| 精品系列免费在线观看| 国产欧美日韩一区二区三区在线观看| 国产寡妇亲子伦一区二区| 国产精品久久久久久久浪潮网站| 99免费精品在线观看| 亚洲综合小说图片| 欧美一级一区二区| 国产在线精品一区二区三区不卡| 国产日韩av一区| 色综合激情久久| 日本亚洲三级在线| 亚洲国产高清aⅴ视频| 一本久久a久久精品亚洲| 亚洲成人免费在线| 久久综合久色欧美综合狠狠| 波波电影院一区二区三区| 亚洲在线观看免费视频| 日韩欧美一级在线播放| www.日韩在线| 午夜一区二区三区视频| 26uuu欧美| 欧美影院一区二区三区| 久久精品国产精品青草| 国产精品国产成人国产三级| 欧美日韩一区中文字幕| 国产综合一区二区| 亚洲一级二级三级| 久久亚洲一级片| 欧美影院精品一区| 国产成人精品免费在线| 亚洲国产成人精品视频| 国产日韩精品一区二区浪潮av| 欧美这里有精品| 国产成人免费9x9x人网站视频| 亚洲国产精品影院| 亚洲国产岛国毛片在线| 欧美高清性hdvideosex| 成人aa视频在线观看| 日韩av一二三| 亚洲免费观看高清在线观看| 精品久久久影院| 欧美在线三级电影| 成人18视频在线播放| 免费看日韩a级影片| 亚洲国产精品自拍| 中文字幕一区av| 久久色.com| 日韩三级中文字幕| 欧美性大战久久|