#include
using
namespace
std;
/*1.若x為頻繁專案集,則x的所有子集都是頻繁專案集
2.若x為非頻繁專案集,則x的所有超集均為非頻繁專案集
*/int min_sup;//最小支援度
vector
> item;//儲存最開始的事務及其項
map, int> k_item;//頻繁k項集
map, int> houxuan;//候選
void pri_k_item(map
, int> k_i);
//使用者輸入事務
void getitem()
item.push_back(everyitems);
}}//找出頻繁1項集
void find_frequent_1()else}}
//頻繁1項集
for(it = zan.begin(); it != zan.end(); it++)
}}/*頻繁項集**連線**得到候選項集合
返回1得到k+1候選項
返回0不能得到k+1候選項
*/bool apriori_gen(int k)}}
return houxuan.size() > 0;
}/*剪枝得到頻繁項集
返回1得到k+1候選項
返回0不能得到k+1候選項
*/bool has_infrequent_sub(int k)}}
houxuan = zank;
zank.clear();
//掃瞄原資料,統計候選集的支援度
for(i = houxuan.begin(); i != houxuan.end(); i++)
}if(sum >= min_sup)
}if(zank.size() > 0)
return0;}
//輸出頻繁k項集
void pri_k_item(map
, int> k_i)
cout
<
cout
<
cout
<
<
<樣例:
請輸入最小支援度閾值
2 請輸入事務的數目
4 請輸入第1個事務(輸入#表示事務輸入結束)
a c d #
請輸入第2個事務(輸入#表示事務輸入結束)
b c e #
請輸入第3個事務(輸入#表示事務輸入結束)
a b c e #
執行結果
C 實現apriori演算法
include stdafx.h include include include define t 2 最小支援度 define m 9 樣本數 define n 5 資料項數 using namespace std 候選頻繁項集 維數,頻度,具體資料,獲取頻度 class freq item vo...
Apriori演算法C 實現
最近剛上了資料探勘這門課,老師講了兩個演算法,即apriori演算法和fp growth演算法,然後布置了上機作業,挖掘乙個有8萬行的記錄的retail.dat,需要從中找出強規則,即同時滿足最小支援度和最小置信度的規則。在這裡給出乙個實現找出所有頻繁模式集的c 其中主要使用的儲存結構是二維陣列,有...
Apriori演算法的Python實現
apriori演算法是資料探勘中頻發模式挖掘的鼻祖,從60年代就開始流行,其演算法思想也十分簡單樸素,首先挖掘出長度為1的頻繁模式,然後k 2 將這些頻繁模式合併組成長度為k的頻繁模式,算出它們的頻繁次數,而且要保證其所有k 1長度的子集也是頻繁的,值得注意的是,為了避免重複,合併的時候,只合併那些...