數據挖掘入門指南!!!

2021-02-13 Datawhale

 Datawhale 

作者:王瑞楠、吳忠強、徐韜、田楊軍

摘要:入門數據挖掘,必須理論結合實踐。本文梳理了數據挖掘知識體系,幫助大家了解和提升在實際場景中的數據分析、特徵工程、建模調參和模型融合等技能。

數據分析

探索性數據分析(Exploratory Data Analysis,EDA)是指對已有數據在儘量少的先驗假設下通過作圖、制表、方程擬合、計算特徵量等手段探索數據的結構和規律的一種數據分析方法。

常用的第三方庫

數據科學庫

數據可視化庫

常用函數

數據簡略觀測

數據總覽

數據檢測

缺失值檢測

異常值檢測

預測分布

總體分布概況:

很多模型假設數據服從正態分布,數據整體服從正態分布,樣本均值和方差則相互獨立。當樣本不服從正態分布時,可以做如下轉換:

線性變化z-scores:基於原始數據的均值(mean)和標準差(standard deviation)進行數據的標準化。將A的原始值x使用z-score標準化到x』

Boxcox變換:一種廣義冪變換方法,是統計建模中常用的一種數據變換,用於連續的響應變量不滿足正態分布的情況。

yeo-johnson變換:是冪變換(power transformation)的方法之一,通過構建一組單調函數對隨機變量進行數據變換。

查看skeness 和kurtosis

預測值的具體頻數

當某範圍預測值很少時,可將其當作異常值處理填充或刪除。若頻數很失常,需對數據進行處理,例如進行log變換,使數據分布較均勻,可據處理後的數據進行預測,這也是預測問題常用的技巧。

特徵分析

數字特徵

類別特徵

數據清洗

數據和特徵決定了機器學習的上限,而模型和算法只是逼近這個上限而已。俗話說:garbage in, garbage out。分析完數據後,特徵工程前,必不可少的步驟是對數據進行清洗。

數據清洗作用是利用有關技術如數理統計、數據挖掘或預定義的清理規則將髒數據轉化為滿足數據質量要求的數據。主要包括缺失值處理、異常值處理、數據分桶、特徵歸一化/標準化等流程。

缺失值處理

關於缺失值處理的方式, 有幾種情況:

異常值處理

常用的異常值處理操作包括BOX-COX轉換(處理有偏分布),箱線圖分析刪除異常值, 長尾截斷等方式, 當然這些操作一般都是處理數值型的數據。

數據分桶

連續值經常離散化或者分離成「箱子」進行分析, 為什麼要做數據分桶呢?

離散後稀疏向量內積乘法運算速度更快,計算結果也方便存儲,容易擴展;

離散後的特徵對異常值更具魯棒性,如 age>30 為 1 否則為 0,對於年齡為 200 的也不會對模型造成很大的幹擾;

LR 屬於廣義線性模型,表達能力有限,經過離散化後,每個變量有單獨的權重,這相當於引入了非線性,能夠提升模型的表達能力,加大擬合;

離散後特徵可以進行特徵交叉,提升表達能力,由 M+N 個變量編程 M*N 個變量,進一步引入非線形,提升了表達能力;

特徵離散後模型更穩定,如用戶年齡區間,不會因為用戶年齡長了一歲就變化

當然還有很多原因,LightGBM 在改進 XGBoost 時就增加了數據分桶,增強了模型的泛化性。現在介紹數據分桶的方式有:

等頻分桶:區間的邊界值要經過選擇,使得每個區間包含大致相等的實例數量。比如說 N=10 ,每個區間應該包含大約10%的實例。

等距分桶:從最小值到最大值之間,均分為 N 等份;

Best-KS分桶:類似利用基尼指數進行二分類;

卡方分桶:自底向上的(即基於合併的)數據離散化方法。它依賴於卡方檢驗:具有最小卡方值的相鄰區間合併在一起,直到滿足確定的停止準則。

數據轉換

數據轉換的方式有:

數據歸一化(MinMaxScaler);

標準化(StandardScaler);

對數變換(log1p);

轉換數據類型(astype);

獨熱編碼(OneHotEncoder);

標籤編碼(LabelEncoder);

修復偏斜特徵(boxcox1p)等。

特徵工程

特徵工程指的是把原始數據轉變為模型訓練數據的過程,目的是獲取更好的訓練數據特徵。特徵工程能使得模型的性能得到提升,有時甚至在簡單的模型上也能取得不錯的效果。

特徵構造

特徵構造的時候需要考慮數值特徵,類別特徵,時間特徵。

數值特徵,一般會嘗試一些它們之間的加減組合(當然不要亂來,根據特徵表達的含義)或者提取一些統計特徵

類別特徵,我們一般會嘗試之間的交叉組合,embedding也是一種思路

時間特徵,這一塊又可以作為一個大專題來學習,在時間序列的預測中這一塊非常重要,也會非常複雜,需要就儘可能多的挖掘時間信息,會有不同的方式技巧。

特徵選擇

特徵選擇主要有兩個功能:

通常來說,從兩個方面考慮來選擇特徵:

根據特徵選擇的形式又可以將特徵選擇方法分為3種:

過濾法(Filter):按照發散性或者相關性對各個特徵進行評分,設定閾值或者待選擇閾值的個數,選擇特徵。

包裝法(Wrapper):根據目標函數(通常是預測效果評分),每次選擇若干特徵,或者排除若干特徵。

嵌入法(Embedded):先使用某些機器學習的算法和模型進行訓練,得到各個特徵的權值係數,根據係數從大到小選擇特徵。

降維

數據特徵維度太高,首先會導致計算很麻煩,其次增加了問題的複雜程度,分析起來也不方便。但盲目減少數據的特徵會損失掉數據包含的關鍵信息,容易產生錯誤的結論,對分析不利。

PCA降維方法,既可以減少需要分析的指標,而且儘可能多的保持了原來數據的信息。

但要注意一點, 特徵選擇是從已存在的特徵中選取攜帶信息最多的,選完之後的特徵依然具有可解釋性,而PCA,將已存在的特徵壓縮,降維完畢後不是原來特徵的任何一個,也就是PCA降維之後的特徵我們根本不知道什麼含義了。

建模調參

特徵工程也好,數據清洗也罷,都是為最終的模型來服務的,模型的建立和調參決定了最終的結果。模型的選擇決定結果的上限, 如何更好的去達到模型上限取決於模型的調參。

建模的過程需要我們對常見的線性模型、非線性模型有基礎的了解。模型構建完成後,需要掌握一定的模型性能驗證的方法和技巧。同時,還需要掌握貪心調參、網格調參、貝葉斯調參等調參方法。

回歸分析

回歸分析是一種統計學上分析數據的方法,目的在於了解兩個或多個變量間是否相關、相關方向與強度,並建立數學模型。以便通過觀察特定變量(自變量),來預測研究者感興趣的變量(因變量)


長尾分布

這種分布會使得採樣不準,估值不準,因為尾部佔了很大部分。另一方面,尾部的數據少,人們對它的了解就少,那麼如果它是有害的,那麼它的破壞力就非常大,因為人們對它的預防措施和經驗比較少。


欠擬合與過擬合

欠擬合:訓練的模型在訓練集上面的表現很差,在驗證集上面的表現也很差。即訓練誤差和泛化誤差都很大。原因

模型沒有很好或足夠數量的訓練訓練集

模型的訓練特徵過於簡單

過擬合:模型的訓練誤差遠小於它在測試數據集上的誤差。即訓練誤差不錯,但是泛化誤差比訓練誤差相差太多。原因

模型沒有很好或足夠數量的訓練訓練集

訓練數據和測試數據有偏差

模型的訓練過度,過於複雜,沒有學到主要的特徵

由此引出模型複雜度概念模型中的參數,一個簡單的二元線性的函數只有兩個權重,而多元的複雜的函數的權重可能會什麼上百上千個。

模型複雜度太低(參數過少),模型學習得太少,就難以訓練出有效的模型,便會出現欠擬合。模型複雜度太高(參數很多),即模型可訓練空間很大,容易學習過度,甚至於也將噪聲數據學習了,便會出現過擬合。


正則化

損失函數後面會添加一個額外項,稱作 L1正則化 和 L2正則化,或者 L1範數和 L2範數。

L1正則化和L2正則化可以看做是損失函數的懲罰項。所謂『懲罰』是指對損失函數中的某些參數做一些限制。對於線性回歸模型,使用L1正則化的模型建叫做Lasso回歸,使用L2正則化的模型叫做Ridge回歸(嶺回歸)。

正則化說明

L1正則化是指權值向量

正則化作用

調參方法

坐標下降法是一類優化算法,其最大的優勢在於不用計算待優化的目標函數的梯度。與坐標下降法不同的是,不循環使用各個參數進行調整,而是貪心地選取了對整體模型性能影響最大的參數。參數對整體模型性能的影響力是動態變化的,故每一輪坐標選取的過程中,這種方法在對每個坐標的下降方向進行一次直線搜索(line search)作用是在指定的範圍內可以自動調參,只需將參數輸入即可得到最優化的結果和參數。相對於人工調參更省時省力,相對於for循環方法更簡潔靈活,不易出錯。貝葉斯優化通過基於目標函數的過去評估結果建立替代函數(概率模型),來找到最小化目標函數的值。貝葉斯方法與隨機或網格搜索的不同之處在於,它在嘗試下一組超參數時,會參考之前的評估結果,因此可以省去很多無用功。


超參數的評估代價很大,因為它要求使用待評估的超參數訓練一遍模型,而許多深度學習模型動則幾個小時幾天才能完成訓練,並評估模型,因此耗費巨大。貝葉斯調參發使用不斷更新的概率模型,通過推斷過去的結果來「集中」有希望的超參數。


這裡給出一個模型可調參數及範圍選取的參考:

模型融合

通過融合多個不同的模型,可能提升機器學習的性能。這一方法在各種機器學習比賽中廣泛應用, 也是在比賽的攻堅時刻衝刺Top的關鍵。而融合模型往往又可以從模型結果,模型自身,樣本集等不同的角度進行融合。

模型融合是比賽後期一個重要的環節,大體來說有如下的類型方式

1. 簡單加權融合:

2. stacking/blending:

3. boosting/bagging:

簡單算術平均法

Averaging方法就多個模型預測的結果進行平均。這種方法既可以用於回歸問題,也可以用於對分類問題的概率進行平均。

加權算術平均法

這種方法是平均法的擴展。考慮不同模型的能力不同,對最終結果的貢獻也有差異,需要用權重來表徵不同模型的重要性importance。

投票法

假設對於一個二分類問題,有3個基礎模型,現在我們可以在這些基學習器的基礎上得到一個投票的分類器,把票數最多的類作為我們要預測的類別。


堆疊法(Stacking)

stacking 就是當用初始訓練數據學習出若干個基學習器後,將這幾個學習器的預測結果作為新的訓練集,來學習一個新的學習器。對不同模型預測的結果再進行建模。

混合法(Blending)Blending採用了和stacking同樣的方法,不過只從訓練集中選擇一個fold的結果,再和原始特徵進行concat作為元學習器meta learner的特徵,測試集上進行同樣的操作。

把原始的訓練集先分成兩部分,比如70%的數據作為新的訓練集,剩下30%的數據作為測試集。


BaggingBagging基於bootstrap(自採樣),也就是有放回的採樣。訓練子集的大小和原始數據集的大小相同。Bagging的技術使用子集來了解整個樣本集的分布,通過bagging採樣的子集的大小要小於原始集合。BoostingBoosting是一種串行的工作機制,即個體學習器的訓練存在依賴關係,必須一步一步序列化進行。Boosting是一個序列化的過程,後續模型會矯正之前模型的預測結果。也就是說,之後的模型依賴於之前的模型。

其基本思想是:增加前一個基學習器在訓練訓練過程中預測錯誤樣本的權重,使得後續基學習器更加關注這些打標錯誤的訓練樣本,儘可能糾正這些錯誤,一直向下串行直至產生需要的T個基學習器,Boosting最終對這T個學習器進行加權結合,產生學習器委員會。

下面給出加州大學歐文分校Alex Ihler教授的兩頁PPT:

延伸閱讀

【1】數據分析:

https://mp.weixin.qq.com/s/IOlHIEIQhuIaubTeP4o39w

【2】特徵工程:

https://mp.weixin.qq.com/s/A2vChdNXRqlddyIY0iJ3zQ

【3】建模調參:

https://mp.weixin.qq.com/s/cXSRcMk_0t8RxSaKb0sHww

【4】模型融合:

https://mp.weixin.qq.com/s/fsT6rzpL5cuzh2usNjzzbA

【5】完整視頻:

https://www.bilibili.com/video/BV1ye411x7oU

【6】理論實踐:

https://tianchi.aliyun.com/competition/entrance/231784/information(阿里天池-零基礎入門數據挖掘)

完整項目實踐(共100多頁)後臺回復 數據挖掘電子版 獲取

「在看,為沉迷學習點讚

相關焦點

  • 數據挖掘工程師入門可以看的書有哪些?
    首先,數據挖掘入門是一件很簡單的事情,專業背景要求不強,但是入門的門檻卻比較高,最好碩士學歷以上。 我個人推薦是這樣的:可以先看看李航的統計學習方法,這本書著重於數學原理推到,能夠讓我們很快的深入理解數據挖掘算法原理;另外的,就是數據挖掘導論這本書啦!個人認為以上兩本是數據挖掘工程師必看的書,不是嗎? 另外的,還有西瓜書,現在貌似被作為大學教材在使用。寫的不錯。
  • 數據挖掘入門:校園數據的分析與挖掘
    因此,做好招生工作的研究和挖掘,提高生源質量,顯得尤為重要。隨著網上招生錄取工作的普及,各校招生部門積累了大量的招生數據。但目前,這些數據僅用於簡單的查詢。在這些數據中蘊藏的大量規律,還未被挖掘出來用於輔助招生工作的決策。科學合理地制定招生計劃、安排獎優資困政策、有所側重地加強與中學的聯繫,需要準確找到影響優質生源報考本校本科和研究生院的重要因素。
  • 基於真實用戶評論的14本最佳數據挖掘書籍
    您不僅將學習如何改善業務利益相關者與數據科學家之間的溝通,而且還將學習如何智能地參與公司的數據科學項目。您還將發現如何分析數據,並充分理解數據科學方法如何支持業務決策。該指南還可以幫助您了解當今使用的許多數據挖掘技術。
  • Github 首選數據科學入門指南
    來源:開源最前線(ID:OpenSourceTop) 最近,在 Github 上發現了一份數據科學的
  • 機器學習漫遊指南 最完整的入門書單(外文版)
    在雷鋒網所篩選的學習資源中,這堪稱是迄今為止最全面、最完整、權威性比較高的一份 ML 書單,涵蓋了最值得學習者、從業者、開發者認真研讀的精品書目。這份指南適合多樣背景的讀者:從想要了解機器學習的普通人,到入門新手,再到高階開發者和學術研究人員。因此,雷鋒網對其進行編譯整理,特來與大家分享。
  • CTF入門指南 | 內附教程分享
    capture the flag 奪旗比賽類型:Web密碼學Pwn 程序的邏輯分析,漏洞利用windows、linux、小型機等Misc 雜項,隱寫,數據還原,腦洞、社會工程、與信息安全相關的大數據reverse 逆向Windows、Linux
  • 臨床醫生如何規劃一篇數據挖掘文章?
    「數據挖掘還能做嗎?還有期刊收嗎?」「我還要不要學數據挖掘啊,會不會像 meta 分析一樣單位不承認了?」不難看出,生信的勢頭還在穩定上漲中,抓住機會趕在別人前面學會做數據挖掘,發表自己的數據挖掘 SCI,非常有優勢!很多同學只是耳聞數據挖掘,卻從來沒有踏入過這個領域,至今不知道數據挖掘到底是什麼?
  • 《數據挖掘R語言實戰》圖書介紹,數據挖掘相關人員看過來!
    今天介紹一本書《數據挖掘R語言實戰》。數據挖掘技術是當下大數據時代最關鍵的技術,其應用領域及前景不可估量。R是一款極其優秀的統計分析和數據挖掘軟體,R語言的特點是入門容易,使用簡單。這本書側重使用R進行數據挖掘,重點進述了R的數據挖掘流程、算法包的使用及相關工具的應用,同時結合大量精選的數據挖掘實例對R軟體進行深入潛出和全面的介紹,以便讀者能深刻理解R的精髓並能快速、高效和靈活地掌握使用R進行數據挖掘的技巧。本書以數據預處理、基本算法及應用和高級算法及應用這三篇展示。
  • 數據分析入門學習指南,零基礎小白都能輕鬆看懂
    數據分析在如今的求職場上越來越重要。然而,讓很多朋友困惑的是,我是沒有編程基礎的小白,能學會數據分析麼?該如何學習數據分析呢?其實,如果你打算成為一名數據分析師,如何出身並不重要,數據科學是一門應用學科,你需要系統提升數據獲取、數據分析、數據可視化、機器學習的水平。下面我就簡單提供一個數據分析入門的路徑。
  • 大數據入門必讀經典!
    《Hadoop權威指南》《Hadoop權威指南(中文版)》從Hadoop的緣起開始,由淺入深,結合理論和實踐,全方位地介紹Hadoop這一高性能處理海量數據集的理想工具。《Hive編程指南》《Hive編程指南》是一本Apache Hive的編程指南,旨在介紹如何使用Hive的SQL方法HiveQL來匯總、查詢和分析存儲在Hadoop分布式文件系統上的大數據集合。
  • 如何系統地學習數據挖掘?
    在學習數據挖掘之前應該明白幾點:●數據挖掘目前在中國的尚未流行開,猶如屠龍之技。●數據初期的準備通常佔整個數據挖掘項目工作量的70%左右。●數據挖掘本身融合了統計學、資料庫和機器學習等學科,並不是新的技術。
  • 解讀數據挖掘與數據科學之間鮮為人知的區別
    然而,儘管人們對數據科學的工作越來越感興趣,但並不知道如何從事這個職業。因此應該了解數據科學的職業生涯,這其中包括了解不同數據流程之間的差異。一些行業網站和大學正在提供有關數據科學的學習課程。然而,對於初學者來說,他們對於如何入門以及如何選擇有效的路徑並不總是很清楚。因為數據技術領域中一些相似的領域存在顯著的差異。
  • 小叮噹數據挖掘(一):初識數據挖掘
    值得一提的是,概括來說數據挖掘是指從海量數據中提取有價值的信息,而不是一些人們對數據挖掘的常見認知錯誤:「數據挖掘就是下載海量數據」,這是一種非常錯誤的認知!認識數據挖掘,小叮噹打算從認識數據、數據預處理、挖掘頻繁模式、關聯和相關、分類和預測的聚類分析、離群點檢測這幾部分為大家全面介紹。今天我們先來初識數據挖掘。1.為什麼要進行數據挖掘?
  • 想入門機器學習、數據挖掘,我該怎麼做?
    【數盟(dataunion.org)致力於成為最卓越的數據科學社區,聚焦於大數據、分析挖掘
  • 書單| 從入門到精通,數據分析不得不看的10本「好書」!
    1、深入淺出數據系列書籍深入淺出數據分析入門級別,比較簡單,但基本的內容涉及全面,講解的比較清晰3、R 語言實戰全面而細緻的R指南,高度概括了該軟體和它的強大功能,展示了使用的統計示例,且對於難以用傳統方法處理的凌亂、不完整和非正態的數據給出了優雅的處理方法。
  • R語言學習路線和常用數據挖掘包
    入門之後如何才能把自己練就成某個方面的高手呢?相信這是很多人心中的疑問。有這種疑問的人有福了,因為筆者將根據自己的經歷總結一下R語言書籍的學習路線圖以使Ruser少走些彎路。本文分為6個部分,分別介紹初級入門,高級入門,繪圖與可視化,計量經濟學,時間序列分析,金融等。
  • 入門Python數據分析的正確姿勢
    : 1.入門《Python編程基礎》(免費,電腦端觀看)連結:http://www.cda.cn/gkk/2.html內容介紹:主要針對Python語言入門學員,介紹Python語言的入門知識,涉及安裝與啟動、運算符與表達式、函數與模塊、異常處理和文件操作、科學計算Numpy、數據處理Pandas
  • 深入淺出:如何從0開始學習大數據挖掘分析?
    在公司實際工作中,最好的大數據挖掘工程師一定是最熟悉和理解業務的人。對於大數據挖掘的學習心得,作者認為學習數據挖掘一定要結合實際業務背景、案例背景來學習,這樣才是以解決問題為導向的學習方法。大數據挖掘要做的就是把上述類似的商業運營問題轉化為數據挖掘問題。一、如何將商業運營問題轉化為大數據挖掘問題那麼,問題來了,我們該如何把上述的商業運營問題轉化為數據挖掘問題?可以對數據挖掘問題進行細分,分為四類問題:分類問題、聚類問題、關聯問題、預測問題。
  • 什麼叫數據挖掘_數據挖掘技術解析
    數據挖掘(data mining)是指從大量的資料中自動搜索隱藏於其中的有著特殊關聯性的信息的過程。在全世界的計算機存儲中,存在未使用的海量數據並且它們還在快速增長,這些數據就像待挖掘的金礦,而進行數據分析的科學家、工程師、分析員的數量變化一直相對較小,這種差距稱為數據挖掘產生的主要原因。
  • 「大數據分析」深入淺出:如何從零開始學習大數據分析與挖掘
    在公司實際工作中,最好的大數據挖掘工程師一定是最熟悉和理解業務的人。對於大數據挖掘的學習心得,作者認為學習數據挖掘一定要結合實際業務背景、案例背景來學習,這樣才是以解決問題為導向的學習方法。大數據挖掘要做的就是把上述類似的商業運營問題轉化為數據挖掘問題。一、如何將商業運營問題轉化為大數據挖掘問題那麼,問題來了,我們該如何把上述的商業運營問題轉化為數據挖掘問題?可以對數據挖掘問題進行細分,分為四類問題:分類問題、聚類問題、關聯問題、預測問題。