資源簡介
C++實現Apriori算法,頻繁模式數據挖掘,最大頻繁項集,閉頻繁項集,里面包括測試數據以及apriori.cpp、 apriori.h 、apriori_test.cpp三個文件。具體的相見博客:http://blog.csdn.net/FreeApe/article/details/49562315

代碼片段和文件信息
#include?“apriori.h“
void?Apriori::printMapSet(map?int>?&mapSet)
{
????map?int?>::iterator?it?=?mapSet.begin();
????while(it?!=?mapSet.end()){
????????set::iterator?itSet?=?it->first.begin();
????????cout?<“#“?<second?<“\t“;
????????cout?<“[“?;
????????while(itSet?!=?it->first.end()){
????????????cout?<*itSet?<““?;
????????????++itSet;
????????}
????????cout?<“]“?<????????++it;
????}
}
void?Apriori::printsetSet(set?>?&setSet)
{
????set?>::iterator?c2It?=?setSet.begin();
????while(c2It?!=?setSet.end()){
???????set::iterator?ckSetIt?=?(*c2It).begin();
???????cout?<“[“;
????????while(ckSetIt?!=?(*c2It).end()){
????????????cout?<*ckSetIt?<““?;
????????????++ckSetIt;
????????}
????????cout?<“]“<????????++c2It;????????????
????}
}
void?Apriori::printSet(set?&setS)
{
????set::iterator?setIt?=?setS.begin();
????cout?<“[“;
????while(setIt?!=?setS.end()){
????????cout?<<*setIt?<““?;
????????++setIt;
????}
????cout?<“]“?<}
//---------------------------------------------------------
//將文本數據存入到Map中,產生事務數據庫D,即textDatabase
//---------------------------------------------------------
int?Apriori::buildData()
{
/*打開文本文件*/
ifstream?inFile;
????inFile.open(dataFileName.c_str());
if(!inFile){
cerr?<“open?“?< return?EXIT_FAILURE;
}
/*讀取文本行*/
string?textline;
vector?lines_of_text;
while(getline(inFiletextline))
lines_of_text.push_back(textline);
/*產生事務數據庫*/
????int?line_num?;
for(line_num?=?0;?line_num?!=?lines_of_text.size();?++line_num){
istringstream?line(lines_of_text[line_num]);
string?word;
while(line?>>?word){????????????
textDatabase[line_num].insert(word);
}
}
textDatabaseCount?=?textDatabase.size();
cout?<“textDatabaseCount:?“?<seCount?<“?“?< return?EXIT_SUCCESS;
}
//得到事物項集D中每項的重復度,即每項在事物項集中出現的頻率
map?int>?Apriori::getTextDatabaseFre()
{
????map?int>?textDatabaseFre;
????map?>::iterator?textDataIt?=?textDatabase.begin();??
????while(textDataIt?!=?textDatabase.end()){
????????pair
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????77??2015-10-16?22:14??test.txt
?????文件?????????51??2015-11-01?20:55??test1.txt
?????文件??????11496??2015-11-01?20:33??apriori.cpp
?????文件???????1625??2015-11-01?20:32??apriori.h
?????文件???????6292??2015-11-01?21:26??apriori_test.cpp
-----------?---------??----------?-----??----
????????????????19541????????????????????5
- 上一篇:線性表創建,插入,刪除及合并源代碼
- 下一篇:hiredis的c++封裝, 線程安全
評論
共有 條評論