06.15 軟考高級架構師內容-數據庫系統之數據挖掘(瞭解)

數據挖掘的概念數據挖掘(Data Mining)技術是人們長期對數據庫技術進行研究和開發的結果。起初各種商業數據是存儲在計算機的數據庫中的,然後發展到可對數據庫進行查詢和訪問,進而發展到對數據庫的即時遍歷。數據挖掘使數據庫技術進入了一個更高級的階段,它不僅能對過去的數據進行查詢和遍歷,並且能夠找出過去數據之間的潛在聯繫,從而促進信息的傳遞。

現在數據挖掘技術在商業應用中已經可以馬上投入使用,因為對這種技術進行支持的三種基礎技術已經發展成熟,它們是海量數據蒐集、強大的多處理器計算機和數據挖掘算法。從技術角度來看,數據挖掘就是從大量的、不完全的、有噪聲的、模糊的、隨機的實際應用數據中,提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識的過程。

這個定義包括好幾層含義:數據源必須是真實的、大量的、含噪聲的;發現的是用戶感興趣的知識;發現的知識要可接受、可理解、可運用;並不要求發現放之四海而皆準的知識,僅支持特定的發現問題。還有很多和這一術語相近的術語,如從數據庫中發現知識、數據分析、數據融合(DataFusion),以及決策支持等。何為知識?

從廣義上理解,數據、信息也是知識的表現形式,但是人們更把概念、規則、模式、規律和約束等看做知識。原始數據可以是結構化的,如關係數據庫中的數據;也可以是半結構化的,如文本、圖形和圖像數據;甚至是分佈在網絡上的異構型數據。發現知識的方法可以是數學的,也可以是非數學的;可以是演繹的,也可以是歸納的。發現的知識可以被用於信息管理,查詢優化,決策支持和過程控制等,還可以用於數據自身的維護。因此,數據挖掘是一門交叉學科,它把人們對數據的應用從低層次的簡單查詢,提升到從數據中挖掘知識,提供決策支持。在這種需求牽引下,匯聚了不同領域的研究者,尤其是數據庫技術、人工智能技術、數理統計、可視化技術、並行計算等方面的學者和工程技術人員,投身到數據挖掘這一新興的研究領域,形成新的技術熱點。從商業角度來看,數據挖掘是一種新的商業信息處理技術,其主要特點是對商業數據庫中的大量業務數據進行抽取、轉換、分析和其他模型化處理,從中提取輔助商業決策的關鍵性數據。

簡而言之,數據挖掘其實是一種深層次的數據分析方法。數據分析本身已經有很多年的歷史,只不過在過去數據收集和分析的目的是用於科學研究,另外,由於當時計算能力的限制,對大量數據進行分析的複雜數據分析方法受到很大限制。現在,由於各行業業務自動化的實現,商業領域產生了大量的業務數據,這些數據不再是為了分析的目的而收集,而是由於純機會的商業運作而產生。分析這些數據也不再是單純為了研究的需要,更主要是為商業決策提供真正有價值的信息,進而獲得利潤。但所有企業面臨的一個共同問題是:企業數據量非常大,而其中真正有價值的信息卻很少,因此從大量的數據中通過深層分析,獲得有利於商業運作、提高競爭力的信息,就像從礦石中淘金一樣,數據挖掘也因此而得名。因此,數據挖掘可以描述為:按企業既定業務目標,對大量的企業數據進行探索和分析,揭示隱藏的、未知的或驗證已知的規律性,並進一步將其模型化的先進有效的方法。數據挖掘與傳統的數據分析(如查詢、報表、聯機應用分析)的本質區別是數據挖掘是在沒有明確假設的前提下去挖掘信息、發現知識。數據挖掘所得到的信息應具有先知,有效和可實用三個特徵。先前未知的信息是指該信息是預先未曾預料到的,即數據挖掘是要發現那些不能靠直覺發現的信息或知識,甚至是違背直覺的信息或知識,挖掘出的信息越是出乎意料,就可能越有價值。在商業應用中最典型的例子就是一家連鎖店通過數據挖掘發現了小孩紙尿布和啤酒之間有著驚人的聯繫。特別要指出的是,數據挖掘技術從一開始就是面向應用的。它不僅是面向特定數據庫的簡單檢索查詢調用,而且要對這些數據進行微觀、中觀乃至宏觀的統計、分析、綜合和推理,以指導實際問題的求解,企圖發現事件間的相互關聯,甚至利用已有的數據對未來的活動進行預測。例如,加拿大 BC 省電話公司要求加拿大 Simon Fraser 大學知識發現研究組,根據其擁有十多年的客戶數據,總結、分析並提出新的電話收費和管理辦法,制定既有利於公司又有利於客戶的優惠政策。這樣一來,就把人們對數據的應用,從低層次的末端查詢操作,提高到為各級經營決策者提供決策支持。這種需求驅動力比數據庫查詢更為強大。

