python數據挖掘介紹


  在python對數據的處理方式中,數據挖掘和數據分析是兩個重要的方式,目的是為了從數據中獲取具有科研或者商業價值的信息。而數據挖則掘是從大量的數據中通過算法搜索隱藏在數據中隱含的、先前未知的並有潛在使用價值的信息的過程。本篇將討論數據挖掘的一些入門知識。

   本篇主要涉及到的知識點有:

   什么是數據挖掘:學會什么是數據挖掘,以及在實際項目中的作用。

   數據挖掘的基本任務:學會數據挖掘要處理那些方面內容。

   數據挖掘流程:了解數據挖掘的推薦步驟,以及每個步驟要用到的知識。

   數據挖掘建模工具 :認識數據挖掘的常用建模工具。


一:什么是數據挖掘

  數據挖掘是指從大量的數據中通過一些算法尋找隱藏於其中重要實用信息的過程。這些算法包括神經網絡法、決策樹法、遺傳算法、粗糙集法、模糊集法、關聯規則法等。在商務管理,股市分析,公司重要信息決策,以及科學研究方面都有十分重要的意義。

  數據挖掘是一種決策支持過程,它主要基於人工智能、機器學習、模式識別、統計學、數據庫、可視化技術,從大量數據中尋找其肉眼難以發現的規律,和大數據聯系密切。如今,數據挖掘已經應用在很多行業里,對人們的生產生活以及未來大數據時代起到了重要影響。


二:數據挖掘的基本任務

  數據挖掘的基本任務就是主要要解決的問題。數據挖掘的基本任務包括分類與預測、聚類分析、關聯規則、奇異值檢測和智能推薦等。通過完成這些任務,發現數據的潛在價值,指導商業和科研決策,給科學研究帶來指導以及給商業帶來新價值。下面就分別來認識一下常見的基本任務。


1.分類與預測

  是一種用標號的進行學習的方式,這種編號是類編號。這種類標號若是離散的,屬於分類問題;若是連續的,屬於預測問題,或者稱為回歸問題。從廣義上來說,不管是分類,還是回歸,都可以看做是一種預測,差異就是預測的結果是離散的還是連續的。

2.聚類分析

  就是“物以類聚,人以群分”在原始數據集中的運用,其目的是把原始數據聚成幾類,從而使得類內相似度高,類間差異性大。

3.關聯規則

  數據挖掘可以用來發現規則,關聯規則屬於一種非常重要的規則,即通過數據挖掘方法,發現事務數據背后所隱含的某一種或者多種關聯,從而利用這些關聯來指導商業決策和行為。

4.奇異值檢測

  根據一定准則識別或者檢測出數據集中的異常值,所謂異常值就是和數據集中的絕大多數據表現不一致。

5.智能推薦

  這是數據挖掘一個很活躍的研究和應用領域,在各大電商網站中都會有各種形式推薦,比方說同類用戶所購買的產品,與你所購買產品相關聯的產品等。



三:數據挖掘流程

  我們由上面的章節知道了數據挖掘的定義和基本任務,本節我們來學習一下數據挖掘的流程,來講述數據挖掘是如何進行的。

1.定義挖掘目標

  該步驟是分析要挖掘的目標,定義問題的范圍,可以划分為下面的目標:

  (1)針對具體業務的數據挖掘應用需求,首先要分析是哪方面的問題。

  (2)分析完問題后,該問題如果解決后可以實現什么樣的效果,達到怎樣的目標。

  (3)詳細地列出用戶對於該問題的所有需求。

  (4)挖掘可以用到那些數據集。究竟怎樣的挖掘方向比較合理。

  (5)綜合上面的要求,制定挖掘計划。

2.數據取樣

  在明確了數據挖掘的目標后,接下來就需要在業務數據集中抽取和挖掘目標相關的數據樣本子集。這就是數據取樣操作。那么數據取樣時需要注意哪些方面呢?

  第一是抽取的數據要和挖掘目標緊密相關,並且能夠很好地說明用戶的需求。

  第二是要可靠,質量要有所保證,從大范圍數據到小范圍數據,都不要忘記檢查數據的質量,這是因為如果原始的數據有誤,在之后的過程中,可能難以探索規律,即使探索出規律,也有可能是錯誤的。

  第三個方面是要有效,要注意數據的完整,但是有時候可能要抽取的數據量比較大,這個時候也許有的數據是根本沒有用的,可以通過篩選進行處理。通過對數據的精選,不僅能減少數據處理量,節省系統資源,還能夠讓我們要尋找的數據可以更加地顯現出來。


  而衡量數據取樣質量的標准如下:

  (1)確定取樣的數據集后,要保證數據資料完整無缺,各項數據指標完整。

  (2)數據集要滿足可靠性和有效性。

  (3)每一項的數據都准確無誤,反映的都是正常狀態下的水平。

  (4)數據集合部分能顯現出規律性。

  (5)數據集合要能滿足用戶的需求。


