相當於使用者的籃子,籃子裡面可能是1項集,也可能是4項集。
籃子裡所有的物品構成乙個集合。在關聯分析中,包含0個或者多個項的集合被稱為項集(itemset)。
滿足最小支援閾值的所有項集
【下面的這些不常用- -】
import pandas as pd
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
data=pd.read_csv(
"e:\\investment.csv"
)data.head
原始資料長這個樣子,我們要把它轉成onehot形式
)#去除重複資料
retail=pd.dataframe(columns=
('id'
,'prod'))
for userid in users:
pro_s=data[data[
'userid'
]==userid]
.proid.t #將userid一樣的proid放在乙個列表裡,構成項集
#print(list(pro_s))
)retail.index=
range
(retail.shape[0]
)#指定索引是列
retail_id=retail.drop(
'prod',1
)#drop函式預設刪除行,刪除列要加axis=1
(retail_id[:5
])retial_prod=retail.prod.
str.join(
',')
retail_prod=retail.prod.
str.get_dummies(
',')
#構造虛擬變數
到這裡,資料處理完畢,可以開始關聯分析了
先進行計算規則
#計算規則
#設定最小支援度來選擇頻繁項集
frequent_itemsets=apriori(retail_onehot.drop(
'id',1
),min_support=
0.3,use_colnames=
true
)#設定最小支援度為0.3求頻繁項集,顯示列標籤名
#引數解釋
#min_support -- the minimum support of relations (float).最小支援度,可用來篩選項集
#min_confidence -- the minimum confidence of relations (float).最小可信度,可用來篩選項集
#min_lift -- the minimum lift of relations (float).最小提公升度
#max_length -- the maximum length of the relation (integer).序列最小長度
#'lift』大於1.2,求關聯規則
然後定義乙個規則來篩選一下
我這邊篩選的規則是滿足前提專案大於等於2個,結果專案為1個,置信度大於75%,提公升度大於1.2的結果。
#規則篩選
上面這三個結果就是按規則得到的關聯分析的結果啦
關聯分析演算法Apriori介紹
apriori 演算法其名字是因為演算法基於先驗知識 prior knowledge 根據前一次找到的頻繁項來生成本次的頻繁項。apriori 是關聯分析中核心的演算法。apriori 演算法的特點 只能處理分類變數,無法處理數值型變數 資料儲存可以是交易資料格式 事務表 或者是事實表方式 資料 演...
逆序數介紹以及演算法實現
對於逆序數通俗的理解 對於序列中每個位置的的數,其之前比他的值大的個數之和,或者在其之後比他的值小的個數之和,如此稱為逆序數。實現手段 線段樹 樹狀陣列 離散化 歸併排序 列舉 int ans 0 逆序數個數 int num maxn for int i 1 i n i include using ...
關聯分析(二)Apriori演算法理解與介紹
1.基於先驗原理的剪枝 先驗原理 如果乙個項集是頻繁的,則它的所有子集一定也是頻繁的。相反,如果乙個項集是非頻繁的,則他的所有超集也是非頻繁的。先驗原理的理解也很簡單,將支援度的公式列出來,我們可以發現,項集的支援度不會小於它的超集。基於這個原理,如果項集是非頻繁的,則我們不用去判斷,因為肯定是非頻...