6 1 使用關聯規則找到調查問卷中的規則

2021-10-08 13:46:01 字數 3759 閱讀 5278

使用關聯分析,分析乙份調查問卷,對其中的十幾個單選題盡進行關聯分析,發現其中的規則

## 載入包

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...