數據挖掘的功能數據挖掘通過預測未來趨勢及行為,做出前攝的、基於知識的決策。數據挖掘的目標是從數據庫中發現隱含的、有意義的知識,主要有以下五類功能。

  1. 自動預測趨勢和行為數據挖掘自動在大型數據庫中尋找預測性信息,以往需要進行大量手工分析的問題如今可以迅速直接由數據本身得出結論。一個典型的例子是市場預測問題,數據挖掘使用過去有關促銷的數據來尋找未來投資中回報最大的用戶,其他可預測的問題包括預報破產及認定對指定事件最可能做出反應的群體。
  2. 關聯分析數據關聯是數據庫中存在的一類重要的可被發現的知識。若兩個或多個變量的取值之間存在某種規律性,就稱為關聯。關聯可分為簡單關聯、時序關聯、因果關聯。關聯分析的目的是找出數據庫中隱藏的關聯網。有時並不知道數據庫中數據的關聯函數,即使知道也是不確定的,因此關聯分析生成的規則帶有可信度。
  3. 聚類數據庫中的記錄可被劃分為一系列有意義的子集,即聚類。聚類增強了人們對客觀現實的認識,是概念描述和偏差分析的先決條件。聚類技術主要包括傳統的模式識別方法和數學分類學。20 世紀 80 年代初,Mchalski 提出了概念聚類技術及其要點,即在劃分對象時不僅要考慮對象之間的距離,還要求劃分出的類具有某種內涵描述,從而避免了傳統技術的某些片面性。
  4. 概念描述概念描述就是對某類對象的內涵進行描述,並概括這類對象的有關特徵。概念描述分為特徵性描述和區別性描述,前者描述某類對象的共同特徵,後者描述不同類對象之間的區別。生成一個類的特徵性描述只涉及該類對象中所有對象的共性。生成區別性描述的方法很多,如決策樹方法、遺傳算法等。
  5. 偏差檢測數據庫中的數據常有一些異常記錄,從數據庫中檢測這些偏差很有意義。偏差包括很多潛在的知識,如分類中的反常實例、不滿足規則的特例、觀測結果與模型預測值的偏差、量值隨時間的變化等。偏差檢測的基本方法是,尋找觀測結果與參照值之間有意義的差別。

數據挖掘常用技術常用的數據挖掘技術包括關聯分析、序列分析、分類、預測、聚類分析及時間序列分析等。

  1. 關聯分析關聯分析主要用於發現不同事件之間的關聯性,即一個事件發生的同時,另一個事件也經常發生。關聯分析的重點在於快速發現那些有實用價值的關聯發生的事件。其主要依據是事件發生的概率和條件概率應該符合一定的統計意義。對於結構化的數據,以客戶的購買習慣數據為例,利用關聯分析,可以發現客戶的關聯購買需要。例如,一個開設儲蓄賬戶的客戶很可能同時進行債券交易和股票交易,購買紙尿褲的男顧客經常同時購買啤酒等。利用這種知識可以採取積極的營銷策略,擴展客戶購買的產品範圍,吸引更多的客戶。通過調整商品的佈局便於顧客買到經常同時購買的商品,或者通過降低一種商品的價格來促進另一種商品的銷售等。對於非結構化的數據,以空間數據為例,利用關聯分析,可以發現地理位置的關聯性。例如,85%的靠近高速公路的大城鎮與水相鄰,或者發現通常與高爾夫球場相鄰的對象等。
  2. 序列分析序列分析技術主要用於發現一定時間間隔內接連發生的事件。這些事件構成一個序列,發現的序列應該具有普遍意義,其依據除了統計上的概率之外,還要加上時間的約束。
  3. 分類分析分類分析通過分析具有類別的樣本的特點,得到決定樣本屬於各種類別的規則或方法。利用這些規則和方法對未知類別的樣本分類時應該具有一定的準確度。其主要方法有基於統計學的貝葉斯方法、神經網絡方法、決策樹方法及支持向量機(support vector machines)等。利用分類技術,可以根據顧客的消費水平和基本特徵對顧客進行分類,找出對商家有較大利益貢獻的重要客戶的特徵,通過對其進行個性化服務,提高他們的忠誠度。利用分類技術,可以將大量的半結構化的文本數據,如 WEB 頁面、電子郵件等進行分類。可以將圖片進行分類,例如,根據已有圖片的特點和類別,可以判定一幅圖片屬於何種類型的規則。對於空間數據,也可以進行分類分析,例如,可以根據房屋的地理位置決定房屋的檔次。
  4. 聚類分析聚類分析是根據物以類聚的原理,將本身沒有類別的樣本聚集成不同的組,並且對每一個這樣的組進行描述的過程。其主要依據是聚到同一個組中的樣本應該彼此相似,而屬於不同組的樣本應該足夠不相似。仍以客戶關係管理為例,利用聚類技術,根據客戶的個人特徵及消費數據,可以將客戶群體進行細分。例如,可以得到這樣的一個消費群體:女性佔 91%,全部無子女、年齡在 31歲到 40 歲佔 70%,高消費級別的佔 64%,買過針織品的佔 91%,買過廚房用品的佔 89%,買過園藝用品的佔 79%。針對不同的客戶群,可以實施不同的營銷和服務方式,從而提高客戶的滿意度。對於空間數據,根據地理位置及障礙物的存在情況可以自動進行區域劃分。例如,根據分佈在不同地理位置的 ATM 機的情況將居民進行區域劃分,根據這一信息,可以有效地進行 ATM 機的設置規劃,避免浪費,同時也避免失掉每一個商機。對於文本數據,利用聚類技術可以根據文檔的內容自動劃分類別,從而便於文本的檢索。
  5. 預測預測與分類類似,但預測是根據樣本的已知特徵估算某個連續類型的變量的取值的過程,而分類則只是用於判別樣本所屬的離散類別而已。預測常用的技術是迴歸分析。
  6. 時間序列分析時間序列分析的是隨時間而變化的事件序列,目的是預測未來發展趨勢,或者尋找相似發展模式或者是發現週期性發展規律。

