Apriori演算法的C 實現

2021-07-30 21:48:18 字數 1415 閱讀 9208

#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長度的子集也是頻繁的,值得注意的是,為了避免重複,合併的時候,只合併那些...