數據取樣的方法有多種多樣的,常見的方式如下:

  (1)隨機取樣:就是按照隨機的方法進行取樣,數據集中的每一個元素被抽取的概率是一樣的。可以按照每一個特定的百分比進行取樣,比如按照5%,10%,20%等每個百分比內隨機抽取n個數據。

  (2)等距取樣:和隨機取樣有些類似,但是不同的是等距取樣是按照一定百分比的比例進行等距取樣,比如有100個數據,按照10%的比例進行等距取樣就是抽取10,20,30,40,50,60,70,80,90,100這10個數據。

  (3)分層取樣:在這種抽樣的操作中,首先將樣本總體分為若干子集。在每個層次中的值都有相同的被選用的概率,但是可以對每一層設置不同的概率,分別代表不同層次的水平。是為了未來更好地擬合層次數據,綜合后得到更好的精度。比如100個數據分為5層,在1-20,20-30,30-40,40-50等每一層抽取的個數不同,分別代表每一層。

  (4)分類取樣:分類抽樣是依據某種屬性的取值來選擇數據子集,按照某種類別(規則)進行選擇,比如按照客戶名稱,同學姓名,地址區域,企業類別進行分類。

  (5)從起始位置取樣:就是從輸入數據集的起始處開始抽樣,抽取一定的百分比數據。

  (6)從結束位置取樣:就是從輸入數據集的最后處反向抽樣,抽取一定的百分比數據。

3.數據探索

  數據探索,是為了把數據取樣得到的數據進行檢測的操作。當我們拿到一個數據集合后,這些數據是否達到了我們原來設想的要求;樣本中有沒有什么明顯的規律和趨勢,有沒有一些用不到的數據被拿了過來,這些就引出了數據探索。

  數據探索是在具有較為良好的樣本后,對樣本數據進行解釋性的分析工作,它是數據挖掘較為前期的部分。數據探索並不需要應用過多的模型算法,相反,它更偏重於定義數據的本質、描述數據的形態特征並解釋數據的相關性。通過數據探索的結果,我們能夠更好的開展后續的數據挖掘與數據建模工作。

  許多人在定義或者理解數據探索的時候,會更多的聯系到數據的前期調研、業務理解、數據抓取、數據清洗等過程。我可以理解這種說法,因為從寬了講,數據探索其實可以貫穿整個數據分析與挖掘的框架。

  但是,在我構建數據挖掘體系的時候,更希望能夠將上面這些小過程一一切割出來,把他們單獨放在框架定位、數據准備與樣本抽取這些環節講解,這樣做能夠避免數據探索這個點中覆蓋的知識點太廣泛擴散,不易提煉精華。所以,我這里探討的數據探索方法,可能會與其他地方看到的有所不同。這是因為我將原本可以歸屬在數據探索中的知識分割出去了。

  理解數據探索,就是理解如何描述數據本身的形態,理解通過數學上的數理統計方法與模型,來解釋數據的表象特征與相關關系。

  對所抽取的樣本數據進行數據探索,審核和加工,是為了最終保證數據挖掘質量的方式。為使得未來的數據模型更加能夠達到數據挖掘的目標

4.數據預處理

  數據預處理是指在主要的處理以前對數據進行的一些處理操作。實際的數據極易受噪聲、缺失值和不一致數據的侵擾,數據集過大時,並且多半來自多個異種數據源。低質量的數據將會導致低質量的挖掘結果。因此需要先進行數據預處理。數據預處理主要包括:數據篩選,數據變量轉換,缺失值處理,數據優化,數據標准化,屬性選擇,主要成分分析,數據規則等。

  而主要的和程序有關的其他數據預處理技術有均值移除,范圍縮放,歸-化,二值化,獨熱編碼等。