數據挖掘的流程數據挖掘是指一個完整的過程,該過程從大型數據庫中挖掘先前未知的,有效的,可實用的信息,並使用這些信息做出決策或豐富知識。

軟考高級架構師內容-數據庫系統之數據挖掘(瞭解)

數據挖掘環境框圖

數據挖掘的流程大致如下:

  1. 問題定義在開始數據挖掘之前,最先的也是最重要的要求就是熟悉背景知識,弄清用戶的需求。缺少了背景知識,就不能明確定義要解決的問題,就不能為挖掘準備優質的數據,也很難正確地解釋得到的結果。要想充分發揮數據挖掘的價值,必須對目標有一個清晰明確的定義,即決定到底想幹什麼。
  2. 建立數據挖掘庫要進行數據挖掘必須收集要挖掘的數據資源。一般建議把要挖掘的數據都收集到一個數據庫中,而不是採用原有的數據庫或數據倉庫。這是因為大部分情況下需要修改要挖掘的數據,而且還會遇到採用外部數據的情況;另外,數據挖掘還要對數據進行各種紛繁複雜的統計分析,而數據倉庫可能不支持這些數據結構。
  3. 分析數據分析數據就是通常所進行的對數據深入調查的過程。從數據集中找出規律和趨勢,用聚類分析區分類別,最終要達到的目的就是搞清楚多因素相互影響的、十分複雜的關係,發現因素之間的相關性。
  4. 調整數據通過上述步驟的操作,對數據的狀態和趨勢有了進一步的瞭解,這時要儘可能對問題解決的要求能進一步明確化、進一步量化。針對問題的需求對數據進行增刪,按照對整個數據挖掘過程的新認識組合或生成一個新的變量,以體現對狀態的有效描述。
  5. 模型化在問題進一步明確,數據結構和內容進一步調整的基礎上,就可以建立形成知識的模型。這一步是數據挖掘的核心環節,一般運用神經網絡、決策樹、數理統計、時間序列分析等方法來建立模型。
  6. 評價和解釋上面得到的模式模型,有可能是沒有實際意義或沒有實用價值的,也有可能是其不能準確反映數據的真實意義,甚至在某些情況下是與事實相反的,因此需要評估,確定哪些是有效的、有用的模式。

評估的一種辦法是直接使用原先建立的挖掘數據庫中的數據來進行檢驗,另一種辦法是另找一批數據並對其進行檢驗,再一種辦法是在實際運行的環境中取出新鮮數據進行檢驗。數據挖掘過程的分步實現,不同的步驟需要不同專長的人員,他們大體可以分為三類。

  1. 業務分析人員。要求精通業務,能夠解釋業務對象,並根據各業務對象確定出用於數據定義和挖掘算法的業務需求。
  2. 數據分析人員。精通數據分析技術,並較熟練地掌握統計學,有能力把業務需求轉化為數據挖掘的各步操作,併為每步操作選擇合適的技術。
  3. 數據管理人員。精通數據管理技術,並從數據庫或數據倉庫中收集數據。由上可見,數據挖掘是一個多種專家合作的過程,也是一個在資金上和技術上高投入的過程。這一過程要反覆進行,在反覆過程中,不斷地趨近事物的本質,不斷地優選問題的解決方案。


分享到:


相關文章: