關聯規則挖掘

2021-10-16 06:19:54 字數 2812 閱讀 5270

概念

支援度:某個商品組合出現的次數與總次數之間的比例

置信度:置信度是個條件概念,就是說在 a 發生的情況下,b 發生的概率是多少

提公升度:衡量 a 出現的情況下,是否會對 b 出現的概率有所提公升

提公升度 (a→b)= 置信度 (a→b)/ 支援度 (b)

缺點

cba 演算法、gsp 演算法

apriori 雖然是十大演算法之一,不過在 sklearn 工具包中並沒有它,也沒有 fp-growth 演算法,可以通過 搜尋工具包,推薦下面的這個包

pip install efficient-apriori

itemsets, rules = apriori(data, min_support, min_confidence)

爬取豆瓣寧浩導演的電影以及主演:

# coding:utf-8

from lxml import etree

from selenium import webdriver

from efficient_apriori import apriori

import time

import csv

class apriori():

def __init__(self):

self.flags =

def download(self, request_url, csv_write):

# 模擬瀏覽器行為

driver = webdriver.chrome()

driver.get(request_url)

time.sleep(1)

html = driver.find_element_by_xpath("//*").get_attribute("outerhtml")

html = etree.html(html)

# 設定電影名稱、導演演員的xpath

movie_lists = html.xpath(

name_lists = html.xpath(

# 獲取返回的資料個數

num = len(movie_lists)

if num > 15: # 第一頁會有16條資料

movie_lists = movie_lists[1:]

name_lists = name_lists[1:]

for (movie, name_list) in zip(movie_lists, name_lists):

# 會存在資料為空的情況

if name_list.text is none:

continue

# 顯示電影和演員名稱

print(movie.text)

print(name_list.text)

names = name_list.text.replace(' ', '').split('/')

if names[0].strip() == director and movie.text not in self.flags:

names[0] = movie.text

csv_write.writerow(names)

if num >= 14: # 有可能一頁會有14個電影

return true

else:

return false

def start(self):

base_url = '' + director + '&cat=1002&start='

out = open(file_name, 'w', newline='', encoding='utf-8-sig')

csv_write = csv.writer(out, dialect='excel')

# 開始的id為0,每頁增加15

start = 0

while start < 10000:

request_url = base_url + str(start)

flag = self.download(request_url, csv_write)

if flag:

start = start + 15

else:

break

out.close()

print('finished')

def run_apriori(self):

lists = csv.reader(open(file_name, 'r', encoding='utf-8-sig'))

data =

for names in lists:

name_new =

for name in names:

itemsets, rules = apriori(data, min_support=0.4, min_confidence=1)

print(itemsets)

print(rules)

if __name__ == '__main__':

director = '寧浩'

file_name = r'd:\study\資料分析實戰\寧浩.csv'

run = apriori()

run.start()

run.run_apriori()

執行結果:

, 2: }

[ -> ]

關聯規則挖掘

關聯規則反映事物之間的相互依存性和關聯性。如果事物之間存在一定的關聯,那麼我們就可以通過乙個事物去 另乙個事物。我們要挖掘大量資料中人們感興趣的,有價值的資訊,包括概念,規則,規律等。關聯規則 發現資料中的規律 超市中什麼產品會 起購買?組合推薦 顧客在買了 臺pc之後下 步會購買?搭配推薦 哪種d...

關聯規則挖掘

直接用例項來解釋概念更清楚一些,加入資料庫中存在10條交易記錄 transaction 具體如下表所示 交易id tid 購買商品 items b bread c cream m milk t tea t01b c m t t02b c m t03c m t04m t t05b c m t06b t...

關聯規則挖掘

1.基本概念 關聯規則挖掘是指尋找給定資料集中項之間的有趣關聯或相關聯絡。可以幫助許多決策的制定,如分類設計 交叉購物和賤賣分析。典型的例子就是購物籃分析。2.關聯規則的步驟 1 找出所有的頻繁項集 這些項集出現的頻繁性至少和預定義的最小支援數一樣 2 由頻繁項集產生強關聯規則 這些規則必須滿足最小...