❶ 數據挖掘核心演算法之一--回歸
數據挖掘核心演算法之一--回歸
回歸,是一個廣義的概念,包含的基本概念是用一群變數預測另一個變數的方法,白話就是根據幾件事情的相關程度,用其中幾件來預測另一件事情發生的概率,最簡單的即線性二變數問題(即簡單線性),例如下午我老婆要買個包,我沒買,那結果就是我肯定沒有晚飯吃;復雜一點就是多變數(即多元線性,這里有一點要注意的,因為我最早以前犯過這個錯誤,就是認為預測變數越多越好,做模型的時候總希望選取幾十個指標來預測,但是要知道,一方面,每增加一個變數,就相當於在這個變數上增加了誤差,變相的擴大了整體誤差,尤其當自變數選擇不當的時候,影響更大,另一個方面,當選擇的倆個自變數本身就是高度相關而不獨立的時候,倆個指標相當於對結果造成了雙倍的影響),還是上面那個例子,如果我丈母娘來了,那我老婆就有很大概率做飯;如果在加一個事件,如果我老丈人也來了,那我老婆肯定會做飯;為什麼會有這些判斷,因為這些都是以前多次發生的,所以我可以根據這幾件事情來預測我老婆會不會做晚飯。
大數據時代的問題當然不能讓你用肉眼看出來,不然要海量計算有啥用,所以除了上面那倆種回歸,我們經常用的還有多項式回歸,即模型的關系是n階多項式;邏輯回歸(類似方法包括決策樹),即結果是分類變數的預測;泊松回歸,即結果變數代表了頻數;非線性回歸、時間序列回歸、自回歸等等,太多了,這里主要講幾種常用的,好解釋的(所有的模型我們都要注意一個問題,就是要好解釋,不管是參數選擇還是變數選擇還是結果,因為模型建好了最終用的是業務人員,看結果的是老闆,你要給他們解釋,如果你說結果就是這樣,我也不知道問什麼,那升職加薪基本無望了),例如你發現日照時間和某地葡萄銷量有正比關系,那你可能還要解釋為什麼有正比關系,進一步統計發現日照時間和葡萄的含糖量是相關的,即日照時間長葡萄好吃,另外日照時間和產量有關,日照時間長,產量大,價格自然低,結果是又便宜又好吃的葡萄銷量肯定大。再舉一個例子,某石油產地的咖啡銷量增大,國際油價的就會下跌,這倆者有關系,你除了要告訴領導這倆者有關系,你還要去尋找為什麼有關系,咖啡是提升工人精力的主要飲料,咖啡銷量變大,跟蹤發現工人的工作強度變大,石油運輸出口增多,油價下跌和咖啡銷量的關系就出來了(單純的例子,不要多想,參考了一個根據遙感信息獲取船舶信息來預測糧食價格的真實案例,感覺不夠典型,就換一個,實際油價是人為操控地)。
回歸利器--最小二乘法,牛逼數學家高斯用的(另一個法國數學家說自己先創立的,不過沒辦法,誰讓高斯出名呢),這個方法主要就是根據樣本數據,找到樣本和預測的關系,使得預測和真實值之間的誤差和最小;和我上面舉的老婆做晚飯的例子類似,不過我那個例子在不確定的方面只說了大概率,但是到底多大概率,就是用最小二乘法把這個關系式寫出來的,這里不講最小二乘法和公式了,使用工具就可以了,基本所有的數據分析工具都提供了這個方法的函數,主要給大家講一下之前的一個誤區,最小二乘法在任何情況下都可以算出來一個等式,因為這個方法只是使誤差和最小,所以哪怕是天大的誤差,他只要是誤差和裡面最小的,就是該方法的結果,寫到這里大家應該知道我要說什麼了,就算自變數和因變數完全沒有關系,該方法都會算出來一個結果,所以主要給大家講一下最小二乘法對數據集的要求:
1、正態性:對於固定的自變數,因變數呈正態性,意思是對於同一個答案,大部分原因是集中的;做回歸模型,用的就是大量的Y~X映射樣本來回歸,如果引起Y的樣本很凌亂,那就無法回歸
2、獨立性:每個樣本的Y都是相互獨立的,這個很好理解,答案和答案之間不能有聯系,就像擲硬幣一樣,如果第一次是反面,讓你預測拋兩次有反面的概率,那結果就沒必要預測了
3、線性:就是X和Y是相關的,其實世間萬物都是相關的,蝴蝶和龍卷風(還是海嘯來著)都是有關的嘛,只是直接相關還是間接相關的關系,這里的相關是指自變數和因變數直接相關
4、同方差性:因變數的方差不隨自變數的水平不同而變化。方差我在描述性統計量分析裡面寫過,表示的數據集的變異性,所以這里的要求就是結果的變異性是不變的,舉例,腦袋軸了,想不出例子,畫個圖來說明。(我們希望每一個自變數對應的結果都是在一個盡量小的范圍)
我們用回歸方法建模,要盡量消除上述幾點的影響,下面具體講一下簡單回歸的流程(其他的其實都類似,能把這個講清楚了,其他的也差不多):
first,找指標,找你要預測變數的相關指標(第一步應該是找你要預測什麼變數,這個話題有點大,涉及你的業務目標,老闆的目的,達到該目的最關鍵的業務指標等等,我們後續的話題在聊,這里先把方法講清楚),找相關指標,標准做法是業務專家出一些指標,我們在測試這些指標哪些相關性高,但是我經歷的大部分公司業務人員在建模初期是不靠譜的(真的不靠譜,沒思路,沒想法,沒意見),所以我的做法是將該業務目的所有相關的指標都拿到(有時候上百個),然後跑一個相關性分析,在來個主成分分析,就過濾的差不多了,然後給業務專家看,這時候他們就有思路了(先要有東西激活他們),會給一些你想不到的指標。預測變數是最重要的,直接關繫到你的結果和產出,所以這是一個多輪優化的過程。
第二,找數據,這個就不多說了,要麼按照時間軸找(我認為比較好的方式,大部分是有規律的),要麼按照橫切面的方式,這個就意味橫切面的不同點可能波動較大,要小心一點;同時對數據的基本處理要有,包括對極值的處理以及空值的處理。
第三, 建立回歸模型,這步是最簡單的,所有的挖掘工具都提供了各種回歸方法,你的任務就是把前面准備的東西告訴計算機就可以了。
第四,檢驗和修改,我們用工具計算好的模型,都有各種假設檢驗的系數,你可以馬上看到你這個模型的好壞,同時去修改和優化,這里主要就是涉及到一個查准率,表示預測的部分裡面,真正正確的所佔比例;另一個是查全率,表示了全部真正正確的例子,被預測到的概率;查准率和查全率一般情況下成反比,所以我們要找一個平衡點。
第五,解釋,使用,這個就是見證奇跡的時刻了,見證前一般有很久時間,這個時間就是你給老闆或者客戶解釋的時間了,解釋為啥有這些變數,解釋為啥我們選擇這個平衡點(是因為業務力量不足還是其他的),為啥做了這么久出的東西這么差(這個就尷尬了)等等。
回歸就先和大家聊這么多,下一輪給大家聊聊主成分分析和相關性分析的研究,然後在聊聊數據挖掘另一個利器--聚類。
❷ 數據挖掘演算法 PageRank
數據挖掘演算法:PageRank
1. 引言
PageRank是Sergey Brin與Larry Page於1998年在WWW7會議上提出來的,用來解決鏈接分析中網頁排名的問題。在衡量一個網頁的排名,直覺告訴我們:
1、當一個網頁被更多網頁所鏈接時,其排名會越靠前;
2、排名高的網頁應具有更大的表決權,即當一個網頁被排名高的網頁所鏈接時,其重要性也應對應提高。
對於這兩個直覺,PageRank演算法所建立的模型非常簡單:一個網頁的排名等於所有鏈接到該網頁的網頁的加權排名之和:
PRi表示第i個網頁的PageRank值,用以衡量每一個網頁的排名;若排名越高,則其PageRank值越大。
網頁之間的鏈接關系可以表示成一個有向圖代表了網頁j鏈接到了網頁i;Oj為網頁j的出度,也可看作網頁j的外鏈數( the number of out-links)。
假定P=(PR1,PR2,?,PRn)T為n維PageRank值向量,A為有向圖G所對應的轉移矩陣,
n個等式(1)可改寫為矩陣相乘:
但是,為了獲得某個網頁的排名,而需要知道其他網頁的排名,這不就等同於「是先有雞還是先有蛋」的問題了么?幸運的是,PageRank採用power iteration方法破解了這個問題怪圈。欲知詳情,請看下節分解。
2. 求解
為了對上述及以下求解過程有個直觀的了解,我們先來看一個例子,網頁鏈接關系圖如下圖所示:
那麼,矩陣A即為
所謂power iteration,是指先給定一個P的初始值P0,然後通過多輪迭代求解:
最後收斂於||Pk?Pk?1||<ξ,即差別小於某個閾值。
我們發現式子(2)為一個特徵方程(characteristic equation),並且解P是當特徵值(eigenvalue)為1時的特徵向量(eigenvector)。為了滿足(2)是有解的,則矩陣A應滿足如下三個性質:
1、stochastic matrix,則行至少存在一個非零值,即必須存在一個外鏈接(沒有外鏈接的網頁被稱為dangling pages);
2、不可約(irrecible),即矩陣A所對應的有向圖G必須是強連通的,對於任意兩個節點u,v∈V,存在一個從u到v的路徑;
3、非周期性(aperiodic),即每個節點存在自迴路。
顯然,一般情況下矩陣A這三個性質均不滿足。為了滿足性質stochastic matrix,可以把全為0的行替換為e/n,其中e為單位向量;同時為了滿足性質不可約、非周期,需要做平滑處理:
其中,d為 damping factor,常置為0與1之間的一個常數;E為單位陣。那麼,式子(1)被改寫為
❸ 數據挖掘的十大經典演算法,總算是講清楚了,想提升自己的趕快收藏
一個優秀的數據分析師,除了要掌握基本的統計學、數據分析思維、數據分析工具之外,還需要掌握基本的數據挖掘思想,幫助我們挖掘出有價值的數據,這也是數據分析專家和一般數據分析師的差距所在。
國際權威的學術組織the IEEE International Conference on Data Mining (ICDM) 評選出了數據挖掘領域的十大經典演算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.
不僅僅是選中的十大演算法,其實參加評選的18種演算法,實際上隨便拿出一種來都可以稱得上是經典演算法,它們在數據挖掘領域都產生了極為深遠的影響。今天主要分享其中10種經典演算法,內容較干,建議收藏備用學習。
1. C4.5
C4.5演算法是機器學習演算法中的一種分類決策樹演算法,其核心演算法是ID3演算法. C4.5演算法繼承了ID3演算法的優點,並在以下幾方面對ID3演算法進行了改進:
1) 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足;
2) 在樹構造過程中進行剪枝;
3) 能夠完成對連續屬性的離散化處理;
4) 能夠對不完整數據進行處理。
C4.5演算法有如下優點:產生的分類規則易於理解,准確率較高。其缺點是:在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致演算法的低效(相對的CART演算法只需要掃描兩次數據集,以下僅為決策樹優缺點)。
2. The k-means algorithm 即K-Means演算法
k-means algorithm演算法是一個聚類演算法,把n的對象根據他們的屬性分為k個分割,k < n。它與處理混合正態分布的最大期望演算法很相似,因為他們都試圖找到數據中自然聚類的中心。它假設對象屬性來自於空間向量,並且目標是使各個群組內部的均 方誤差總和最小。
3. Support vector machines
支持向量機,英文為Support Vector Machine,簡稱SV機(論文中一般簡稱SVM)。它是一種監督式學習的方法,它廣泛的應用於統計分類以及回歸分析中。支持向量機將向量映射到一個更 高維的空間里,在這個空間里建立有一個最大間隔超平面。在分開數據的超平面的兩邊建有兩個互相平行的超平面。分隔超平面使兩個平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總誤差越小。一個極好的指南是C.J.C Burges的《模式識別支持向量機指南》。van der Walt 和 Barnard 將支持向量機和其他分類器進行了比較。
4. The Apriori algorithm
Apriori演算法是一種最有影響的挖掘布爾關聯規則頻繁項集的演算法。其核心是基於兩階段頻集思想的遞推演算法。該關聯規則在分類上屬於單維、單層、布爾關聯規則。在這里,所有支持度大於最小支持度的項集稱為頻繁項集,簡稱頻集。
5. 最大期望(EM)演算法
在統計計算中,最大期望(EM,Expectation–Maximization)演算法是在概率(probabilistic)模型中尋找參數最大似然 估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variabl)。最大期望經常用在機器學習和計算機視覺的數據集聚(Data Clustering)領域。
6. PageRank
PageRank是Google演算法的重要內容。2001年9月被授予美國專利,專利人是Google創始人之一拉里·佩奇(Larry Page)。因此,PageRank里的page不是指網頁,而是指佩奇,即這個等級方法是以佩奇來命名的。
PageRank根據網站的外部鏈接和內部鏈接的數量和質量倆衡量網站的價值。PageRank背後的概念是,每個到頁面的鏈接都是對該頁面的一次投票, 被鏈接的越多,就意味著被其他網站投票越多。這個就是所謂的「鏈接流行度」——衡量多少人願意將他們的網站和你的網站掛鉤。PageRank這個概念引自 學術中一篇論文的被引述的頻度——即被別人引述的次數越多,一般判斷這篇論文的權威性就越高。
7. AdaBoost
Adaboost是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然後把這些弱分類器集合起來,構成一個更強的最終分類器 (強分類器)。其演算法本身是通過改變數據分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的准確率,來確定每個樣本的權 值。將修改過權值的新數據集送給下層分類器進行訓練,最後將每次訓練得到的分類器最後融合起來,作為最後的決策分類器。
8. kNN: k-nearest neighbor classification
K最近鄰(k-Nearest Neighbor,KNN)分類演算法,是一個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。
9. Naive Bayes
在眾多的分類模型中,應用最為廣泛的兩種分類模型是決策樹模型(Decision Tree Model)和樸素貝葉斯模型(Naive Bayesian Model,NBC)。 樸素貝葉斯模型發源於古典數學理論,有著堅實的數學基礎,以及穩定的分類效率。
同時,NBC模型所需估計的參數很少,對缺失數據不太敏感,演算法也比較簡單。理論上,NBC模型與其他分類方法相比具有最小的誤差率。 但是實際上並非總是如此,這是因為NBC模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,這給NBC模型的正確分類帶來了一定影響。在屬 性個數比較多或者屬性之間相關性較大時,NBC模型的分類效率比不上決策樹模型。而在屬性相關性較小時,NBC模型的性能最為良好。
10. CART: 分類與回歸樹
CART, Classification and Regression Trees。 在分類樹下面有兩個關鍵的思想。第一個是關於遞歸地劃分自變數空間的想法(二元切分法);第二個想法是用驗證數據進行剪枝(預剪枝、後剪枝)。在回歸樹的基礎上的模型樹構建難度可能增加了,但同時其分類效果也有提升。
參考書籍:《機器學習實戰》
❹ 有哪些主要的數據挖掘演算法
大數據演算法有多種,以下是一些主要的演算法:
一、聚類演算法
聚類演算法是一種無監督學習的演算法,它將相似的數據點劃分到同一個集群中。常見的聚類演算法包括K均值聚類、層次聚類等。這些演算法在處理大數據時能夠有效地進行數據分組,幫助發現數據中的模式和結構。
二、分類演算法
分類演算法是一種監督學習的演算法,它通過對已知類別的數據進行學習,然後預測新數據的類別。常見的分類演算法包括決策樹分類、支持向量機分類等。這些演算法在處理大數據時能夠快速進行預測和分類,廣泛應用於數據挖掘、機器推薦等領域。
三、關聯規則挖掘演算法
關聯規則挖掘演算法主要用於發現數據中的關聯關系。典型的關聯規則挖掘演算法有Apriori演算法等。這些演算法在處理大數據時能夠發現不同數據項之間的關聯關系,對於購物籃分析、用戶行為分析等場景非常有用。
四、回歸分析演算法
回歸分析演算法是一種預測性的建模技術,用於根據已知的數據預測未來的結果。常見的回歸分析演算法包括線性回歸、邏輯回歸等。這些演算法在處理大數據時能夠建立變數之間的關系模型,用於預測和決策支持。
五、深度學習演算法
深度學習演算法是一種基於神經網路的機器學習演算法,能夠處理大規模的數據集並自動提取數據的特徵。常見的深度學習演算法包括卷積神經網路(CNN)、循環神經網路(RNN)等。這些演算法在處理圖像、視頻、文本等大數據時表現出良好的性能。
以上是主要的幾種大數據演算法的簡要介紹。它們各自有著不同的特點和應用場景,可根據具體的需求選擇合適的大數據演算法進行數據處理和分析。
❺ 數據挖掘的方法及實施
數據挖掘的方法及實施
作為一門處理數據的新興技術,數據挖掘有許多的新特徵。首先,數據挖掘面對的是海量的數據,這也是數據挖掘產生的原因。其次,數據可能是不完全的、有雜訊的、隨機的,有復雜的數據結構,維數大。最後,數據挖掘是許多學科的交叉,運用了統計學,計算機,數學等學科的技術。以下是常見和應用最廣泛的演算法和模型:
傳統統計方法:①抽樣技術:我們面對的是大量的數據,對所有的數據進行分析是不可能的也是沒有必要的,就要在理論的指導下進行合理的抽樣。②多元統計分析:因子分析,聚類分析等。③統計預測方法,如回歸分析,時間序列分析等。
可視化技術:用圖表等方式把數據特徵用直觀地表述出來,如直方圖等,這其中運用的許多描述統計的方法。可視化技術面對的一個難題是高維數據的可視化。
決策樹:利用一系列規則劃分,建立樹狀圖,可用於分類和預測。常用的演算法有CART、CHAID、ID3、C4.5、C5.0等。
神經網路:模擬人的神經元功能,經過輸入層,隱藏層,輸出層等,對數據進行調整,計算,最後得到結果,用於分類和回歸。
遺傳演算法:基於自然進化理論,模擬基因聯合、突變、選擇等過程的一種優化技術。
關聯規則挖掘演算法:關聯規則是描述數據之間存在關系的規則,形式為「A1∧A2∧…An→B1∧B2∧…Bn」。一般分為兩個步驟:①求出大數據項集。②用大數據項集產生關聯規則。
除了上述的常用方法外,還有粗集方法,模糊集合方法,Bayesian Belief Netords,最鄰近演算法(k-nearest neighbors method(KNN))等。
數據挖掘的實施流程
前面我們討論了數據挖掘的定義,功能和方法,現在關鍵的問題是如何實施,其一般的數據挖掘流程如下:
問題理解和提出→數據准備→數據整理→建立模型→評價和解釋
問題理解和提出:在開始數據挖掘之前最基礎的就是理解數據和實際的業務問題,在這個基礎之上提出問題,對目標有明確的定義。
數據准備:獲取原始的數據,並從中抽取一定數量的子集,建立數據挖掘庫,其中一個問題是如果企業原來的數據倉庫滿足數據挖掘的要求,就可以將數據倉庫作為數據挖掘庫。
數據整理:由於數據可能是不完全的、有雜訊的、隨機的,有復雜的數掘結構,就要對數據進行初步的整理,清洗不完全的數據,做初步的描述分析,選擇與數據挖掘有關的變數,或者轉變變數。
建立模型:根據數據挖掘的目標和數據的特徵,選擇合適的模型。
評價和解釋:對數據挖掘的結果進行評價,選擇最優的模型,作出評價,運用於實際問題,並且要和專業知識結合對結果進行解釋。
以上的流程不是一次完成的,可能其中某些步驟或者全部要反復進行。