概念
支援度:某個商品組合出現的次數與總次數之間的比例
置信度:置信度是個條件概念,就是說在 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 由頻繁項集產生強關聯規則 這些規則必須滿足最小...