原創|行業資訊|編輯:陳俊吉|2016-08-04 09:44:48.000|閱讀 264 次
概述:在 上一篇文章中,您學習了如何在 Cognos中可視化簡單的數據挖掘結果。在本文中,您將學習一些高級技巧,例如使用 Cognos 從數據挖掘模型中下鉆和提取結構化信息。使用本文的業務場景和實例,理解偏差檢測所需的挖掘任務,即識別異常數據記錄。學習如何使用 IBM InfoSphere? Warehouse 數據挖掘發現這些記錄,并創建交互式報告。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在當前的很多 IT 應用中,及時發現可疑行為是一項很重要的任務。以信用卡事務為例。如果一個用戶表現出異常的購買行為(例如,平常都是在廉價商店買東西,現在突然購買昂貴的珠寶),那么最好檢查相應的事務,以跟蹤欺詐行為。除了檢測欺詐行為或惡意操縱外,偏差還可以用于其他一些場景。人力資源部門使用偏差檢測來發現異常的雇員或求職者。如果僅憑固定的規則識別潛在的情況,則這些人可能被忽視。
偏離全局數據分布的數據記錄稱為離群值(outlier)。離群值處理通常不是一項完全自動化的任務。相反,數據挖掘用于指出有待分析師或專家進一步分析的數據記錄。然后,析師或專家以此為依據決定是否采取行動。因此,一個先進的用戶界面和交互模型是成功處理離群值的前提條件。 很適合完成這項任務。實際上,可以使用一個類似于本 的 將 InfoSphere Warehouse 數據挖掘與 IBM Cognos 報告集成,第 1 部分:InfoSphere Warehouse 與 Cognos 集成架構概述 中創建的報告來可視化離群值。但是,要想充分利用 Cognos 顯示離群值的潛力,需要采用一些更高級的技巧。首先,看看如何使用 “穿透鉆取(drill-through)” 來創建交互式 Cognos 報告,以及如何鏈接報告。這將有助于總結信息,同時允許快速訪問相關的異常數據記錄。其次,學習如何從數據挖掘模型中提取出附加信息,這些附加信息可幫助專家理解離群值的性質。
本文中的實例是一個應用程序,該應用程序幫助一家銀行的雇員識別行為異常的客戶。這個應用程序可用于避免欺詐,或檢測出需要特別關注的客戶。下一小節將對偏差檢測作一個概述,并展示如何使用 InfoSphere Warehouse 發現大型數據集中的離群值。隨后的小節則闡述從挖掘模型中穿透鉆取和提取信息的基礎知識,并展示如何使用這兩種技巧使偏差檢測結果更容易理解和利用。
偏差檢測是一項在大型數據集中發現異常數據記錄的任務。這些記錄稱為離群值。“異常” 的確切定義還有待討論,但它與應用偏差檢測的領域有關。通常而言,偏差檢測的目標是發現不符合大多數數據記錄整體統計分布的數據記錄。根據應用領域不同,偏差可能是:
相應地,偏差檢測可用于不同的任務。如果您猜測數據集包含不正確的數據,那么可以應用偏差檢測進行數據清洗,從而發現數據庫中不正確的條目。在第二種情況下,數據是正確的,但是反映出某個過程表現出異常的行為。這可用于檢測欺詐,這是偏差檢測的第二個主要應用。前面已指出,異常的行為不一定是欺詐。例如,也可能表明新興的模式,比如 “過度使用在線拍賣的老年客戶”。盡早檢測出新興模式有助于公司盡早提供新的產品或服務,從而獲得競爭優勢。在財務部門就可以發現類似的應用。可以使用偏差檢測來發現有前景的投資,這種投資不符合通常的模式,因而到目前為止還沒有人意識到。在所有這些案例中,必須由分析師來檢查離群值,看看是數據是否正確,是否需要采取措施避免欺詐,或者利用還沒有人意識到的機遇。接下來將了解 InfoSphere Warehouse 如何檢測離群值,以及如何對數據應用偏差檢測。本文剩下的內容討論如何在 中交互式地可視化離群值。
近年來產生了很多不同的用于檢測偏差的方法。InfoSphere Warehouse 使用一種特別強大的方法來進行偏差檢測,這種方法基于數據集群。集群是一種數據挖掘技術,這種技術根據數據記錄的屬性將相近的數據記錄指定到集群中。我們來看看 圖 1。圖中每個點表示一個客戶。在這個簡單的案例中,客戶只以年齡和平均余額來描述。InfoSphere Warehouse 使用一個統計集群算法將在這兩個維上相近的客戶分到集群中。可以看到,有些集群比其他集群更大,更集中(集群 1 相對于集群 3)。InfoSphere Warehouse 結合一些屬性為每個集群賦予一個 “偏差” 度。這個度越高,則該集群中的記錄越有可能是離群值。
離群值與非離群值之間并沒有明顯的區別。實際上,用戶必須指定一個閾值,以便界定離群值。偏差度高于這個閾值的所有集群被標記為離群值集群,它們的成員都是離群值。這個閾值可通過兩種方式來設置。首先,如果檢查離群值的專家有限,那么可以使用具有最高偏差度的集群的數據記錄。如果要尋找有投資前景的公司,那么可以先從具有最高偏差度的集群開始,然后在資源允許的情況下,逐漸轉向偏差度較低的集群。其次,閾值可以是固定的。一個例子就是警報場景,在此場景中,當有新的數據記錄分配到具有高于給定閾值的偏差度的集群時,則需要采取行動。InfoSphere Warehouse 同時支持這兩種方式,您只需為每個數據記錄賦予一個集群 id 和相應的偏差度。您可以過濾記錄,也可以對它們進行排序,從而獲得想要查看或必須檢查的離群值。接下來的小節將提供一個例子,以逐步演示如何用 InfoSphere Warehouse 發現離群值,以及如何為各個數據記錄賦予偏差度。
接下來的例子對關于銀行客戶的條目應用偏差檢測。圖 2 中顯示了相應表中的示例數據。表 BANK.BANKCUSTOMERS 是 InfoSphere Warehouse 的示例中附帶的。
為了檢測這個表中的離群值:
BANK.BANKCUSTOMERS
作為源數據庫表,并單擊 OK 確認。IDMMX.OUTLIERMODEL
。雙擊該操作符打開屬性,在向導的第二頁更改模型名稱。CUSTOMERS_OL
。單擊 Finish。一個 “Table Target” 操作符將被連接到流中。如果想要多次運行這個流,那么可以在 “Table Target” 操作符的屬性中勾選復選框 “Delete Previous Content”。這個流裝載客戶表,將它傳遞到偏差檢測算法,并將結果寫到一個新表中(如 圖 3 所示)。在 圖 4 中可以看到具體的結果。
可以看到,這里有兩個附加列,即 DEV_DEGREE 和 CLUSTER_ID。前一個列表明記錄傾向于離群值的程度。cluster id 是記錄所屬的 “離群值” 集群的 id。可以通過分析 find deviation 操作符內部創建的集群模型,提取關于這些集群的更多信息。(本文還將對此進行詳細討論)。
在本節中,學習如何創建允許交互式查看離群值的 報告。開始時可以使用一個類似于本系列第一篇文章中所用的報告。但是,這次不是一個病人列表(其中有一個關于哪些病人應該進行體檢的指示器),而是一個客戶列表,其中有一個關于應該檢查哪些客戶的指示器,看是否存在欺詐或潛在機會。這種方法適用于有較少數量客戶的列表,但不適用于有數千個條目的列表。而且,分析師可能還想看是什么使得一個特定的客戶成為一個 “離群值”。需要更多的信息才能完成這個任務。因此,讓我們從兩個方面來擴展這個簡單的方法:
接下來的小節首先展示如何用附加信息擴展離群值。然后,您將創建一個交互式報告,該報告將客戶按職業分組,并且允許使用 Cognos 的 “穿透鉆取” 特性交互式地選擇一個特定類別中的離群值。
表 CUSTOMER_OL 包含關于離群值的相關信息。如前所述,每個記錄被指定到一個集群。“Find Deviations” 操作符在后臺創建一個集群模型,其中存儲關于這些集群的詳細信息。該信息以 PMML(Predictive Model Markup Language)格式存儲在數據庫中。它包含關于以下方面的信息:
可以使用 InfoSphere Warehouse 附帶的存儲過程將該信息提取到結果集中,以便 Cognos 進一步處理。這樣的結果集可以看作是 “視圖”,它們不是顯式地在數據庫中創建的,而是由存儲過程動態地創建的。
如果要提取關于集群的文本信息,可使用以下命令:
SELECT ID, DESCRIPTION FROM TABLE(IDMMX.DM_GETCLUSTERS((SELECT MODEL FROM IDMMX.CLUSTERMODELS WHERE MODELNAME='IDMMX.OUTLIERMODEL'))) AS CT
這樣可以得到一個包含以下列的表:
可以使用這些結果集作為視圖或表。惟一要注意的是,DB2 中沒有包括這些存儲過程,它們是由 InfoSphere Warehouse 提供的。我們稍后對此進行討論。圖 5 總結了從 InfoSphere 提取信息到 Cognos 的兩種方法:使用簡單的數據庫視圖/表,或者使用存儲過程從挖掘模型中提取信息。這些存儲過程不僅可以用于集群模型,還可以用于其他挖掘模型。要獲得所有可用的模型提取函數的列表,請參閱 InfoSphere Warehouse 文檔(見 參考資料)。接下來,我們將展示如何使用 Cognos framework manager 合并這兩種信息。
對于這個報告,Cognos 項目中需要兩個查詢主題,然后通過連接它們獲得每個離群值的文本描述:
首先,需要創建一個 Cognos Framework Manager 項目,該項目連接到 InfoSphere Warehouse 的示例數據庫 DWESAMP,并且有前面創建的 BANK.CUSTOMERS_OL 表。本系列的 提供這個步驟的詳細說明。一個很好的做法是在 PresentationView 名稱空間中創建一個查詢主題,這個查詢主題包含必要的數據庫中的信息,以便擁有從 SQL 語句創建的查詢主題上的抽象層。這也使得您可以將列名改成更具描述性的文本,還可以添加更多的列。您需要一個離群值標記項,以表明一個記錄是否為離群值。可以根據偏差度查詢項 DEV_DEGREE 計算出這個標記項。
為了創建報告使用的離群值表查詢主題:
IF ([PresentationView].[OutlierTable].[Deviation factor] > 1000) then (1) else (0)
第二個查詢項是一個表,其中包含關于集群模型的集群的信息,這個集群模型是在 find deviation 運行期間創建的。可以在 InfoSphere Warehouse Data Mining 中使用用戶定義函數 IDMMX.DM_GETCLUSTERS
提取集群模型的列表描述。該函數返回一個表,其中包含模型中的集群,以及關于這個集群中字段分布的簡短文本描述。在 IDMMX.CLUSTERMODELS 表中,集群模型被保存為 CLOBS,另外,該表中還包括一個 “MODELNAME” 列,用于選擇適當的模型。用戶定義函數需要打包到 SELECT
語句中,以供 Gognos 使用。由于 InfoSphere Warehouse Mining 表函數不是標準的 DB2 函數,所以在創建這個查詢主題之前,需要更改一些 Cognos 選項。
為了從 DB2 表函數創建集群描述查詢主題,您需要:
SELECT * FROM TABLE(IDMMX.DM_GETCLUSTERS((SELECT MODEL FROM IDMMX.CLUSTERMODELS WHERE MODELNAME='IDMMX.OUTLIERMODEL'))) AS CT
使用存儲過程作為查詢主題輸入有一個好處,那就是不需要在數據庫中創建不必要的表或視圖。更重要的是,存儲過程將在報告生成期間執行。這使得它可以在報告生成期間動態地執行挖掘計算。本系列后面的文章將更詳細地討論這個專題。
為了創建連接 OutlierTable 表和 OutlierClusters 查詢主題的報告,需要在離群值記錄中的集群 id 與集群表中的集群 id 之間建立一個關系。
為了在 OutlierTable 與 OutlierClusters 查詢主題之間建立一個關系,您需要:
您已經創建了 報告所需的查詢主題,現在可以將一個包含項目的 PresentationView 的 “OutliersPackage” 部署到 Cognos Content Store。可以像本系列 創建和部署這個包。
“穿透鉆取” 的原始概念是指從聚合值導航到單獨的記錄。這在 OLAP 應用中是一項常見的任務。在 Cognos 中,這個概念被延伸為將報告 “鏈接” 到一起。因此,穿透鉆取的定義類似于 HTML 中的超級鏈接。鏈接報告本身并不是很強大的特性。參數的使用使穿透鉆取成為真正強大工具。Cognos 中的每個報告可能包含一些參數,這些參數可用于創建可參數化的查詢。如果還沒有設置這些參數,將提示用戶設置它們。在穿透鉆取定義中,這些參數可被定義為超級鏈接的一部分(就像在 HTTP GET
請求中一樣)。這些參數的值可以通過鏈接的上下文獲得。接下來的小節使用兩個被鏈接的報告說明這一概念。
在本小節中,創建一個項目,其中包含兩個基于部署的 OutliersPackage 的報告頁面:
將鏈接這兩個報告,以便從主概述頁面穿透鉆取到偏差記錄。
由于概述頁面包含詳細頁面的鏈接,所以先創建它。離群值詳細界面包含被標記為離群值且屬于主報告頁面選定的職業的客戶記錄。為了創建這種交互,需要添加一個表示要報告的職業的參數,并在一個記錄過濾器中使用它。另外還需要添加一個過濾條件,以便只返回 Outlier Flag 查詢項為 “1” 的記錄(偏差度超過閾值的所有記錄)。
要創建 “Outlier Details” 報告頁面,遵循以下步驟:
([PresentationView].[OutlierTable].[Outlier flag] = 1) AND ([PresentationView].[OutlierTable].[Profession] = ?Profession?)
OutlierDetails
。
概述頁面包含一個職業列表,顯示每種職業的客戶記錄數量和離群值數量。記錄數量將使用 Cognos 聚合函數計算。
為了創建 OutlierOverview 頁面,您需要:
OutlierOverview
。這個簡單的項目由兩個報告組成。通過使用 “穿透鉆取” 定義(其中包含一個由鏈接的上下文定義的參數)避免需要為每種職業單獨定義一個鏈接。本系列的后續文章將展示如何使用穿透鉆取定義完成一些更復雜事情,比如動態調用數據挖掘。
在本文中,您學習了偏差檢測,以及如何使用 InfoSphere Warehouse 執行偏差檢測。偏差檢測是高度交互性的任務,通常需要手動檢查離群值,以查明是否存在欺詐傾向、數據錯誤或者潛在的機遇。Cognos 非常適合分析交互式離群值。除了本 的 將 InfoSphere Warehouse 數據挖掘與 IBM Cognos 報告集成,第 1 部分:InfoSphere Warehouse 與 Cognos 集成架構概述 中使用的簡單技巧之外,您還學習了另外兩個技巧。首先,可以使用存儲過程從還沒有包含在記錄表中的挖掘模型提取附加信息。其次,可以使用 “穿透鉆取” 特性鏈接 Cognos 報告,以支持交互式報告。在本系列的后續文章中,將學習如何通過從 Cognos 中動態地調用數據挖掘,以完成更加復雜的任務。
詳情請咨詢!
客服熱線:023-66090381
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn