數據挖掘核心算法之一--迴歸

       迴歸,是一個廣義的概念,包含的基本概念是用一羣變量預測另外一個變量的方法,白話就是根據幾件事情的相關程度,用其中幾件來預測另外一件事情發生的機率,最簡單的即線性二變量問題(即簡單線性),例以下午我老婆要買個包,我沒買,那結果就是我確定沒有晚飯吃;複雜一點就是多變量(即多元線性,這裏有一點要注意的,由於我最先之前犯過這個錯誤,就是認爲預測變量越多越好,作模型的時候總但願選取幾十個指標來預測,可是要知道,一方面,每增長一個變量,就至關於在這個變量上增長了偏差,變相的擴大了總體偏差,尤爲當自變量選擇不當的時候,影響更大,另外一個方面,當選擇的倆個自變量自己就是高度相關而不獨立的時候,倆個指標至關於對結果形成了雙倍的影響 ),仍是上面那個例子,若是我丈母孃來了,那我老婆就有很大機率作飯;若是在加一個事件,若是我老丈人也來了,那我老婆確定會作飯;爲何會有這些判斷,由於這些都是之前屢次發生的,因此我能夠根據這幾件事情來預測我老婆會不會作晚飯。
        大數據時代的問題固然不能讓你用肉眼看出來,否則要海量計算有啥用,因此除了上面那倆種迴歸,咱們常常用的還有多項式迴歸,即模型的關係是n階多項式;邏輯迴歸(相似方法包括決策樹),即結果是分類變量的預測;泊松迴歸,即結果變量表明瞭頻數;非線性迴歸、時間序列迴歸、自迴歸等等,太多了,這裏主要講幾種經常使用的,好解釋的(全部的模型咱們都要注意一個問題,就是要好解釋,不論是參數選擇仍是變量選擇仍是結果,由於模型建好了最終用的是業務人員,看結果的是老闆,你要給他們解釋,若是你說結果就是這樣,我也不知道問什麼,那升職加薪基本無望了),例如你發現日照時間和某地葡萄銷量有正比關係,那你可能還要解釋爲何有正比關係,進一步統計發現日照時間和葡萄的含糖量是相關的,即日照時間長葡萄好吃,另外日照時間和產量有關,日照時間長,產量大,價格天然低,結果是又便宜又好吃的葡萄銷量確定大。再舉一個例子,某石油產地的咖啡銷量增大,國際油價的就會下跌,這倆者有關係,你除了要告訴領導這倆者有關係,你還要去尋找爲何有關係,咖啡是提高工人精力的主要飲料,咖啡銷量變大,跟蹤發現工人的工做強度變大,石油運輸出口增多,油價下跌和咖啡銷量的關係就出來了(單純的例子,不要多想,參考了一個根據遙感信息獲取船舶信息來預測糧食價格的真實案例,感受不夠典型,就換一個,實際油價是人爲操控地)。
       迴歸利器--最小二乘法,牛逼數學家高斯用的(另外一個法國數學家說本身先創立的,不過沒辦法,誰讓高斯出名呢),這個方法主要就是根據樣本數據,找到樣本和預測的關係,使得預測和真實值之間的偏差和最小;和我上面舉的老婆作晚飯的例子相似,不過我那個例子在不肯定的方面只說了大機率,可是到底多大機率,就是用最小二乘法把這個關係式寫出來的,這裏不講最小二乘法和公式了,使用工具就能夠了,基本全部的數據分析工具都提供了這個方法的函數,主要給你們講一下以前的一個誤區,最小二乘法在任何狀況下均可以算出來一個等式,由於這個方法只是使偏差和最小,因此哪怕是天大的偏差,他只要是偏差和裏面最小的,就是該方法的結果,寫到這裏你們應該知道我要說什麼了,就算自變量和因變量徹底沒有關係,該方法都會算出來一個結果,因此主要給你們講一下最小二乘法對數據集的要求:
    一、正態性:對於固定的自變量,因變量呈正態性,意思是對於同一個答案,大部分緣由是集中的;作迴歸模型,用的就是大量的Y~X映射樣原本回歸,若是引發Y的樣本很凌亂,那就沒法迴歸
    二、獨立性:每一個樣本的Y都是相互獨立的,這個很好理解,答案和答案之間不能有聯繫,就像擲硬幣同樣,若是第一次是反面,讓你預測拋兩次有反面的機率,那結果就不必預測了
    三、線性:就是X和Y是相關的,其實世間萬物都是相關的,蝴蝶和龍捲風(仍是海嘯來着)都是有關的嘛,只是直接相關仍是間接相關的關係,這裏的相關是指自變量和因變量直接相關
    四、同方差性:因變量的方差不隨自變量的水平不一樣而變化。方差我在描述性統計量分析裏面寫過,表示的數據集的變異性,因此這裏的要求就是結果的變異性是不變的,舉例,腦殼軸了,想不出例子,畫個圖來講明。(咱們但願每個自變量對應的結果都是在一個儘可能小的範圍)函數

                   

       咱們用迴歸方法建模,要儘可能消除上述幾點的影響,下面具體講一下簡單迴歸的流程(其餘的其實都相似,能把這個講清楚了,其餘的也差很少):工具

       first,找指標,找你要預測變量的相關指標(第一步應該是找你要預測什麼變量,這個話題有點大,涉及你的業務目標,老闆的目的,達到該目的最關鍵的業務指標等等,咱們後續的話題在聊,這裏先把方法講清楚),找相關指標,標準作法是業務專家出一些指標,咱們在測試這些指標哪些相關性高,可是我經歷的大部分公司業務人員在建模初期是不靠譜的(真的不靠譜,沒思路,沒想法,沒意見),因此個人作法是將該業務目的全部相關的指標都拿到(有時候上百個),而後跑一個相關性分析,在來個主成分分析,就過濾的差很少了,而後給業務專家看,這時候他們就有思路了(先要有東西激活他們),會給一些你想不到的指標。預測變量是最重要的,直接關係到你的結果和產出,因此這是一個多輪優化的過程。測試

       第二,找數據,這個就很少說了,要麼按照時間軸找(我認爲比較好的方式,大部分是有規律的),要麼按照橫切面的方式,這個就意味橫切面的不一樣點可能波動較大,要當心一點;同時對數據的基本處理要有,包括對極值的處理以及空值的處理。大數據

       第三, 創建迴歸模型,這步是最簡單的,全部的挖掘工具都提供了各類迴歸方法,你的任務就是把前面準備的東西告訴計算機就能夠了。優化

       第四,檢驗和修改,咱們用工具計算好的模型,都有各類假設檢驗的係數,你能夠立刻看到你這個模型的好壞,同時去修改和優化,這裏主要就是涉及到一個查準率,表示預測的部分裏面,真正正確的所佔比例;另外一個是查全率,表示了所有真正正確的例子,被預測到的機率;查準率和查全率通常狀況下成反比,因此咱們要找一個平衡點。spa

        第五,解釋,使用,這個就是見證奇蹟的時刻了,見證前通常有好久時間,這個時間就是你給老闆或者客戶解釋的時間了,解釋爲啥有這些變量,解釋爲啥咱們選擇這個平衡點(是由於業務力量不足仍是其餘的),爲啥作了這麼久出的東西這麼差(這個就尷尬了)等等。事件

         迴歸就先和你們聊這麼多,下一輪給你們聊聊主成分分析和相關性分析的研究,而後在聊聊數據挖掘另外一個利器--聚類。數據分析

相關文章
相關標籤/搜索