演算法細節見**:fast algorithm for mining association rules
控制台版本c++**如下:
#include #include #include #include #include #include #include using namespace std;
//讀取檔案獲取整個資料庫儲存在database中,filename必須為char*型,要是用string會報錯,in()不認
bool obtaindatabase(vector> &database,char *filename)
} database.push_back(transaction);
s="";
} cout<>&database,vector> &largeitemset,unsigned int minsupport,map,int> &lm1)
else
} }
//從字典中選出支援度超過minsopport的item
for(dirit=dir.begin();dirit!=dir.end();dirit++) }
}//輸出大項集
void outputlargeitemset(vector> &largeitemset,unsigned int i)
cout<<"}";
j++;
if(j%4==0)
set::iterator it1=recordi.begin();
set::iterator it2=recordj.begin();
unsigned int size=recordi.size()-1;
for(int i=0;i&temp,vector> &largetemp)
tempminusoneit++;
}if(flag==true)
}} return false;
}//利用l[k-1],通過連線和剪枝兩個步驟,生成候選集集合candidate
void apriorigen(vector> &largetemp,vector> &candidate)
set::iterator canit;
for(canit=can.begin();canit!=can.end();canit++)
}if(canit==can.end())
}}int main(int argc,char *argv)
*/vector,int> > liss;
clock_t start=clock();
vector> database;//資料庫
obtaindatabase(database,filename);
vector> large1;
map,int> lm1;
createitemset(database,large1,minsupport,lm1);
liss.push_back(lm1);
int k=1;
vector> largetemp=large1;
while(!largetemp.empty())
{ outputlargeitemset(largetemp,k);
k++;
vector> candidate;
apriorigen(largetemp,candidate);
vector> largek;
map,int> lm;
subset(database,candidate,largek,minsupport,lm);
largetemp=largek;
if(largetemp.empty())
{ cout<<"l["<
資料探勘之關聯規則
在資料探勘的知識模式中,關聯規則模式是比較重要的一種。屬於描述性模式,發現關聯規則的演算法屬於無監督學習的方法。關聯規則通過量化的數字描述物品甲的出現對物品乙的出現有多大的影響。一般用4個引數來描述關聯規則的屬性 1.可信度 子集 可信度是指出現了物品集a的事務t中,物品集b也同時出現的概率有多大。...
資料探勘之關聯規則挖掘(Apriori演算法)
一 概述 本篇博文主要闡述資料探勘相關的關聯規則挖掘的演算法 apriori演算法 主要介紹關聯規則的基本概念 apriori演算法原理和apriori演算法例項,文章末尾處附加apriori演算法源程式。二 關聯規則挖掘的基本概念 關聯規則挖掘發現大量資料中項集之間有趣的關聯關係。如果兩項或者多項...
資料探勘之關聯規則挖掘 Apriori演算法
關聯規則,肯定很多人都聽說過 乙個男士買尿布時順帶買啤酒的事情 具體事物之間真的是否具有關聯,有多大的關聯,這就是本篇部落格需要分享學習的知識。在這裡x,y就是購買的部分商品,i表示所有的商品 其含義就是購買商品x與購買商品y之間的關聯關係 同時在這裡引入對規則定量的描述 支援度就是所買商品中中同時...