數據挖掘 入門

如下是 郭鵬程在「小象學院微課」分享的「數據挖掘」初級內容,本人整理html

現在數據行業正式火熱的時候,很多公司紛紛設置數據崗位,也有不少創業公司從數據角度入手,同時,很多高校也成立了數據專業。
特別是大數據這個名詞,已經被熱炒了好幾年
若是你們留意的話,會發現網上不少關於大數據的課題,每每是在研究大數據平臺,好比Hadoop,spark算法

然而從時間角度來講,數據工做者有三個角度:
技術、統計、和業務數據庫

  • 這裏技術主要指的就是IT技術,從簡單的分析工具,如R、SPSS,數據庫,到大數據平臺,如storm,spark等等工具

  • 統計呢,是指建模、數學、機率統計,其中尤爲以統計最爲重要oop

  • 業務是指,數據工做者會始終以業務爲導向。大數據

從某個角度來講,數據應該是扮演輔助的角色。這個待會咱們會重點講
關於數據分析和數據挖掘,市面上有不少種教材,會講各類各樣的算法,好比迴歸,關聯等等。。。然而若是真的深刻到實際工做中時,會發現:教科書上的練習過於紙上談兵,現實中不多有乾乾淨淨的數據擺在你面前讓你用各類算法去作;實際上數據清洗會佔到真正工做的60%以上(ETL http://www.cnblogs.com/elaron/archive/2012/04/09/2438372.html, Kettle 很經常使用)優化

這裏順帶介紹一下個人經歷,本科我修的是天文,可是主要的仍是推導公式,跟如今咱們不少大學裏學的仍是差很少(這點有些遺憾)
後來對學術現狀表示很灰心,就決定去社會上實踐一下,因而比價勉強的作了電子工程師;然而接着發現沒有受過專門訓練仍是很難走遠,就決定去深造
由於專業緣由(爲了好申請),個人博士方向選定了天文儀器
而後就是連續n年在實驗室裏作儀器,運到山上去觀測,而後回來分析數據,指望可以發現點什麼。。。。
結果數據質量不好,打個比方是什麼呢?
咱們指望在一張白紙上,會忽然有個黑點,而後能夠興奮的指着說,我發現了一顆星
結果實際上呢,拿出紙來,發現一片雪花
就這樣好多年,很難畢業。而後就換了個作理論的導師,導師的名言是:「we never use real data. real data sucks!"
咱們只用模擬數據~
而後就畢業了。。。
作的事天文統計,用計算機模擬物理模型,而後反過來分析模擬的數據,作了一堆東西。。。
有了這些經歷,我對數據的質量就特別敏感,總但願從一開始就把握好數據質量,否則咱們浪費的不只是金錢和時間,還有更重要的機會spa

clipboard.png

咱們如今說說第一個話題,拿數據作什麼?
數據用來作什麼?我大概總結了一下:記錄、解釋(理解)、預測、控制設計

  • 記錄:一個是將咱們感興趣的活動記錄下來,好比日誌,交易記錄等等3d

  • 解釋:經過數據和數據之間發現的信息,幫助咱們理解一些問題,好比,經過實驗和分析數據,不少物理模型得以創建

  • 預測:經過分析和挖掘數據創建的模型,能夠用來在已知狀況下,去預測咱們感興趣的某些變量,幫助咱們採起相應的措施

  • 控制:也是在模型的基礎上,若是咱們但願達到某種結果,改如何改變某些能夠控制的變量。好比,咱們經過調整利率能夠達到管理經濟的目的

數據分析和數據挖掘,就是用來從數據中得到信息、模型、知識的一系列方法
其中,根據個人理解,數據分析相對傳統,通常是創建在假設檢驗的基礎上,對已知的模型進行參數估計等
而數據挖掘,通常是指發現數據中隱含的模式,或者咱們稱之爲知識、模型、均可以
常見的數據分析方法:如描述性統計、相關分析、迴歸分析等等;常見的數據挖掘方法:如分類、關聯、聚類、迴歸等等
具體指代的是什麼,有不少資料能夠查,我在這裏就不一一贅述了。
那麼咱們對這個話題總結一下的話,能夠歸納爲
「數據-信息-知識-智慧」
這個是業內常常被拿來講的「數據金字塔」
1,3,8,15,20,25,26,30,31,20,8,4
好比這串數字,咱們能夠稱之爲數據
若是再加點內容,這個表示了某個地區一年12個月(不肯定我是否是輸錯了)的氣溫,那麼這個叫信息
當咱們利用分析方法,發現平均氣溫的週期性,以及冬暖夏涼時,這個就稱之爲知識
至於如何應對這種週期性的氣溫變化,以及能對她作什麼,那就是智慧了。
我我的認爲,數據工做,也就到「知識」這個層面

clipboard.png

繼續下一個話題 : 2.數據建模
數據工做者就是能到達「知識」這個層面,尤爲是如今,即便alpha狗這麼厲害,它估計仍是分不清善惡,也很難作出有創意的決策 
因此數據工做者要看清本身的位置,那就是輔助決策。
固然一邊是數據工做者,一邊又是CEO的人是另外一回事,可是也要分不一樣的角色去扮演。。。
數據工做者實際工做中,是不會有人餵給你質量很好的數據的
書上那麼多高大上的算法,在現實中也是可貴一用的,通常是作了好幾個月數據清洗,挖掘以後,啥模式也沒有。。。。

那咱們就要說,數據工做者最重要的一個任務,就是根據業務去進行數據建模
什麼叫作數據建模?從我我的的理解,就是要把你所面對的業務轉變成數學問題(或者說數據問題)
也能夠用另外一句話來代替:就是要定義變量
要作好變量定義,其實要涉及到好幾個問題:1.對業務流程的理解 2. 對IT技術的理解 3. 對分析和挖掘方法的理解

  • 對業務流程的理解是指,如何定義變量,可使得數據輔助主營業務增收或者下降成本,甚至有增值價值?

  • 對IT技術的理解是指,這些變量是否可以被有效的收集和存儲?應該使用什麼樣的技術?

  • 數據積累下來了,能夠用什麼分析和挖掘的方法?(這個後面也會有討論)

舉一個例子:
以前咱們爲12301全媒體呼叫中心作數據分析,因爲沒有在一開始就介入到數據建模的工做,致使後面不少問題
12301是國家旅遊局的客服中心,承擔遊客對涉旅企事業單位的投訴、諮詢,協助國家旅遊局對旅遊秩序進行監管。你們能夠想象,它的業務模式是什麼?要考慮哪些方面的需求?
這裏是強調,數據建模時,必定要以業務做爲導向,才能定義到合適的變量
一個客服中心,考慮N方需求:用戶,企業,客服人員,系統,監管單位
遊客打電話進來,會投訴或者諮詢,下一步這個中心就要把這個問題專項被投訴企業或監管部門,這是主營業務 , 而後還有對投訴工單進行追蹤和反饋
同時,客服中心須要自我管理,也就是要提升工做效率,也就是但願能從數據裏看到客服人員的接訴情況
再同時,因爲客服中心常常會使用第三方的呼叫中心繫統,每每這些系統價格不菲,因此還須要使用數據來評估系統的使用情況
數據工做者只有在瞭解了業務模式以後,佔多多方的角度上考慮問題,從全局去找一個對全部方都優化的模型,那麼工單系統中須要記載的變量就相對容易的浮出來了
因此,這裏暫且不說什麼複雜的模型,光是要把實際業務抽取爲變量,就須要以業務導向。
當業務跑起來以後,數據以最好的姿式積累了下來以後,你的數據天然會變成價值連城的「大數據」
那麼基本流程是這樣的:定義變量--設計採集流程--參與系統開發--數據反饋--。。。
數據工做者先進行數據建模,而後設計和參與業務系統的開發,而後從數據角度對業務進行反饋。。。 這樣迭代
這一步,咱們能夠用另一句話來歸納:「先業務數據化,後數據業務化」

clipboard.png

前半句咱們已經說了,後半句實際上就是將咱們的數據進行分析和挖掘,體現其價值。
首先:變量的類型
先看看變量都有哪些類型

clipboard.png

這個圖很多人應該已經看過
變量大概分爲兩類:類別型,和數值型
這兩類其中又會再各分爲兩類 見圖片
爲何咱們要說變量的類型,緣由有兩個,第一:變量類型會影響數據所攜帶的信息量;第二:變量類型會影響後續的分析方式
我再給你們找一個似曾相識的圖

clipboard.png

這幅圖我不用多解釋了,你們有問題能夠後面再問
那麼對於變量類型,個人原則是,可以用數值型的就用數值型
緣由很簡單,數值型的能夠作離散化,轉換成類別型;反之則不成
因此我傾向於用冗餘的方式去作,能用數值型,就用數值型

第二條:變量的度量和粒度
舉個栗子更容易說清楚,
好比描述地理位置的變量
按照粒度從大到小,能夠是 洲-國家-省-市-縣等等
可是若是有經緯度,那我必定要經緯度
這個粒度最細
後續數據清洗的時候,我能夠輕易的把地理經緯度轉換成爲洲-國家-省-市-縣,固然這步須要藉助於一些數據辭典
這個原則呢,也就是要粒度最細,精度最高的方式來採集數據
定義變量
第三條,變量個數
這裏個人原則是,取得的變量最好不相關,也就是都是獨立測量的
好比說,若是有某類交易的總額和平均額,那麼我取一個就行了
這點比較明顯
可是有兩個地方可能會有坑

  1. 舉個例子

clipboard.png
那天有工人來我家安馬桶測量,須要肯定污水口中心到牆面的距離
理論上 R+d=D
因此測量兩個就夠了
可是呢,因爲污水口的中心點很難肯定,一般他們都會把三個值都測量一下
若是發現等式不成立,他們會從新測量
這裏就是由於有些變量的值的肯定會有不肯定因素,因此引入另外一個相關的做爲校準。
第二個坑:有時候會見到有些朋友會把一堆變量作不少計算後,衍生出不少新的變量,而後一塊兒放到模型裏去分析,這個就會出現變量之間的相關關係,也是咱們但願避免的。

爲何要避免 變量之間的相關關係?
分析數據的時候,自變量太多的話,咱們首先要作一降低維處理,否則分析的難度會很大,剛纔的衍生變量,實際上認爲的形成沒必要要人爲的維度的增長。固然,有些衍生變量與原變量之間是相互獨立的。

好,關於數據建模,大體講這麼多

clipboard.png

假設數據已經到手,先要「清洗」,清洗主要是處理 缺失值,不一致的取值,以及明顯錯誤的值,這點我們也不說了。髒活累活。。。。
這是對不參與系統開發的數據者的報應。。
假設數據到手了。。
你有一堆變量,多是來自數據庫,也多是文本文件,excel,。。。 這些也無所謂
咱們能作什麼分析
第一,數據分析的任務,就是想看一下這麼多變量之間是否有關係?
若是你發現木有關係,。。。。那麼好了,事情基本就結束了,全部的變量都是相互獨立的。。。 不相關的。。。。
然而事情並不會這樣子
通常都會有關係

經過相關分析,或者更多的,也是我更推薦的,是用可視化的探索性分析,你會發現不少有趣的關聯性
可視化探索分析能夠給數據分析人員不少指示性的方向,定性的。 這裏也強力推薦,可視化
可視化不光是給領導看的,也不光是講故事的,更多的是分析用的 當咱們發現變量間存在相關性的時候,這時候迴歸基本上能夠解決大部分問題
這裏的迴歸,指的是廣義的迴歸

clipboard.png

見圖,圖來自《R語言實戰》
跑完了迴歸分析,基本上解釋、預測、控制,不少工做就能夠作了
能夠說,大部分狀況下,迴歸均可以勝任了。
我把以迴歸爲表明的模型,稱做「統計模型」
不少時候,咱們使用統計模型,注重關聯性,可是不注重因果
然而統計模型對數據實際上有假設的
舉個例子
異常值的判斷: 一般一個方法,是用樣本均值加減三倍的樣本方差
在這以外的數據點,咱們認爲是異常值(<1%的機率會出現的值)
這裏有個假設,那麼就是你認爲樣本數據是正態分佈的。
然而未必
另外一個例子,好比說咱們在作天文觀測的時候,要計算落在CCD上的光子的個數
計數的變量,大多數狀況下,並不是正態分佈,而是泊松分佈,那麼異常值就不能夠用剛纔說的方法來作
好比,網頁的點擊數,等等
固然,有泊松迴歸能夠解決相似問題
在迴歸的過程當中,會有對變量進行冪次變化的交互過程
最後會獲得一個經驗公式
好比 y=x^a
若是前輩有人已經產生了這樣的模型,一般咱們會拿來用,可是經過擬合的方式,來肯定參數a
使用這種模型,我稱之爲「經驗模型」
第三種模型,由於我是物理出身的,每每以爲會是究極一些,就是物理模型
雖然通常來講用不上吧
實際上在大數據行業的現階段,重關聯,不重因果,也就是每每會用統計模型去研究大數據中的價值
一方面是由於,統計模型夠用了,還有不少價值沒有被挖掘;
另外一方面是,如此大量的數據,使用物理模型去研究,計算量過於昂貴
而後物理模型很是有用,能夠幫咱們來判斷什麼樣的分析方式更合適
舉個例子
價格
物價也好,股價也好,如今都有比較成熟的物理模型驗證了,價格是對數正態分佈;
好比人的滿意度,也並不是線性的,也是對數形式的
也就是說,你若是想讓另外一我的對你的滿意度提升1倍,你對他的好大概要提升10倍,也就是一個量級。。。。
追妹子的同窗注意了,物理模型教你控制成本。
固然了,實際上
物理模型在歷史上的創建,也是從統計模型到經驗模型,逐步創建的。。。
好,關於這個話題呢,咱們總結一下,就是拿到數據以後分析和挖掘的方向

最主要的任務,就是要探究變量之間的關係
無論是數據分析也好,仍是數據挖掘的各類算法也好

clipboard.png

第5個話題 抽樣和數據量
這點剛纔有位同窗提到過,如何檢驗數據質量
這裏面就是抽樣科學研究的問題
好的抽樣,是指樣本相對於整體,有表明性,樣本足夠大
有表明性,能夠經過檢查樣本變量的分佈,是否與整體分佈一致來確認
樣本是否夠大,除了經驗性的認爲,「多一個變量,就多30條記錄」之外,還有一個辦法叫作功效分析
功效分析研究四個因素的關係,這是基於數據分析的思想(假設檢驗)
四個因素分別是:顯著水平α,功效(1-第二類錯誤的機率),樣本大小,和效應值
在抽樣以前能夠作一下這類分析,來肯定此次分析是否值得。
具體內容呢,因爲時間關係,你們能夠參考有關資料

固然,如今大數據的一個思想,是說」我要所有「
全部的數據都由於採集成本低而均可以歸入囊中
那麼就是另外一個問題了,有了大數據平臺的支持,與剛纔咱們說的小樣本數據分析會有些不一樣。
可是數據工做者大多數時候,仍是會遇到小樣本問題

這些工做如何作,你們確實須要好好研讀一下統計分析建模、機率論等書籍
綜合起來呢,數據工做者若是想得到高質量的數據,數據建模是最重要的,而好的建模是創建在對業務的理解和抽象基礎上的。

PS:大數據的挖掘分析,如今有比較成熟的變現方式嗎?或者您看好哪些方向更容易出商業價值? 計算廣告
用大數據去下降成本,也算是變現吧。。。

PS2:有沒什麼數理統計一塊能夠走的?理論上的數理統計你如何評判它的準確性?行爲心理學裏,我如今用現實調查的數據很難作出什麼結果,有沒有什麼研究理論一塊的路子能夠介紹着走一走呢?有本書,叫作 市場調查 基於R語言 周庭銳老師寫的,調查問卷也是有不少坑的,若是是市場調查的話,好像不太適合用模擬仿真之類

相關文章
相關標籤/搜索