3.資料關聯 Association 關聯範例一:關聯規則基本概念 關聯範例二:購物產品關聯分析 關聯範例三:鐵達尼號關聯分析

Slides:



Advertisements
Similar presentations
變數與函數 大綱 : 對應關係 函數 函數值 顧震宇 台灣數位學習科技股份有限公司. 對應關係 蛋餅飯糰土司漢堡咖啡奶茶 25 元 30 元 25 元 35 元 25 元 20 元 顧震宇 老師 台灣數位學習科技股份有限公司 變數與函數 下表是早餐店價格表的一部分: 蛋餅 飯糰 土司 漢堡 咖啡 奶茶.
Advertisements

計算機程式語言實習課.
Some Knowledge of Machine Learning(1)
LearnMode學習吧 行動學習 網站註冊程序 長榮中學 電腦中心 製.
频繁模式与关联规则挖掘 林琛 博士、副教授.
CH3 關聯規則 授課老師:簡禎富 講座教授 簡禎富、許嘉裕©2014 著作權所有.
关联.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
Views ,Stored Procedures, User-defined Function, Triggers
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
Project 2 JMVC code tracing
Chapter 5 迴圈.
Supplement Data Mining 工具介紹 楊立偉教授 台灣大學工管系 2014 Fall 1.
Supplement Data Mining 工具介紹 楊立偉教授 台灣大學工管系 2015 Fall 1.
LINQ 建國科技大學 資管系 饒瑞佶.
Q101 在701 SDX Linux上的標準安裝與使用程序v2
JDK 安裝教學 (for Win7) Soochow University
第八章 利用SELECT查詢資料.
電子商務基本概念 電子商務的定義 1-1 電子商務的特性 1-2 電子商務的演進 1-3.
4B冊 認識公倍數和最小公倍數 公倍數和最小公倍數的關係.
第8章 關聯分析 王海.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
CHT IPv6測試 D-Link Taiwan 友訊科技台灣分公司 TTSS 電信技術支援課 Name:
安裝JDK 安裝Eclipse Eclipse 中文化
Text To Speech (TTS, 文字轉語音) 靜宜大學資管系 楊子青
Quiz6 繳交期限: 12/14(四) 23:59前.
SPSS Modeler資料探勘實務基礎 資料探勘與Modeler使用介紹 資料分類-C5.0和CR&T 模型
App Inventor2呼叫PHP存取MySQL
視覺式體操動作辨識系統 Vision-based Gymnastics Motion Recognition System 學生:顏羽君
Java 程式設計 講師:FrankLin.
Web Component: Accessing the Web and CSV 靜宜大學資管系 楊子青
Topic Introduction—RMI
VS.NET 2003 IDE.
第二次電腦實習課 說明者:吳東陽 2003/10/07.
本院使用建教合作之輔仁大學 圖書館資料庫 設定方式說明
物流作業簡介.
CH1 我的第一個App與變數宣告.
VS.NET 2003 IDE.
GridView.
GridView操作 (II).
如何使用Gene Ontology 網址:
網路版盤點程式 操作說明 (使用adirace盤點前兩天庫存)
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
Text To Speech (TTS, 文字轉語音) 靜宜大學資管系 楊子青
MicroSim pspice.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
MiRanda Java Interface v1.0的使用方法
函數應用(二)與自定函數.
亂數 隨機產生亂數 Random類別支援的方法: Next多載方法 Next :傳回亂數。
編輯網頁可用那些應用程式? 記事本 Word FrontPage Dreamweaver.
師大 KSP 操作手冊.
第九章 布林代數與邏輯設計.
1757: Secret Chamber at Mount Rushmore
Quiz1 繳交期限: 9/28(四).
非負矩陣分解法介紹 報告者:李建德.
Cloud Training Material- 事件 Sherman Wang
作業系統實習課(二) -Scheduler-Related System Calls-
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
SQLite資料庫 靜宜大學資管系 楊子青.
Chapter 4 Multi-Threads (多執行緒).
Joining Multiple Tables
JUDGE GIRL 使用介紹 & 常見問題 TAs :
第三章 比與比例式 3-1 比例式 3-2 連比例 3-3 正比與反比.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
CHT IPv6測試 D-Link Taiwan 友訊科技台灣分公司 TTSS 電信技術支援課 Name:
InputStreamReader Console Scanner
Presentation transcript:

3.資料關聯 Association 關聯範例一:關聯規則基本概念 關聯範例二:購物產品關聯分析 關聯範例三:鐵達尼號關聯分析 關聯範例四:維修案例的序列分析 4 2 3 1 關聯範例三:鐵達尼號關聯分析

函數【apriori】檔案 beer.xls 5 records 6 fields 資料關聯範例一 函數【apriori】檔案 beer.xls 5 records 6 fields

