⑴ 什麼是數據挖掘
數據挖掘(Data Mining)是指通過大量數據集進行分類的自動化過程,以通過數據分析來識別趨勢和模式,建立關系來解決業務問題。換句話說,數據挖掘是從大量的、不完全的、有雜訊的、模糊的、隨機的數據中提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識的過程。
原則上講,數據挖掘可以應用於任何類型的信息存儲庫及瞬態數據(如數據流),如資料庫、數據倉庫、數據集市、事務資料庫、空間資料庫(如地圖等)、工程設計數據(如建築設計等)、多媒體數據(文本、圖像、視頻、音頻)、網路、數據流、時間序列資料庫等。也正因如此,數據挖掘存在以下特點:
(1)數據集大且不完整
數據挖掘所需要的數據集是很大的,只有數據集越大,得到的規律才能越貼近於正確的實際的規律,結果也才越准確。除此以外,數據往往都是不完整的。
(2)不準確性
數據挖掘存在不準確性,主要是由雜訊數據造成的。比如在商業中用戶可能會提供假數據;在工廠環境中,正常的數據往往會收到電磁或者是輻射干擾,而出現超出正常值的情況。這些不正常的絕對不可能出現的數據,就叫做雜訊,它們會導致數據挖掘存在不準確性。
(3)模糊的和隨機的
數據挖掘是模糊的和隨機的。這里的模糊可以和不準確性相關聯。由於數據不準確導致只能在大體上對數據進行一個整體的觀察,或者由於涉及到隱私信息無法獲知到具體的一些內容,這個時候如果想要做相關的分析操作,就只能在大體上做一些分析,無法精確進行判斷。
而數據的隨機性有兩個解釋,一個是獲取的數據隨機;我們無法得知用戶填寫的到底是什麼內容。第二個是分析結果隨機。數據交給機器進行判斷和學習,那麼一切的操作都屬於是灰箱操作。
⑵ 結合Python分析金融數據挖掘在量化投資領域中的應用
量化投資領域在金融數據中的應用包括:
股票市場的價格預測,利用歷史數據對股票未來的價格進行預測,幫助投資者決策。
資產配置,通過分析金融數據,幫助投資者合理配置資產,使投資回報最大化。
風險評估,利用金融數據進行風險評估,幫助投資者了解投資風險,並進行風險管理。
自動交易,利用金融數據進行交易策略的設計和執行,進行自動化交易。
定量研究,利用金融數據進行定量研究,對金融市場的行為進行深入的研究。
⑶ 什麼是數據挖掘
數據挖掘是指從大量的數據中通過演算法搜索隱藏於其中信息的過程。
數據挖掘通常與計算機科學有關,並通過統計、在線分析處理、情報檢索、機器學習、專家系統(依靠過去的經驗法則)和模式識別等諸多方法來實現上述目標。
數據挖掘是資料庫中知識發現(knowledge discovery in database, KDD)不可缺少的一部分,而KDD是將未加工的數據轉換為有用信息的整個過程,該過程包括一系列轉換步驟, 從數據的預處理到數據挖掘結果的後處理。
數據挖掘的起源
來自不同學科的研究者匯集到一起,開始著手開發可以處理不同數據 類型的更有效的、可伸縮的工具。這些工作都是建立在研究者先前使用的方法學和演算法之上,而在數據挖掘領域達到高潮。
特別地,數據挖掘利用了來自如下一些領域的思想:(1)來自統計學的抽樣、估計和假設檢驗;(2)人工智慧、模式識別和機器學習含皮的搜索演算法建模技術和學習理弊茄論。
數據挖掘也迅速地接納了來自其他領域的思想,這些領域包括最優化、進化計算、資訊理論、信號處理、可視化和信息檢索。
一些其他領域也起到重要的支撐作用。資料庫系統提供有效的存儲、索引和查詢處理支持。源於高性能(並行)計算的技術在處理海量數據集方面常常是重要的。分布式技術也能幫助處理海量數據,並且當數據不能集中到一起處理時更是至關重要。
KDD(Knowledge Discovery from Database)
數據清理
消除雜訊和不一致的數據;
數據集成
多種數據源可以組合在一起;
數據選擇
從資料庫中提取與分析任務相關的數據;
數據變換
通過匯總或聚集操作,把數據變換和統一成適合挖掘的形式;
數據挖掘
基本步驟,使用智能方法提取數據模式;
模式評估
根據某種興趣度,識別代表知識的真正有趣的模式;
知識表示
使用可視化和知識表示技術,向用戶提供挖掘的知識。
數據挖掘方法論
業務理解(business understanding)
從商業角度理解項目的目標和要求,接著把這些理解知識通過理論分析轉化為數據挖掘可操作的問題,制定實現目標的初步規劃;
數據理解(data understanding)
數據理解階段開始於原始數據的收集,然後是熟悉數據、甄別數據質量問題、探索對數據的初步理解、發覺令人感興趣的子集以形成對探索信息的假設;
數據准備(data preparation)
數據准備階段指從最初原始數據中未加工的數據構造數據挖掘所需信息的活動。數據准備任務可能被實施多次,而且沒有任何規定的順序。這些任務的主要目的是從源系統根據維度分析的要求,獲取所需要的信息,需要對數據進行轉換、清洗、構造、整合等數據預處理工作;
建模(modeling)
在此階段,主要是選擇和應用各種建模技術。同時對它們的參數進行調優,以達到最優值。通常對同一個數據挖掘問題類型,會有多種建模技術。一些技術對數據形式有特殊的要求,常常需要重新返回到數據准備階段;
模型評估(evaluation)
在模型部署發布前,需要從技術層面判斷模型效果和檢查建立模型的各個步驟,以及根據商業目標評估模型在實際商業場景中的實用性。此階段關鍵目的是判斷是否存在一些重要的商業問題仍未得到充分考慮;
模型部署(deployment)
模型完成後,由模型使用者(客戶)根據當時背景和目標完成情況,封裝滿足業務系統使用需求。
數據挖掘任務
通常,數據挖掘任務分為下面兩大類。
預測任務。這些任務的目標是根據其他屬性的值,預測特定屬性的值。被預測的屬性一 般稱目標變數(targetvariable)或因變數(dependentvariable), 而用來做預測的屬性稱說明變數(explanatoryvariable)或自變數(independentvariable)。
描述任務。其目標是導出概括數據中潛在聯系的模式(相談卜差關、趨勢、聚類、軌跡和異常)。本質上,描述性數據挖掘任務通常是探查性的,並且常常需要後處理技術驗證和解釋結果。
預測建模(predictivemodeling) 涉及以說明變數函數的方式為目標變數建立模型。
有兩類預測建模任務:分類(classification),用於預測離散的目標變數;回歸(regression),用於預測連續的目標變數。
例如,預測一個Web用戶是否會在網上書店買書是分類任務,因為該目標變數是二值的,而預測某股票的未來價格則是回歸任務,因為價格具有連續值屬性。
兩項任務目標都是訓練一個模型,使目標變數預測值與實際值之間的誤差達到最小。預測建模可以用來確定顧客對產品促銷活動的反應,預測地球生態系統的擾動,或根據檢查結果判斷病人是否患有某種疾病。
關聯分析(association analysis) 用來發現描述數據中強關聯特徵的模式。
所發現的模式通常用蘊涵規則或特徵子集的形式表示。由於搜索空間是指數規模的,關聯分析的目標是以有效的方式提取最有趣的模式。關聯分析的應用包括找出具有相關功能的基因組、識別用戶一起訪問的Web頁面、 理解地球氣候系統不同元素之間的聯系等。
聚類分析(cluster analysis)旨在發現緊密相關的觀測值組群,使得與屬於不同簇的觀測值相比, 屬於同一簇的觀測值相互之間盡可能類似。聚類可用來對相關的顧客分組、找出顯著影響 地球氣候的海洋區域以及壓縮數據等。
異常檢測(anomaly detection) 的任務是識別其特徵顯著不同於其他數據的觀測值。
這樣的觀測值稱為異常點(anomaly)或離群點(outlier)。異常檢測演算法的目標是發現真正的異常點,而避免錯誤地將正常的對象標注為異常點換言之,一個好的異常檢測器必須具有高檢測率和低誤報率。
異常檢測的應用包括檢測欺詐、網路攻擊、疾病的不尋常模式、生態系統擾動等。
⑷ 請問什麼是數據挖掘
數據挖掘是從大量的數據中,抽取出潛在的、有價值的知識(模型或規則)的過程。
1. 數據挖掘能做什麼?
1)數據挖掘能做以下六種不同事情(分析方法):
· 分類 (Classification)
· 估值(Estimation)
· 預言(Prediction)
· 相關性分組或關聯規則(Affinity grouping or association rules)
· 聚集(Clustering)
· 描述和可視化(Des cription and Visualization)
2)數據挖掘分類
以上六種數據挖掘的分析方法可以分為兩類:直接數據挖掘;間接數據挖掘
· 直接數據挖掘
目標是利用可用的數據建立一個模型,這個模型對剩餘的數據,對一個特定的變數(可以
理解成資料庫中表的屬性,即列)進行描述。
· 間接數據挖掘
目標中沒有選出某一具體的變數,用模型進行描述;而是在所有的變數中建立起某種關系
。
· 分類、估值、預言屬於直接數據挖掘;後三種屬於間接數據挖掘
3)各種分析方法的簡介
· 分類 (Classification)
首先從數據中選出已經分好類的訓練集,在該訓練集上運用數據挖掘分類的技術,建立分
類模型,對於沒有分類的數據進行分類。
例子:
a. 信用卡申請者,分類為低、中、高風險
b. 分配客戶到預先定義的客戶分片
注意: 類的個數是確定的,預先定義好的
· 估值(Estimation)
估值與分類類似,不同之處在於,分類描述的是離散型變數的輸出,而估值處理連續值的
輸出;分類的類別是確定數目的,估值的量是不確定的。
例子:
a. 根據購買模式,估計一個家庭的孩子個數
b. 根據購買模式,估計一個家庭的收入
c. 估計real estate的價值
一般來說,估值可以作為分類的前一步工作。給定一些輸入數據,通過估值,得到未知的
連續變數的值,然後,根據預先設定的閾值,進行分類。例如:銀行對家庭貸款業務,運
用估值,給各個客戶記分(Score 0~1)。然後,根據閾值,將貸款級別分類。
· 預言(Prediction)
通常,預言是通過分類或估值起作用的,也就是說,通過分類或估值得出模型,該模型用
於對未知變數的預言。從這種意義上說,預言其實沒有必要分為一個單獨的類。
預言其目的是對未來未知變數的預測,這種預測是需要時間來驗證的,即必須經過一定時
間後,才知道預言准確性是多少。
· 相關性分組或關聯規則(Affinity grouping or association rules)
決定哪些事情將一起發生。
例子:
a. 超市中客戶在購買A的同時,經常會購買B,即A => B(關聯規則)
b. 客戶在購買A後,隔一段時間,會購買B (序列分析)
· 聚集(Clustering)
聚集是對記錄分組,把相似的記錄在一個聚集里。聚集和分類的區別是聚集不依賴於預先
定義好的類,不需要訓練集。
例子:
a. 一些特定症狀的聚集可能預示了一個特定的疾病
b. 租VCD類型不相似的客戶聚集,可能暗示成員屬於不同的亞文化群
聚集通常作為數據挖掘的第一步。例如,"哪一種類的促銷對客戶響應最好?",對於這一
類問題,首先對整個客戶做聚集,將客戶分組在各自的聚集里,然後對每個不同的聚集,
回答問題,可能效果更好。
· 描述和可視化(Des cription and Visualization)
是對數據挖掘結果的表示方式。
2.數據挖掘的商業背景
數據挖掘首先是需要商業環境中收集了大量的數據,然後要求挖掘的知識是有價值的。有
價值對商業而言,不外乎三種情況:降低開銷;提高收入;增加股票價格。
1)數據挖掘作為研究工具 (Research)
2)數據挖掘提高過程式控制制(Process Improvement)
3)數據挖掘作為市場營銷工具(Marketing)
4)數據挖掘作為客戶關系管理CRM工具(Customer Relationship Management)
3.數據挖掘的技術背景
1)數據挖掘技術包括三個主要部分:演算法和技術;數據;建模能力
2)數據挖掘和機器學習(Machine Learning)
· 機器學習是計算機科學和人工智慧AI發展的產物
· 機器學習分為兩種學習方式:自組織學習(如神經網路);從例子中歸納出規則(如決
策樹)
· 數據挖掘由來
數據挖掘是八十年代,投資AI研究項目失敗後,AI轉入實際應用時提出的。它是一個新興
的,面向商業應用的AI研究。選擇數據挖掘這一術語,表明了與統計、精算、長期從事預
言模型的經濟學家之間沒有技術的重疊。
3)數據挖掘和統計
統計也開始支持數據挖掘。統計本包括預言演算法(回歸)、抽樣、基於經驗的設計等
4)數據挖掘和決策支持系統
· 數據倉庫
· OLAP(聯機分析處理)、Data Mart(數據集市)、多維資料庫
· 決策支持工具融合
將數據倉庫、OLAP,數據挖掘融合在一起,構成企業決策分析環境。
4. 數據挖掘的社會背景
數據挖掘與個人預言:數據挖掘號稱能通過歷史數據的分析,預測客戶的行為,而事實上
,客戶自己可能都不明確自己下一步要作什麼。所以,數據挖掘的結果,沒有人們想像中
神秘,它不可能是完全正確的。
客戶的行為是與社會環境相關連的,所以數據挖掘本身也受社會背景的影響。比如說,在
美國對銀行信用卡客戶信用評級的模型運行得非常成功,但是,它可能不適合中國
轉載的
⑸ 誰有金融數據挖掘,關聯規則分析與挖掘的一些介紹啊
雨林演算法的數據結構:
AVC-set:節點n包含的所有紀錄在某個屬性上的投影,其中該AVC-set包括了屬性的不同值在每個類別上的計數。
AVC-group:一個節點n上所有的AVC -set的集合
AVC-set的所佔內存的大小正比於對應屬性的不同值個數,AVC-group並不是資料庫信息的簡單的壓縮,它只是提供了建立決策樹需要的信息, AVC-group所佔用的內存空間遠遠小於資料庫所實際佔用的空間。
一般設計方案:
AVC_set
{
//存儲屬性的各個值
DistinctValue[]
//存儲屬性各個值在某個類上對應的計數
DistinctValueCountForClassA[]
DistinctValueCountForClassB[]
… …
}
AVC_group
{
//節點n中的每個屬性的avc_set
AVC_set[]
}
自頂向下決策樹演算法
BuildTree(Node m,datapatition D,algorithm decisionTree)
對D使用決策樹演算法decisionTree得到分裂指標crit(n)
令k為節點n的子節點個數
if(k>0)
建立n的k個子節點c1,…,ck
使用最佳分割將D分裂為D1,…,Dk
for(i=1;i<=k;i++)
BuildTree(ci,Di)
endfor
endif
RainForest 演算法框架重新定義的部分:
1a) for 每一個屬性的謂詞p,尋找最佳的分割
1b) decisionTree.find_best_partitioning(AVC-set of p)
1c) endfor
2a) k= decisionTree.decide_splitting_criterion();//決定最終的分割
雨林演算法的常規過程:
建立節點的AVC-group
(通過讀取整個原始資料庫或者某個分支的資料庫表或文件)
選擇分裂屬性和分裂標准:取決於使用雨林演算法框架的具體演算法,通過逐一檢查AVC-set來選擇。
將數據分解到各個子節點:必須讀取整個數據集(資料庫或文件),將各條數據分解到各個子節點中,此時如果有足夠的內存,我們將建立一個或多個子節點的AVC-group
參考資料:李岱 rainforest.ppt 什麼是數據挖掘
數據挖掘(Data Mining),又稱為資料庫中的知識發現(Knowledge Discovery in Database, KDD),就是從大量數據中獲取有效的、新穎的、潛在有用的、最終可理解的模式的非平凡過程,簡單的說,數據挖掘就是從大量數據中提取或「挖掘」知識。
並非所有的信息發現任務都被視為數據挖掘。例如,使用資料庫管理系統查找個別的記錄,或通過網際網路的搜索引擎查找特定的Web頁面,則是信息檢索(information retrieval)領域的任務。雖然這些任務是重要的,可能涉及使用復雜的演算法和數據結構,但是它們主要依賴傳統的計算機科學技術和數據的明顯特徵來創建索引結構,從而有效地組織和檢索信息。盡管如此,數據挖掘技術也已用來增強信息檢索系統的能力。
編輯本段數據挖掘的起源
為迎接前一節中的這些挑戰,來自不同學科的研究者匯集到一起,開始著手開發可以處理不同數據類型的更有效的、可伸縮的工具。這些工作建立在研究者先前使用的方法學和演算法之上,在數據挖掘領域達到高潮。特別地是,數據挖掘利用了來自如下一些領域的思想:(1) 來自統計學的抽樣、估計和假設檢驗,(2) 人工智慧、模式識別和機器學習的搜索演算法、建模技術和學習理論。數據挖掘也迅速地接納了來自其他領域的思想,這些領域包括最優化、進化計算、資訊理論、信號處理、可視化和信息檢索。
一些其他領域也起到重要的支撐作用。特別地,需要資料庫系統提供有效的存儲、索引和查詢處理支持。源於高性能(並行)計算的技術在處理海量數據集方面常常是重要的。分布式技術也能幫助處理海量數據,並且當數據不能集中到一起處理時更是至關重要。
編輯本段數據挖掘能做什麼
1)數據挖掘能做以下六種不同事情(分析方法):
· 分類 (Classification)
· 估值(Estimation)
· 預言(Prediction)
· 相關性分組或關聯規則(Affinity grouping or association rules)
· 聚集(Clustering)
· 描述和可視化(Des cription and Visualization)
· 復雜數據類型挖掘(Text, Web ,圖形圖像,視頻,音頻等)
2)數據挖掘分類
以上六種數據挖掘的分析方法可以分為兩類:直接數據挖掘;間接數據挖掘
· 直接數據挖掘
目標是利用可用的數據建立一個模型,這個模型對剩餘的數據,對一個特定的變數(可以理解成資料庫中表的屬性,即列)進行描述。
· 間接數據挖掘
目標中沒有選出某一具體的變數,用模型進行描述;而是在所有的變數中建立起某種關系 。
· 分類、估值、預言屬於直接數據挖掘;後三種屬於間接數據挖掘
3)各種分析方法的簡介
· 分類 (Classification)
首先從數據中選出已經分好類的訓練集,在該訓練集上運用數據挖掘分類的技術,建立分類模型,對於沒有分類的數據進行分類。
例子:
a. 信用卡申請者,分類為低、中、高風險
b. 分配客戶到預先定義的客戶分片
注意: 類的個數是確定的,預先定義好的
· 估值(Estimation)
估值與分類類似,不同之處在於,分類描述的是離散型變數的輸出,而估值處理連續值的輸出;分類的類別是確定數目的,估值的量是不確定的。
例子:
a. 根據購買模式,估計一個家庭的孩子個數
b. 根據購買模式,估計一個家庭的收入
c. 估計real estate的價值
一般來說,估值可以作為分類的前一步工作。給定一些輸入數據,通過估值,得到未知的連續變數的值,然後,根據預先設定的閾值,進行分類。例如:銀行對家庭貸款業務,運用估值,給各個客戶記分(Score 0~1)。然後,根據閾值,將貸款級別分類。
· 預言(Prediction)
通常,預言是通過分類或估值起作用的,也就是說,通過分類或估值得出模型,該模型用於對未知變數的預言。從這種意義上說,預言其實沒有必要分為一個單獨的類。預言其目的是對未來未知變數的預測,這種預測是需要時間來驗證的,即必須經過一定時間後,才知道預言准確性是多少。
· 相關性分組或關聯規則(Affinity grouping or association rules)
決定哪些事情將一起發生。
例子:
a. 超市中客戶在購買A的同時,經常會購買B,即A => B(關聯規則)
b. 客戶在購買A後,隔一段時間,會購買B (序列分析)
· 聚集(Clustering)
聚集是對記錄分組,把相似的記錄在一個聚集里。聚集和分類的區別是聚集不依賴於預先定義好的類,不需要訓練集。
例子:
a. 一些特定症狀的聚集可能預示了一個特定的疾病
b. 租VCD類型不相似的客戶聚集,可能暗示成員屬於不同的亞文化群
聚集通常作為數據挖掘的第一步。例如,"哪一種類的促銷對客戶響應最好?",對於這一 類問題,首先對整個客戶做聚集,將客戶分組在各自的聚集里,然後對每個不同的聚集,回答問題,可能效果更好。
· 描述和可視化(Des cription and Visualization)
是對數據挖掘結果的表示方式。
編輯本段數據挖掘中的關聯規則上面演算法講的很清楚了,我來舉個例子:
Training data:
Id age income class
1 young 65 G
2 young 15 B
3 young 75 G
4 senior 40 B
5 senior 100 G
6 senior 60 G
AVC set „age「 for N1:
value class count
young B 1
young G 2
senior B 1
senior G 2
AVC set „income「 for N1:
value class count
15 B 1
40 B 1
60 G 1
65 G 1
75 G 1
100 G 1
AVC set „income「 for N2:
value class count
15 B 1
65 G 1
75 G 1
AVC set „age「 for N2:
value class count
young B 1
young G 2
最後推出雨林: N1
age=young / \ age=senior
/ \
N2 N3
最後提醒一點,對於雨林演算法,訓練樣本集不要大於3百萬。否則改用SPRINT。
1.什麼是關聯規則
在描述有關關聯規則的一些細節之前,我們先來看一個有趣的故事: "尿布與啤酒"的故事。
在一家超市裡,有一個有趣的現象:尿布和啤酒赫然擺在一起出售。但是這個奇怪的舉措卻使尿布和啤酒的銷量雙雙增加了。這不是一個笑話,而是發生在美國沃爾瑪連鎖店超市的真實案例,並一直為商家所津津樂道。沃爾瑪擁有世界上最大的數據倉庫系統,為了能夠准確了解顧客在其門店的購買習慣,沃爾瑪對其顧客的購物行為進行購物籃分析,想知道顧客經常一起購買的商品有哪些。沃爾瑪數據倉庫里集中了其各門店的詳細原始交易數據。在這些原始交易數據的基礎上,沃爾瑪利用數據挖掘方法對這些數據進行分析和挖掘。一個意外的發現是:"跟尿布一起購買最多的商品竟是啤酒!經過大量實際調查和分析,揭示了一個隱藏在"尿布與啤酒"背後的美國人的一種行為模式:在美國,一些年輕的父親下班後經常要到超市去買嬰兒尿布,而他們中有30%~40%的人同時也為自己買一些啤酒。產生這一現象的原因是:美國的太太們常叮囑她們的丈夫下班後為小孩買尿布,而丈夫們在買尿布後又隨手帶回了他們喜歡的啤酒。
按常規思維,尿布與啤酒風馬牛不相及,若不是藉助數據挖掘技術對大量交易數據進行挖掘分析,沃爾瑪是不可能發現數據內在這一有價值的規律的。
數據關聯是資料庫中存在的一類重要的可被發現的知識。若兩個或多個變數的取值之間存在某種規律性,就稱為關聯。關聯可分為簡單關聯、時序關聯、因果關聯。關聯分析的目的是找出資料庫中隱藏的關聯網。有時並不知道資料庫中數據的關聯函數,即使知道也是不確定的,因此關聯分析生成的規則帶有可信度。關聯規則挖掘發現大量數據中項集之間有趣的關聯或相關聯系。Agrawal等於1993年首先提出了挖掘顧客交易資料庫中項集間的關聯規則問題,以後諸多的研究人員對關聯規則的挖掘問題進行了大量的研究。他們的工作包括對原有的演算法進行優化,如引入隨機采樣、並行的思想等,以提高演算法挖掘規則的效率;對關聯規則的應用進行推廣。關聯規則挖掘在數據挖掘中是一個重要的課題,最近幾年已被業界所廣泛研究。
2.關聯規則挖掘過程、分類及其相關演算法
2.1關聯規則挖掘的過程
關聯規則挖掘過程主要包含兩個階段:第一階段必須先從資料集合中找出所有的高頻項目組(Frequent Itemsets),第二階段再由這些高頻項目組中產生關聯規則(Association Rules)。
關聯規則挖掘的第一階段必須從原始資料集合中,找出所有高頻項目組(Large Itemsets)。高頻的意思是指某一項目組出現的頻率相對於所有記錄而言,必須達到某一水平。一項目組出現的頻率稱為支持度(Support),以一個包含A與B兩個項目的2-itemset為例,我們可以經由公式(1)求得包含{A,B}項目組的支持度,若支持度大於等於所設定的最小支持度(Minimum Support)門檻值時,則{A,B}稱為高頻項目組。一個滿足最小支持度的k-itemset,則稱為高頻k-項目組(Frequent k-itemset),一般表示為Large k或Frequent k。演算法並從Large k的項目組中再產生Large k+1,直到無法再找到更長的高頻項目組為止。
關聯規則挖掘的第二階段是要產生關聯規則(Association Rules)。從高頻項目組產生關聯規則,是利用前一步驟的高頻k-項目組來產生規則,在最小信賴度(Minimum Confidence)的條件門檻下,若一規則所求得的信賴度滿足最小信賴度,稱此規則為關聯規則。例如:經由高頻k-項目組{A,B}所產生的規則AB,其信賴度可經由公式(2)求得,若信賴度大於等於最小信賴度,則稱AB為關聯規則。
就沃爾馬案例而言,使用關聯規則挖掘技術,對交易資料庫中的紀錄進行資料挖掘,首先必須要設定最小支持度與最小信賴度兩個門檻值,在此假設最小支持度min_support=5% 且最小信賴度min_confidence=70%。因此符合此該超市需求的關聯規則將必須同時滿足以上兩個條件。若經過挖掘過程所找到的關聯規則「尿布,啤酒」,滿足下列條件,將可接受「尿布,啤酒」的關聯規則。用公式可以描述Support(尿布,啤酒)>=5%且Confidence(尿布,啤酒)>=70%。其中,Support(尿布,啤酒)>=5%於此應用範例中的意義為:在所有的交易紀錄資料中,至少有5%的交易呈現尿布與啤酒這兩項商品被同時購買的交易行為。Confidence(尿布,啤酒)>=70%於此應用範例中的意義為:在所有包含尿布的交易紀錄資料中,至少有70%的交易會同時購買啤酒。因此,今後若有某消費者出現購買尿布的行為,超市將可推薦該消費者同時購買啤酒。這個商品推薦的行為則是根據「尿布,啤酒」關聯規則,因為就該超市過去的交易紀錄而言,支持了「大部份購買尿布的交易,會同時購買啤酒」的消費行為。
從上面的介紹還可以看出,關聯規則挖掘通常比較適用與記錄中的指標取離散值的情況。如果原始資料庫中的指標值是取連續的數據,則在關聯規則挖掘之前應該進行適當的數據離散化(實際上就是將某個區間的值對應於某個值),數據的離散化是數據挖掘前的重要環節,離散化的過程是否合理將直接影響關聯規則的挖掘結果。
2.2關聯規則的分類
按照不同情況,關聯規則可以進行分類如下:
1.基於規則中處理的變數的類別,關聯規則可以分為布爾型和數值型。
布爾型關聯規則處理的值都是離散的、種類化的,它顯示了這些變數之間的關系;而數值型關聯規則可以和多維關聯或多層關聯規則結合起來,對數值型欄位進行處理,將其進行動態的分割,或者直接對原始的數據進行處理,當然數值型關聯規則中也可以包含種類變數。例如:性別=「女」=>職業=「秘書」 ,是布爾型關聯規則;性別=「女」=>avg(收入)=2300,涉及的收入是數值類型,所以是一個數值型關聯規則。
2.基於規則中數據的抽象層次,可以分為單層關聯規則和多層關聯規則。
在單層的關聯規則中,所有的變數都沒有考慮到現實的數據是具有多個不同的層次的;而在多層的關聯規則中,對數據的多層性已經進行了充分的考慮。例如:IBM台式機=>Sony列印機,是一個細節數據上的單層關聯規則;台式機=>Sony列印機,是一個較高層次和細節層次之間的多層關聯規則。
3.基於規則中涉及到的數據的維數,關聯規則可以分為單維的和多維的。
在單維的關聯規則中,我們只涉及到數據的一個維,如用戶購買的物品;而在多維的關聯規則中,要處理的數據將會涉及多個維。換成另一句話,單維關聯規則是處理單個屬性中的一些關系;多維關聯規則是處理各個屬性之間的某些關系。例如:啤酒=>尿布,這條規則只涉及到用戶的購買的物品;性別=「女」=>職業=「秘書」,這條規則就涉及到兩個欄位的信息,是兩個維上的一條關聯規則。
2.3關聯規則挖掘的相關演算法
1.Apriori演算法:使用候選項集找頻繁項集
Apriori演算法是一種最有影響的挖掘布爾關聯規則頻繁項集的演算法。其核心是基於兩階段頻集思想的遞推演算法。該關聯規則在分類上屬於單維、單層、布爾關聯規則。在這里,所有支持度大於最小支持度的項集稱為頻繁項集,簡稱頻集。
該演算法的基本思想是:首先找出所有的頻集,這些項集出現的頻繁性至少和預定義的最小支持度一樣。然後由頻集產生強關聯規則,這些規則必須滿足最小支持度和最小可信度。然後使用第1步找到的頻集產生期望的規則,產生只包含集合的項的所有規則,其中每一條規則的右部只有一項,這里採用的是中規則的定義。一旦這些規則被生成,那麼只有那些大於用戶給定的最小可信度的規則才被留下來。為了生成所有頻集,使用了遞推的方法。
可能產生大量的候選集,以及可能需要重復掃描資料庫,是Apriori演算法的兩大缺點。
2.基於劃分的演算法
Savasere等設計了一個基於劃分的演算法。這個演算法先把資料庫從邏輯上分成幾個互不相交的塊,每次單獨考慮一個分塊並對它生成所有的頻集,然後把產生的頻集合並,用來生成所有可能的頻集,最後計算這些項集的支持度。這里分塊的大小選擇要使得每個分塊可以被放入主存,每個階段只需被掃描一次。而演算法的正確性是由每一個可能的頻集至少在某一個分塊中是頻集保證的。該演算法是可以高度並行的,可以把每一分塊分別分配給某一個處理器生成頻集。產生頻集的每一個循環結束後,處理器之間進行通信來產生全局的候選k-項集。通常這里的通信過程是演算法執行時間的主要瓶頸;而另一方面,每個獨立的處理器生成頻集的時間也是一個瓶頸。
3.FP-樹頻集演算法
針對Apriori演算法的固有缺陷,J. Han等提出了不產生候選挖掘頻繁項集的方法:FP-樹頻集演算法。採用分而治之的策略,在經過第一遍掃描之後,把資料庫中的頻集壓縮進一棵頻繁模式樹(FP-tree),同時依然保留其中的關聯信息,隨後再將FP-tree分化成一些條件庫,每個庫和一個長度為1的頻集相關,然後再對這些條件庫分別進行挖掘。當原始數據量很大的時候,也可以結合劃分的方法,使得一個FP-tree可以放入主存中。實驗表明,FP-growth對不同長度的規則都有很好的適應性,同時在效率上較之Apriori演算法有巨大的提高。
3.該領域在國內外的應用
3.1關聯規則發掘技術在國內外的應用
就目前而言,關聯規則挖掘技術已經被廣泛應用在西方金融行業企業中,它可以成功預測銀行客戶需求。一旦獲得了這些信息,銀行就可以改善自身營銷。現在銀行天天都在開發新的溝通客戶的方法。各銀行在自己的ATM機上就捆綁了顧客可能感興趣的本行產品信息,供使用本行ATM機的用戶了解。如果資料庫中顯示,某個高信用限額的客戶更換了地址,這個客戶很有可能新近購買了一棟更大的住宅,因此會有可能需要更高信用限額,更高端的新信用卡,或者需要一個住房改善貸款,這些產品都可以通過信用卡賬單郵寄給客戶。當客戶打電話咨詢的時候,資料庫可以有力地幫助電話銷售代表。銷售代表的電腦屏幕上可以顯示出客戶的特點,同時也可以顯示出顧客會對什麼產品感興趣。
同時,一些知名的電子商務站點也從強大的關聯規則挖掘中的受益。這些電子購物網站使用關聯規則中規則進行挖掘,然後設置用戶有意要一起購買的捆綁包。也有一些購物網站使用它們設置相應的交叉銷售,也就是購買某種商品的顧客會看到相關的另外一種商品的廣告。
但是目前在我國,「數據海量,信息缺乏」是商業銀行在數據大集中之後普遍所面對的尷尬。目前金融業實施的大多數資料庫只能實現數據的錄入、查詢、統計等較低層次的功能,卻無法發現數據中存在的各種有用的信息,譬如對這些數據進行分析,發現其數據模式及特徵,然後可能發現某個客戶、消費群體或組織的金融和商業興趣,並可觀察金融市場的變化趨勢。可以說,關聯規則挖掘的技術在我國的研究與應用並不是很廣泛深入。
3.2近年來關聯規則發掘技術的一些研究
由於許多應用問題往往比超市購買問題更復雜,大量研究從不同的角度對關聯規則做了擴展,將更多的因素集成到關聯規則挖掘方法之中,以此豐富關聯規則的應用領域,拓寬支持管理決策的范圍。如考慮屬性之間的類別層次關系,時態關系,多表挖掘等。近年來圍繞關聯規則的研究主要集中於兩個方面,即擴展經典關聯規則能夠解決問題的范圍,改善經典關聯規則挖掘演算法效率和規則興趣性。
編輯本段數據挖掘技術實現
在技術上可以根據它的工作過程分為:數據的抽取、數據的存儲和管理、數據的展現等關鍵技術。
·數據的抽取
數據的抽取是數據進入倉庫的入口。由於數據倉庫是一個獨立的數據環境,它需要通過抽取過程將數據從聯機事務處理系統、外部數據源、離線的數據存儲介質中導入數據倉庫。數據抽取在技術上主要涉及互連、復制、增量、轉換、調度和監控等幾個方面的處理。在數據抽取方面,未來的技術發展將集中在系統功能集成化方面,以適應數據倉庫本身或數據源的變化,使系統更便於管理和維護。
·數據的存儲和管理
數據倉庫的組織管理方式決定了它有別於傳統資料庫的特性,也決定了其對外部數據的表現形式。數據倉庫管理所涉及的數據量比傳統事務處理大得多,且隨時間的推移而快速累積。在數據倉庫的數據存儲和管理中需要解決的是如何管理大量的數據、如何並行處理大量的數據、如何優化查詢等。目前,許多資料庫廠家提供的技術解決方案是擴展關系型資料庫的功能,將普通關系資料庫改造成適合擔當數據倉庫的伺服器。
·數據的展現
在數據展現方面主要的方式有:
查詢:實現預定義查詢、動態查詢、OLAP查詢與決策支持智能查詢;報表:產生關系數據表格、復雜表格、OLAP表格、報告以及各種綜合報表;可視化:用易於理解的點線圖、直方圖、餅圖、網狀圖、互動式可視化、動態模擬、計算機動畫技術表現復雜數據及其相互關系;統計:進行平均值、最大值、最小值、期望、方差、匯總、排序等各種統計分析;挖掘:利用數據挖掘等方法,從數據中得到關於數據關系和模式的知識。
編輯本段數據挖掘與數據倉庫融合發展
數據挖掘和數據倉庫的協同工作,一方面,可以迎合和簡化數據挖掘過程中的重要步驟,提高數據挖掘的效率和能力,確保數據挖掘中數據來源的廣泛性和完整性。另一方面,數據挖掘技術已經成為數據倉庫應用中極為重要和相對獨立的方面和工具。
數據挖掘和數據倉庫是融合與互動發展的,其學術研究價值和應用研究前景將是令人振奮的。它是數據挖掘專家、數據倉庫技術人員和行業專家共同努力的成果,更是廣大渴望從資料庫「奴隸」到資料庫「主人」轉變的企業最終用戶的通途。
統計學與數據挖掘
統計學和數據挖掘有著共同的目標:發現數據中的結構。事實上,由於它們的目標相似,一些人(尤其是統計學家)認為數據挖掘是統計學的分支。這是一個不切合實際的看法。因為數據挖掘還應用了其它領域的思想、工具和方法,尤其是計算機學科,例如資料庫技術和機器學習,而且它所關注的某些領域和統計學家所關注的有很大不同。
1.統計學的性質
試圖為統計學下一個太寬泛的定義是沒有意義的。盡管可能做到,但會引來很多異議。相反,我要關注統計學不同於數據挖掘的特性。
差異之一同上節中最後一段提到的相關,即統計學是一門比較保守的學科,目前有一種趨勢是越來越精確。當然,這本身並不是壞事,只有越精確才能避免錯誤,發現真理。但是如果過度的話則是有害的。這個保守的觀點源於統計學是數學的分支這樣一個看法,我是不同意這個觀點的,盡管統計學確實以數學為基礎(正如物理和工程也以數學為基礎,但沒有被認為是數學的分支),但它同其它學科還有緊密的聯系。
數學背景和追求精確加強了這樣一個趨勢:在採用一個方法之前先要證明,而不是象計算機 這