Python中的關聯規則挖掘技巧
Python作為一種強大的程式語言,可以應用於各種領域,包括資料探勘和機器學習。在資料探勘領域,關聯規則探勘是一個常用的技術,可以用來發現資料集中不同項之間的關係以及這些關係對其他事物的影響。本文將簡要介紹Python中的關聯規則挖掘技巧。
- Apriori演算法
Apriori演算法是關聯規則探勘領域的經典演算法,可用於發現資料集中的頻繁項集和關聯規則。頻繁項集是指在資料集中出現頻率較高的項目的集合,而關聯規則是指兩個或多個項之間的關係,它們可能同時出現,或其中一個出現意味著另一個也很可能出現。
Python中可以使用mlxtend函式庫中的apriori函式來實作Apriori演算法。以下是一個簡單的範例程式碼:
from mlxtend.frequent_patterns import apriori # 构建数据集 data = [['牛奶', '面包', '啤酒'], ['奶酪', '面包', '黄油'], ['牛奶', '面包', '黄油', '鸡蛋'], ['奶酪', '黄油', '鸡蛋'], ['面包', '啤酒']] # 使用apriori算法挖掘频繁项集 frequent_itemsets = apriori(data, min_support=0.6) # 输出频繁项集 print(frequent_itemsets)
在上面的程式碼中,我們首先定義了一個資料集,其中包含了五個購物籃的內容。然後使用mlxtend庫中的apriori函數來挖掘頻繁項集。函數的第一個參數是資料集,第二個參數是最小支持度的閾值,這裡設定為0.6。
在輸出結果中,我們可以看到演算法找到了兩個頻繁項集:['麵包']和['牛奶', '麵包']。這意味著在這個資料集中,購買麵包的人數最多,而購買牛奶和麵包的人數其次。我們可以透過調整支持度閾值來發現不同大小的頻繁項集。
- 關聯規則的提取
在發現頻繁項目集之後,我們可以繼續提取關聯規則。關聯規則可以幫助我們了解某些項同時出現的機率或是其中一個項出現時另一個項也會出現的機率。
Python中可以使用mlxtend函式庫中的association_rules函數來擷取關聯規則。以下是一個簡單的範例程式碼:
from mlxtend.frequent_patterns import association_rules, apriori data = [['牛奶', '面包', '啤酒'], ['奶酪', '面包', '黄油'], ['牛奶', '面包', '黄油', '鸡蛋'], ['奶酪', '黄油', '鸡蛋'], ['面包', '啤酒']] # 使用apriori算法挖掘频繁项集 frequent_itemsets = apriori(data, min_support=0.6) # 使用association_rules函数提取关联规则 rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.8) # 输出关联规则 print(rules)
在上面的程式碼中,我們首先使用Apriori演算法找到資料集中的頻繁項集。然後使用association_rules函數來提取關聯規則。函數的第一個參數是頻繁項集,第二個參數是評估關聯規則的指標,這裡選擇置信度(confidence),第三個參數是最小置信度閾值,在這裡設定為0.8。
在輸出結果中,我們可以看到演算法找到了一個置信度為1.0的關聯規則:'麵包' => '啤酒'。這意味著購買麵包的人中,同時也有100%的人購買了啤酒。這種關聯規則在推薦系統中可以用來向使用者推薦商品。
- FP-Growth演算法
FP-Growth演算法是關聯規則探勘領域的另一種經典演算法,它比Apriori演算法更快,並且可以處理大規模的數據集。
Python中可以使用pyfpgrowth函式庫來實作FP-Growth演算法。以下是一個簡單的範例程式碼:
import pyfpgrowth # 构建数据集 data = [['牛奶', '面包', '啤酒'], ['奶酪', '面包', '黄油'], ['牛奶', '面包', '黄油', '鸡蛋'], ['奶酪', '黄油', '鸡蛋'], ['面包', '啤酒']] # 使用FP-Growth算法挖掘频繁项集 patterns = pyfpgrowth.find_frequent_patterns(data, 2) # 使用FP-Growth算法提取关联规则 rules = pyfpgrowth.generate_association_rules(patterns, 0.8) # 输出频繁项集和关联规则 print(patterns) print(rules)
在上面的程式碼中,我們首先定義了一個資料集,然後使用pyfpgrowth函式庫中的find_frequent_patterns函數來挖掘頻繁項集。函數的第一個參數是資料集,第二個參數是支持度閾值。在這裡,我們設定支持度閾值為2,意味著每個項集至少要在兩個購物籃中出現。函數將傳回一個字典,其中包含了所有的頻繁項集及其支持度計數。
然後使用pyfpgrowth函式庫中的generate_association_rules函數來提取關聯規則。函數的第一個參數是頻繁項集字典,第二個參數是置信度閾值。在這裡,我們設定置信度閾值為0.8。
在輸出結果中,我們可以看到演算法找到了兩個頻繁項集:('麵包',)和('麵包', '牛奶')。同時,演算法提取出了一個置信度為1.0的關聯規則:('麵包',) => ('啤酒',)。這意味著購買麵包的人中,100%的人會購買啤酒。除此之外,還可以看到其他信賴度高於0.8的關聯規則。
總結
關聯規則挖掘是一項非常有用的資料探勘技術,可以用來發現資料集中不同項之間的關係以及這些關係對其他事物的影響。 Python提供了多種方法來實現關聯規則挖掘,包括Apriori演算法和FP-Growth演算法。在具體實現中,還需要注意頻繁項集和關聯規則的閾值設置,以及如何針對實際問題進行運用。
以上是Python中的關聯規則挖掘技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
