使用關聯分析,分析乙份調查問卷,對其中的十幾個單選題盡進行關聯分析,發現其中的規則
## 載入包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy as sp
## 影象在jupyter notebook中顯示
%matplotlib inline
## 顯示的格式(mac中的高畫質格式),還可以設定為"bmp"等格式
%config inlinebackend.figure_format =
"retina"
## 輸出圖顯示中文
from matplotlib.font_manager import fontproperties
fonts = fontproperties(fname =
"d:\desktop\python在機器學習中的應用\方正粗黑宋簡體.ttf"
,size=14)
## 引入3d座標系
from mpl_toolkits.mplot3d import axes3d
## cm模組提供大量的colormap函式
from matplotlib import cm
import matplotlib as mpl
## 挖掘頻繁項集和關聯規則
from mlxtend.frequent_patterns import apriori,association_rules
from mlxtend.preprocessing import transactionencoder
## 讀取資料
datadf = pd.read_excel(
"d:\desktop\python在機器學習中的應用\調查問卷2.xls"
## 檢視所有的選項中,每個選項的出現次數
## 計算出現的頻次
datafre = dataflatten.groupby(by=
["value"])
["value"
].count(
)## 整理未資料表
datafre = pd.dataframe(
).sort_values(
"freq"
,ascending=0)
## 繪製直方圖
datafre.plot(kind =
"bar"
,figsize =(12
,6),legend=
none
)plt.title(
"選項出現的頻次"
,fontproperties = fonts)
plt.ylabel(
"頻次"
## 對資料集進行編碼
datanew = np.array(datadf.iloc[:,
1::]
)oht = transactionencoder(
)# 相應類別若含有例項則為true,否則為false
oht_ary = oht.fit(datanew)
.transform(datanew)
## 將編碼後的資料集做成資料表,每列為各個選項
## 發現頻繁項集,最小支援度為0.3
df_fre = apriori(df, min_support=
0.3,use_colnames=
true
)## 為找到的頻繁專案新增專案長度
df_fre[
"length"
]= df_fre[
"itemsets"].
(lambda x:
len(x)
)print
(df_fre.shape)
## 可以發現我們找到了出現最小支援度=0.3的規則有138個
## 檢視頻繁項集中至少包含兩個元素的專案
df_fre_len2 = df_fre[df_fre[
"length"
]>1]
print
(df_fre_len2.shape)
df_fre_len2.sample(5)
## 至少包含兩個專案的頻繁項集有120個
## 找到關聯規則,通過提公升度閾值發現規則
rule1 = association_rules(df_fre, metric=
"lift"
, min_threshold=
1.1)
## 計算前提(antecedants)的長度
提公升度lift大於1.1的規則一共有12條,結果中海油指出度、置信度和提公升度的取值
## 找到置信度 >0.5,前提長度》1的規則
可以發現男性如果對真人騷的節目並沒有很高的興趣(一遍就夠或偶爾討論)通常都是理工男
關聯規則(一)
關聯規則的發現是指找出支援度大於等於最小支援度 minsup 並且置信度大於最小置信度 minconf 的所有 規則。對於關聯規則分析來說,主要分為兩個步驟 1.找出頻繁項集 找出滿足最小支援度閾值的所有項集。2.規則的產生 從第一步中找出置信度大於最小置信度閾值的規則。一 基本定義 1.支援度 s...
關聯規則挖掘
關聯規則反映事物之間的相互依存性和關聯性。如果事物之間存在一定的關聯,那麼我們就可以通過乙個事物去 另乙個事物。我們要挖掘大量資料中人們感興趣的,有價值的資訊,包括概念,規則,規律等。關聯規則 發現資料中的規律 超市中什麼產品會 起購買?組合推薦 顧客在買了 臺pc之後下 步會購買?搭配推薦 哪種d...
關聯規則Apriori
首先介紹的是啤酒和尿布的故事 上網自查 這是學習關聯規則必須知道的乙個故事。頻繁項集,關聯規則,支援度,置信度這四個概念貫穿apriori演算法的始終。如果乙個集合不是頻繁相集,那它的超集比然也不是頻繁相集。機器學習實戰例子 coding utf 8 from numpy import def lo...