關聯法則基本概念 在資料探勘的領域之中,關聯性法則(association rule)是最常被使用的方法。關聯性法則在於找出資料庫中的資料間彼此的相關聯性。 在關聯性法則之使用中,Apriori是最為著名且廣泛運用的演算法。最早是由Agrawal & Srikant 等兩位學者於1994年首先提出。 if前項antecedent(s) then後項consequent(s)

關聯規則分析 Transaction 項目列表, 每一列均為單一購物籃中的項目名稱列表,以逗點或空格相隔,項目名稱必須是英文 TID Items 1 Bread, Milk 2 Bread, Diaper, Beer, Eggs 3 Milk, Diaper, Beer, Coke 4 Bread, Milk, Diaper, Beer 5 Bread, Milk, Diaper, Coke

關聯規則分析 規則X Y X和Y為物件的集合 X稱為前項antecedents (lhs:left hand sides) Y稱為後項consequents (rhs:right hand sides) 支援度support: X和Y同時出現的次數/所有交易數 信賴度confidence: X和Y同時出現的次數/X出現的次數 提昇lift: support/ ((support(X) * (support(Y)) Given X, the probability of buying Y increases 規則範例: {Milk, Diaper}  {Beer} (s=0.4, c=0.67) {Milk, Beer}  {Diaper} (s=0.4, c=1.0) {Diaper, Beer}  {Milk} (s=0.4, c=0.67) {Beer}  {Milk, Diaper} (s=0.4, c=0.67)

資料是0或1二元檔 若您的購物籃資料是 0,1 二元檔,則直接當作輸入檔,需轉換成矩陣beer=as.matrix(beer)

資料是0或1二元檔的程式碼 #Apriori beer.xls library(xlsx) library(arules) beer=read.xlsx("d:\\stella\\R\\beer.xls",header=T,sheetIndex=1) beer=as.matrix(beer) rule=apriori(beer,parameter=list(supp=0.2,conf=0.8,maxlen=5)) #default 是0.1, 0.8, 10 inspect(rule) summary(rule) inspect(head(sort(rule,by="support"),10))

apriori的執行結果

原始的關聯規則

排序後的關聯規則

資料是各項物品名稱 若購物籃資料是各項物品名稱,則以read.transactions指令輸入後,再轉換成交易檔beer2=as(beer,"transactions")

資料是物品名稱的程式碼 library(arules) beer=read.transactions("d:\\stella\\R\\beer.txt",sep=",") beer2=as(beer,"transactions") Inspect(beer2) rule=apriori(beer2,parameter=list(supp=0.2,conf=0.8,maxlen=5)) inspect(head(sort(rule,by="support"),10))

apriori的執行結果

可依support, confidence或lift排序

函數【apriori】檔案 shopping.txt 786 records 15 fields 資料關聯範例二 函數【apriori】檔案 shopping.txt 786 records 15 fields

購物產品關聯分析 shopping.txt的欄位計有15項,產品分為10個類別分別是Ready made、Frozen Food、Alcohol 、 Fresh Vegetables、 Milk、 Bakery goods 、 Fresh meat、 Toiletries、 Snacks、Tinned Goods,有買資料值為1,沒買則資料值為0 沒用到的基本資料包括GENDER 、 AGE、 MARITAL、 CHILDREN、WORKING ( Currently employed?)

關聯模型注意事項 建模時可以設定支援度、信賴度等建模的細節,當門檻值過高而無法生成模型時,使用者須適度調整門檻值 執行後產生關聯規則的模型,可以查看詳細的規則內容。排序的規則有支援度(Support)、信賴度(Confidence) 、提昇(Lift) 等方式, 使用者可依需求選擇 也可以產生自訂目標的關聯規則

Modeler 4個關聯規則的準則 前項支援度 R的support

名詞解釋 (第一個關聯規則為例) 全部總共786筆資料 買Milk和Frozen Food的人是85筆 買Bakery goods的人是337筆 買Milk和Frozen Food而且買Bakery goods的人是71筆 買Milk和Frozen Food但不買Bakery goods的人是14筆 後項(R的rhs) – Bakery goods 前項(R的lhs) – Milk和Frozen Food 實例– 85,即符合前項的筆數

名詞解釋 支援度–10.814 = 85/786,是指購買前項產品的客戶佔全部客戶的比例(R的support是指以下的規則支援度) 信賴度 - 83.529 = 71/85,是指購買前項產品的客戶中也買後項產品的比例 規則支援%(即支援度x信賴度)–9.033 = 10.814% x 83.529% 或= 71 / 786,指購買前項產品也買後項產品的客戶佔全部客戶的比例 提昇–1.948 = (71/85)/ (337/786)或 = 83.529% / 42.875%,指購買後項產品佔購買前項產品的比例除以購買後項產品佔全部客戶的比例

apriori的程式碼 library(arules) shopping=read.csv("d:\\stella\\R\\shopping.txt", header=T) head(shopping) shopping=shopping[,1:10] shopping=na.exclude(shopping) shopping=as.matrix(shopping) rule=apriori(shopping,parameter=list(supp=0.09, conf=0.8,maxlen=5)) inspect(head(sort(rule,by="support"),10)) inspect(head(sort(rule,by="confidence"),10))

apriori的程式碼

產生4個關聯規則

目標為Alcohol的關聯規則

函數【apriori】檔案Titanic 2201 records 4 fields 資料關聯範例三 函數【apriori】檔案Titanic 2201 records 4 fields

關聯規則探勘步驟 直接用資料框架變數或將購物籃資料轉成交易檔格式,或將0或1二元檔轉成矩陣 以預設值進行初步探勘(supp=0.1,conf=0.8,maxlen=10) 調整參數設定為我們想要看的面向(Survived與否) 修剪多餘的規則 關聯規則視覺化

轉檔和初步探勘的程式碼 #apriori Titanic df=as.data.frame(Titanic) #32x5 Titan=NULL for (i in 1:4) Titan=cbind(Titan,rep(as.character(df[,i]),df$Freq)) Titan=as.data.frame(Titan) #2201x4 names(Titan)=names(df)[1:4] summary(Titan) library(arules) rule=apriori(Titan) inspect(rule)

將內建資料轉成交易檔格式

以預設值進行初步探勘

產生27個規則

調整參數與移除重複規則 #refine and pruning rules rule=apriori(Titan,parameter=list(minlen=2,supp=0.005,conf=0.8),appearance=list(rhs=c("Survived=No","Survived=Yes"),default="lhs")) rulesort=sort(rule,by="lift") inspect(rulesort) subset.matrix=is.subset(rulesort,rulesort) redundant=colSums(subset.matrix) > 1 which(redundant) rulepruned=rulesort[!redundant] inspect(rulepruned)

限定後項參數為Survived

移除重複規則

再調整前項後項參數的程式碼 rule2=apriori(Titan, control = list(verbose=F),parameter = list(minlen=3, supp=0.002, conf=0.2),appearance = list(default="none", rhs=c("Survived=Yes"), lhs=c("Class=1st", "Class=2nd", "Class=3rd","Age=Child", "Age=Adult"))) rule2.sorted= sort(rule2, by="confidence") inspect(rule2.sorted)

再審視兒童的存活率和艙等

關聯規則視覺化 library(arulesViz) #Heat map (熱圖) plot(rulepruned) #Balloon plot (氣球圖) plot(rulepruned,method="grouped") # Graph (網路圖) plot(rulepruned,method="graph",control =list(type="items")) # Parallel coordinates plot (平行座標圖) plot(rulepruned, method = "paracoord", control = list(reorder = TRUE))

Heat map (熱圖)

Balloon plot (氣球圖)

Graph (網路圖)

平行座標圖

函數【cspade】檔案 TelRepair.txt 750 cases 5915 records 3 fields 資料關聯範例四 函數【cspade】檔案 TelRepair.txt 750 cases 5915 records 3 fields

序列分析 序列(Sequence)分析的重點在於資料中必須存在先後順序的關係(例如時間) 序列分析類似於關聯規則,但還得考量時間的先後順序,也就是說著重時間的順序作資料關聯的分析, 序列分析可以提供我們針對客戶客製化行銷的預測,掌握良機,當某位客戶買了某項產品後,就已經預告將來的某個時間點會再度買我們的附加產品或服務

維修案例檔案說明 檔案TelRepair.txt包括750個維修案例,共有 5915紀錄,3個欄位 第1個欄位是ID,對應一份診斷修理報告,第2個欄位紀錄著每個ID修理診斷的順序,第3個欄位紀錄每次修理診斷的動作 每份診斷修理報告開始以代碼90表示(但只有727個案例是),成功完成修理以代碼210表示,若問題無法成功解決,則以代碼299表示 練習失敗案例檔案FailTelRepair.txt

檔案格式(不需欄名)

Modeler執行結果(成功率92%=690/750)

重複修理( 22.133% = 166/750個id)

序列分析的程式碼 # cspade TelRepair library("arulesSequences") repair=read_baskets("d:\\stella\\R\\TelRepair.txt",sep="\t",info=c("sequenceID","eventID")) arulesSeq=cspade(repair,parameter = list(supp=0.2),control = list(verbose=T),tmpdir=tempdir()) summary(arulesSeq) as(arulesSeq,"data.frame")

R執行結果(成功率92%=690/750)

重複修理( 22.133% = 166/750個id)

練習:失敗案例 FailTelRepair.txt