⑴ 數據挖掘核心演算法之一--回歸
數據挖掘核心演算法之一--回歸
回歸,是一個廣義的概念,包含的基本概念是用一群變數預測另一個變數的方法,白話就是根據幾件事情的相關程度,用其中幾件來預測另一件事情發生的概率,最簡單的即線性二變數問題(即簡單線性),例如下午我老婆要買個包,我沒買,那結果就是我肯定沒有晚飯吃;復雜一點就是多變數(即多元線性,這里有一點要注意的,因為我最早以前犯過這個錯誤,就是認為預測變數越多越好,做模型的時候總希望選取幾十個指標來預測,但是要知道,一方面,每增加一個變數,就相當於在這個變數上增加了誤差,變相的擴大了整體誤差,尤其當自變數選擇不當的時候,影響更大,另一個方面,當選擇的倆個自變數本身就是高度相關而不獨立的時候,倆個指標相當於對結果造成了雙倍的影響),還是上面那個例子,如果我丈母娘來了,那我老婆就有很大概率做飯;如果在加一個事件,如果我老丈人也來了,那我老婆肯定會做飯;為什麼會有這些判斷,因為這些都是以前多次發生的,所以我可以根據這幾件事情來預測我老婆會不會做晚飯。
大數據時代的問題當然不能讓你用肉眼看出來,不然要海量計算有啥用,所以除了上面那倆種回歸,我們經常用的還有多項式回歸,即模型的關系是n階多項式;邏輯回歸(類似方法包括決策樹),即結果是分類變數的預測;泊松回歸,即結果變數代表了頻數;非線性回歸、時間序列回歸、自回歸等等,太多了,這里主要講幾種常用的,好解釋的(所有的模型我們都要注意一個問題,就是要好解釋,不管是參數選擇還是變數選擇還是結果,因為模型建好了最終用的是業務人員,看結果的是老闆,你要給他們解釋,如果你說結果就是這樣,我也不知道問什麼,那升職加薪基本無望了),例如你發現日照時間和某地葡萄銷量有正比關系,那你可能還要解釋為什麼有正比關系,進一步統計發現日照時間和葡萄的含糖量是相關的,即日照時間長葡萄好吃,另外日照時間和產量有關,日照時間長,產量大,價格自然低,結果是又便宜又好吃的葡萄銷量肯定大。再舉一個例子,某石油產地的咖啡銷量增大,國際油價的就會下跌,這倆者有關系,你除了要告訴領導這倆者有關系,你還要去尋找為什麼有關系,咖啡是提升工人精力的主要飲料,咖啡銷量變大,跟蹤發現工人的工作強度變大,石油運輸出口增多,油價下跌和咖啡銷量的關系就出來了(單純的例子,不要多想,參考了一個根據遙感信息獲取船舶信息來預測糧食價格的真實案例,感覺不夠典型,就換一個,實際油價是人為操控地)。
回歸利器--最小二乘法,牛逼數學家高斯用的(另一個法國數學家說自己先創立的,不過沒辦法,誰讓高斯出名呢),這個方法主要就是根據樣本數據,找到樣本和預測的關系,使得預測和真實值之間的誤差和最小;和我上面舉的老婆做晚飯的例子類似,不過我那個例子在不確定的方面只說了大概率,但是到底多大概率,就是用最小二乘法把這個關系式寫出來的,這里不講最小二乘法和公式了,使用工具就可以了,基本所有的數據分析工具都提供了這個方法的函數,主要給大家講一下之前的一個誤區,最小二乘法在任何情況下都可以算出來一個等式,因為這個方法只是使誤差和最小,所以哪怕是天大的誤差,他只要是誤差和裡面最小的,就是該方法的結果,寫到這里大家應該知道我要說什麼了,就算自變數和因變數完全沒有關系,該方法都會算出來一個結果,所以主要給大家講一下最小二乘法對數據集的要求:
1、正態性:對於固定的自變數,因變數呈正態性,意思是對於同一個答案,大部分原因是集中的;做回歸模型,用的就是大量的Y~X映射樣本來回歸,如果引起Y的樣本很凌亂,那就無法回歸
2、獨立性:每個樣本的Y都是相互獨立的,這個很好理解,答案和答案之間不能有聯系,就像擲硬幣一樣,如果第一次是反面,讓你預測拋兩次有反面的概率,那結果就沒必要預測了
3、線性:就是X和Y是相關的,其實世間萬物都是相關的,蝴蝶和龍卷風(還是海嘯來著)都是有關的嘛,只是直接相關還是間接相關的關系,這里的相關是指自變數和因變數直接相關
4、同方差性:因變數的方差不隨自變數的水平不同而變化。方差我在描述性統計量分析裡面寫過,表示的數據集的變異性,所以這里的要求就是結果的變異性是不變的,舉例,腦袋軸了,想不出例子,畫個圖來說明。(我們希望每一個自變數對應的結果都是在一個盡量小的范圍)
我們用回歸方法建模,要盡量消除上述幾點的影響,下面具體講一下簡單回歸的流程(其他的其實都類似,能把這個講清楚了,其他的也差不多):
first,找指標,找你要預測變數的相關指標(第一步應該是找你要預測什麼變數,這個話題有點大,涉及你的業務目標,老闆的目的,達到該目的最關鍵的業務指標等等,我們後續的話題在聊,這里先把方法講清楚),找相關指標,標准做法是業務專家出一些指標,我們在測試這些指標哪些相關性高,但是我經歷的大部分公司業務人員在建模初期是不靠譜的(真的不靠譜,沒思路,沒想法,沒意見),所以我的做法是將該業務目的所有相關的指標都拿到(有時候上百個),然後跑一個相關性分析,在來個主成分分析,就過濾的差不多了,然後給業務專家看,這時候他們就有思路了(先要有東西激活他們),會給一些你想不到的指標。預測變數是最重要的,直接關繫到你的結果和產出,所以這是一個多輪優化的過程。
第二,找數據,這個就不多說了,要麼按照時間軸找(我認為比較好的方式,大部分是有規律的),要麼按照橫切面的方式,這個就意味橫切面的不同點可能波動較大,要小心一點;同時對數據的基本處理要有,包括對極值的處理以及空值的處理。
第三, 建立回歸模型,這步是最簡單的,所有的挖掘工具都提供了各種回歸方法,你的任務就是把前面准備的東西告訴計算機就可以了。
第四,檢驗和修改,我們用工具計算好的模型,都有各種假設檢驗的系數,你可以馬上看到你這個模型的好壞,同時去修改和優化,這里主要就是涉及到一個查准率,表示預測的部分裡面,真正正確的所佔比例;另一個是查全率,表示了全部真正正確的例子,被預測到的概率;查准率和查全率一般情況下成反比,所以我們要找一個平衡點。
第五,解釋,使用,這個就是見證奇跡的時刻了,見證前一般有很久時間,這個時間就是你給老闆或者客戶解釋的時間了,解釋為啥有這些變數,解釋為啥我們選擇這個平衡點(是因為業務力量不足還是其他的),為啥做了這么久出的東西這么差(這個就尷尬了)等等。
回歸就先和大家聊這么多,下一輪給大家聊聊主成分分析和相關性分析的研究,然後在聊聊數據挖掘另一個利器--聚類。
⑵ 數據挖掘演算法有哪些
統計和可視化要想建立一個好的預言模型,你必須了解自己的數據。最基本的方法是計算各種統計變數(平均值、方差等)和察看數據的分布情況。你也可以用數據透視表察看多維數據。數據的種類可分為連續的,有一個用數字表示的值(比如銷售量)或離散的,分成一個個的類別(如紅、綠、藍)。離散數據可以進一步分為可排序的,數據間可以比較大小(如,高、中、低)和標稱的,不可排序(如郵政編碼)。圖形和可視化工具在數據准備階段尤其重要,它能讓你快速直觀的分析數據,而不是給你枯燥乏味的文本和數字。它不僅讓你看到整個森林,還允許你拉近每一棵樹來察看細節。在圖形模式下人們很容易找到數據中可能存在的模式、關系、異常等,直接看數字則很難。可視化工具的問題是模型可能有很多維或變數,但是我們只能在2維的屏幕或紙上展示它。比如,我們可能要看的是信用風險與年齡、性別、婚姻狀況、參加工作時間的關系。因此,可視化工具必須用比較巧妙的方法在兩維空間內展示n維空間的數據。雖然目前有了一些這樣的工具,但它們都要用戶「訓練」過他們的眼睛後才能理解圖中畫的到底是什麼東西。對於眼睛有色盲或空間感不強的人,在使用這些工具時可能會遇到困難。聚集(分群)聚集是把整個資料庫分成不同的群組。它的目的是要群與群之間差別很明顯,而同一個群之間的數據盡量相似。與分類不同(見後面的預測型數據挖掘),在開始聚集之前你不知道要把數據分成幾組,也不知道怎麼分(依照哪幾個變數)。因此在聚集之後要有一個對業務很熟悉的人來解釋這樣分群的意義。很多情況下一次聚集你得到的分群對你的業務來說可能並不好,這時你需要刪除或增加變數以影響分群的方式,經過幾次反復之後才能最終得到一個理想的結果。神經元網路和K-均值是比較常用的聚集演算法。不要把聚集與分類混淆起來。在分類之前,你已經知道要把數據分成哪幾類,每個類的性質是什麼,聚集則恰恰相反。關聯分析關聯分析是尋找資料庫中值的相關性。兩種常用的技術是關聯規則和序列模式。關聯規則是尋找在同一個事件中出現的不同項的相關性,比如在一次購買活動中所買不同商品的相關性。序列模式與此類似,他尋找的是事件之間時間上的相關性,如對股票漲跌的分析。關聯規則可記為A==>B,A稱為前提和左部(LHS),B稱為後續或右部(RHS)。如關聯規則「買錘子的人也會買釘子」,左部是「買錘子」,右部是「買釘子」。要計算包含某個特定項或幾個項的事務在資料庫中出現的概率只要在資料庫中直接統計即可。某一特定關聯(「錘子和釘子」)在資料庫中出現的頻率稱為支持度。比如在總共1000個事務中有15個事務同時包含了「錘子和釘子」,則此關聯的支持度為1.5%。非常低的支持度(比如1百萬個事務中只有一個)可能意味著此關聯不是很重要,或出現了錯誤數據(如,「男性和懷孕」)。要找到有意義的規則,我們還要考察規則中項及其組合出現的相對頻率。當已有A時,B發生的概率是多少?也即概率論中的條件概率。回到我們的例子,也就是問「當一個人已經買了錘子,那他有多大的可能也會買釘子?」這個條件概率在數據挖掘中也稱為可信度,計算方法是求百分比:(A與B同時出現的頻率)/(A出現的頻率)。讓我們用一個例子更詳細的解釋這些概念: 總交易筆數(事務數):1,000包含「錘子」:50包含「釘子」:80包含「鉗子」:20包含「錘子」和「釘子」:15包含「鉗子」和「釘子」:10包含「錘子」和「鉗子」:10包含「錘子」、「鉗子」和「釘子」:5 則可以計算出: 「錘子和釘子」的支持度=1.5%(15/1,000)「錘子、釘子和鉗子」的支持度=0.5%(5/1,000)「錘子==>釘子」的可信度=30%(15/50)「釘子==>錘子」的可信度=19%(15/80)「錘子和釘子==>鉗子」的可信度=33%(5/15)「鉗子==>錘子和釘子」的可信度=25%(5/20)
⑶ 數據挖掘模型和數據挖掘演算法是一回事嗎
你是不是看到SQL Server的SSAS?
模型是指包含一種或多種演算法組成一個流程,將數據套進去得到結果。
演算法廣泛的說就是一切能解決問題的方法。
簡化的說(估計是你這個意思)就是其中部分,演算法是別人獨立思考出來的,一般會歸納成一類一類的
⑷ 精準派車是什麼意思
精準派車是指通過數據分析和智能演算法,針對不同場景和需求,精確預測乘客的出行時間和路線,並為其派發最優的出行方案和車輛,以提高用車效率和用戶體驗。該技術已經在網約車平台、計程車調度、物流配送等領域得到廣泛應用,成為智慧城市建設的重要組成部分。
精準派車是通過龐大的數據積累和人工智慧演算法來實現的,主要包括數據採集、數據處理和決策模型三個階段。其中數據採集是指對乘客、車輛和路況等信息進行實時、准確的收集和記錄;數據處理是指通過大數據分析和挖掘演算法,建立起完整有效的數據指標體系,並獲得乘客需求、車輛狀態和交通狀況等各項數據指標;決策模型是指通過建立基於規則、基於經驗和基於數學模型的多維度決策演算法,預測出最優的車輛派發路徑和運營計劃。
精準派車技術具有提高出行效率、降低能源消耗、減少環境污染和提升用戶滿意度等諸多優勢。未來,隨著5G、物聯網、智能城市等技術的不斷升級和推廣,精準派車將更加普及和深入,成為城市交通管理智慧化、綠色化、高效化的重要手段和路徑。同時,還可以為出行行業、物流產業、創新創業等領域帶來巨大的發展機遇和市場前景。