5.建模

  當樣本抽取完畢並預處理后,接下來就要考慮,要用到那些算法進行模型構建。這是數據挖掘的核心。


四:數據挖掘建模工具

  數據挖掘是一個不斷重復的過程,主要是為了解決實際上的企業或者科研問題,只有和企業,和用戶進行交流,不斷地完善,處理數據,才能得到很不錯的有高價值的數據。下面介紹一下常用的數據挖掘建模工具。

(1) SAS Enterprise Miner

  Enterprise Mincr(EM)是SAS推出的一個集成的數據挖掘系統,允許使用和比較不 同的技術 。同時還集成了復雜的數據庫管理軟件 。它的運行方式是通過在一個工作空間 (workspace)中按照一定的順序添加各種可以實現不同功能的節點,然后對不同節點進行相 應的設置,最后運行整個工作流程(workflow),便可以得到相應的結果。

(2) IBM SPSS Modeler

  IBM SPSS Modeler原名Clemen丨inc, 2009年被IBM公司收購后對產品的性能和功能 進行大幅度改進和提升。它封裝最先進的統計學和數據挖掘技術來獲得預測知識,並 將相應的決策方案部署到現有的業務系統和業務過程中,從而提高企業的效益。IBM SPSS Modeler擁有直觀的操作界面,自動化的數據准備和成熟的預測分析模切,結合商業技術外 以快速建立預測性模型。

(3) SQL Server

  Microsoft公司的 SQL Server 中集成廣數挖掘約組件---Analysis Servers,借助 SQL Server的數據庫管理功能,可以無縫地集成在SQL Server數據庫中。在SQL Server 2008中提供了 決策樹貨法、聚類分析W法、Naive Bayes 法、關聯規則算法、時序算法、神經網絡算法、 線性回歸算法等9種常用的數據挖掘算法。但是,預測建模的實現是基於SQL Server平台的,平台移植性相對較差。

  (4) Python

  Python(Matrix Laboratory,矩陣實驗室)是美國Mathworks公司開發的應用軟件,具備強大的科學及工程計算能力,它具行以矩陣計算為基礎的強大數學計算能力和分析功 能,而且還具有豐富的可視化圖形表現功能和方便的程序設計能力。Python並不提供一個專 門的數據挖掘環境 ,但是它提供非常多的相關算法的實現函數,是學習和開發數據挖掘算法的很好選擇。

(5) WBKA

  WEKA ( Waikato Environment for Knowledge Analysis)足一款知名度較高的開源機器學 習和數椐挖掘軟件。高級用戶可以通過Java編程和命令行來調用其分析紺件。同時, WBKA也為普通用戶提供了圖形化界面,稱為WEKA Knowledge Flow Environment和WEKA Explorer, 可以實現預處理、分類、聚類、關聯規則、文本挖掘、可視化等。

(6) KNIME

  ICNIME 是基於Java開發的,可以 擴展使用Weka中的挖掘算法。KNIME采用類似數據流(data flow)的方式來建立分析挖掘 流程。挖掘流程由一系列功能許點組成,每個節點苻輸入/輸出端口,用於接收數據或模型,導出結果。

(7) RapidMiner

  RapidMiner 也稱為 YALE,提 供圖形化界面,采用類似Windows資源管理器中的樹狀結構來組織分析組件,樹上每個節點 表示不同的運算符(operator)。YALE中提供了大量的運算符,包括數據處理、變換、探索、 建模、評估等各個環節。YALE是用Java開發的,基於Weka來構迮,可以調用Weka中的 各種分析組件。RapidMiner拓展的套件Radoop,可以和Hadoop集成起來,在Hadoop集 群上運行任務。

(8) TipDM

  TipDM (頂尖數據挖掘平台 ) 使用Java語言開發,能從各種數據源獲取數據,建立多種 數椐挖掘模塑。 TipDM目前已集成數十種預測算法和分析技術,基本薄蓋了國外主流挖掘系 統支持的算法。TipDM支持數據挖掘流程所需的主要過程:數據探索(相關性分析、主成分 分析、周期性分析);數據預處理(屬性選擇、特征提取、壞數據處理、空值處理);預測違 模(參數設置、交叉驗證、模型訓練、模型驗證、模型預測)聚類分析、關聯規則挖掘等一 系列功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM