
針對任何一個打算由機器學習算法來解決的問題,都有一種『套路』存在,只要按照這個模板『按部就班』就能夠得到一個結果。就跟一個產品的生產流水線是一個道理。但是得到結果的好壞跟你是否是一個『熟練工』有很大的關系。因為在解決具體的問題中有許多的tricks對于結果的提升有所幫助。
整個『套路』能分為以下5個步驟:
定義問題
對數據進行預處理
算法的抽查
對結果進行優化
結果展示
這里非?;\統地概括了整個流程,對于實際的問題,還是需要『見風使舵』,要靈活運用模板。接下來對每一個步驟進行一些解釋吧。
定義問題
這個步驟對于整個流程的重要性是顯而易見的,如果在解決問題的一開始就已經犯了方向性的錯誤,結果只能是南轅北轍。例如拿一個分類算法去解決一個聚類問題,顯然這并不能得到正確的結果。還有一個誤區就是迷信性能強的算法,比如svm。任何的分類問題都是用svm去解決,有可能在一些情況下logistic回歸能達到更好的結果。所以,首先就需要弄清楚問題的本質。
這里我本人并沒有非常豐富的實踐經驗,所以并不能給出非常多的建設性的意見。這里我只說說其中的一個點吧,就是尋找相似性的問題。這里有一個非常重要的技巧叫做fine-tuning。
這里拿神經網絡來舉一個例子吧。某人已經在一個數據集上針對一個任務訓練好了一個網絡,如果你要解決的問題也同樣是針對這一個數據集,只不過是任務不同。這一點其實在自然語言處理上還是比較常見的。那么就可以復用網絡前面那些層的權值,只針對你的任務改變輸出層或是輸出層之前的幾層。在學習率的設置上,因為前面層次已經是訓練好的了,需要設置的比較小,而后面的層次需要設置的大一點。這樣的做法能夠顯著地降低訓練整個網絡的時間??梢栽谳^短的時間內獲取一個還算不錯的結果。
我覺得遷移學習應該也算是一種吧,但是這個領域我其實不太了解,不能繼續展開了。
數據預處理
所有的機器學習算法都是建立在數據的基礎之上的。
The more disciplined you are in your handling of data, the more consistent and better results you are like likely to achieve.
首先就是收集數據的過程,因為我并沒有接觸過實際的例子,所以對于這一部分也不了解。在這個數據爆炸的時代收集到數據應該不難,關鍵是要對數據進行正確的處理。
之后就是數據的清洗過程,包括數據格式的轉化(希望轉換成算法所能處理的形式),數據的清洗(處理噪聲數據,缺失值的處理),以及數據的采樣(有可能我們并不需要這么多的數據)。這一塊也是預處理過程的一個重點吧,恰好我也不是特別懂。
之后呢,就是對于數據做一些等價的轉換,包括統一數據的度量(這在距離計算時非常重要)、零均值化、屬性的分解以及合并。接下來對屬性的分解以及合并做出一些解釋,這個在其他資料上倒是挺少見。
屬性的分解就是,一個屬性能夠分解為多個子屬性,只有某一些子屬性對于輸出有著顯著的影響。那我們就可以只存儲這些子屬性,而不用去存儲原來的屬性。例如時間這個屬性可以分解為年、月、日、時、分、秒,可能只有月這個屬性對于結果有影響,那我們只保留這個屬性就好。
屬性的合并就是與屬性的分解是對立的。將一些子屬性合并成一個新屬性后,這個屬性對于輸出的影響會更加顯著。那我們就會選擇將這些屬性進行合并。例如『登錄時間』這個屬性,可能對于輸出值沒有什么影響,如果我們將其轉化為『登錄的次數』呢,結果可能就會大不一樣了。
數據預處理的過程并沒有什么對錯可言,只有合適與否。這還是需要非常深厚的功力的。對于以上步驟:
You can follow this process in a linear manner, but it is very likely to be iterative with many loops.
數據的分析
這一部分本來是屬于數據的預處理的,但是我覺得還是單獨出來比較好。這個在我看過的資料中還是第一次出現。
在拿到預處理完的數據之后,將其輸入到算法之前,我們還是有必要對數據有一些了解,這樣對模型中的參數選擇能有一些幫助。這里主要包含兩個方法:Summarize Data 和 Visualize Data。
Summarize Data主要是分析數據中的一些內在屬性。主要包括兩個方面:Data Structure 和 Data
Distribution。Data
Structure指的是數據每一維屬性的類型(是連續的還是離散的)。在針對一些具體問題時,可能需要將離散的屬性連續化。Data
Distribution指的自然是數據的分布。這里主要分析的是每一維數據的分布。如果是有標簽的數據,可以弄清楚類別的分布,這樣可以知道模型分類時準確率的下限。還可以做的更多的一點是,獲取屬性間的關聯性。如果有關聯的話,關聯度有多大。這樣有助于去除一些冗余屬性(數據的降維),以及知道哪些屬性對結果的影響比較大(權值的選擇)。
Visualize Data自然是對數據進行可視化操作。有那么多種圖可以畫,到底應該選擇哪種類型的圖呢?一般來說都是畫柱狀圖和散點圖。
柱狀圖是描述出每一維度的值與其類標簽之間的關系,也可以從圖形中看出每一維的數據是服從何種分布的。特意盜了兩張圖。
對每兩組屬性畫出其散點圖,這樣可以較為容易地看出屬性之間的關聯性。
從上面的描述可以看出,Summarize Data 和 Visualize Data 兩個過程之間是相輔相成的。
算法抽查
關于這一點,在這一篇資料中我也是第一次見到。
對于一個具體的問題,我們也許有很多種算法可以對其進行求解,那么我們是不是需要對每一種方法都進行一次嘗試呢?并不需要,因為那樣太費時間,而且并不是所有的算法都能有效。抽查(spot-checking)就是對多個算法進行快速驗證,以決定對哪一個算法進行進一步的訓練。
在進行算法的抽查時,并不需要使用使用數據集中的所有數據進行訓練,只需要使用較小的一部分。在選擇完算法之后,再使用所有數據進行進一步的訓練??梢允褂媒徊骝炞C的方法來進行該過程。
在進行算法抽查時,處于候選集中的算法的種類越多樣越好,這樣才能測試出哪種類型的算法更能學習到數據中的結構。在選擇完算法之后,并不一定直接使用該算法進行進一步的學習,可能會使用基于該算法的改進版本。
在該部分中,還有很重要的一塊內容就是訓練集、測試集的劃分,結果衡量標準的選擇,以及結果的可信度。這一部分內容我也有寫博客進行具體的闡述,畢竟水太深。
結果的改進
算法訓練完成之后,如果算法的結果不如意,該怎么辦?如果算法的結果還比較令人滿意,有沒有方法可以將結果再提升一點?這一部分主要就是解決這兩個問題。文章中提出了三個方法:
Algorithm tuning
Ensembles
Extreme Feature Engineering
接下來分別敘述下這三種方法。
算法中一般都充斥這很多的參數,對算法進行訓練,主要是在這些參數形成的參數空間中尋找到一個點,使得目標函數達到最優。文章中提到了一種方法,就是對參數空間進行采樣,發現那些可能的最優值點,再從這些點開始訓練??梢灾貜瓦@個過程幾次,試圖獲取更優的解。但是,很坑的一點是,文章中并沒有說明具體的采樣方法。因為是進行了多次訓練,造成過擬合的風險很大。
第二中方法就是集成方法,這個會有一篇博客專門敘述這個算法。
前兩種方法都是試圖在算法的本身做出一些突破,而第三種方法則是希望從數據本身著手。作者自己也說了,其實這種方法可以叫做『特征工程』,就是在數據的特征方面做出一些工作。通過特征的分解/合并,降低特征之間的關聯性。有些情況也會將離散的特征值轉變為連續的特征值。因為算法總是希望學習到數據中蘊含的某種模式,這樣才能有更強的泛化效果。如果一個模式過于復雜,那么算法的效果必然會收到影響。所以,我們希望將這個復雜的模式進行分解,這就是這個方法的初衷。在每一次訓練時都可以進行該步驟,獲得新的訓練/測試數據集(因為特征已經發生了變化),通過在新數據集上的學習結果,對之后特征的分解/合并產生一些指導性的建議。
結果展示
當你的算法能夠較好地解決一個問題的時候,你當然希望將你的成果展示給大家。這里面就說到了兩種途徑:寫一篇論文(或者什么類似的東西)、將其與實際的產品相結合。恰好,這兩個方面我都沒有經驗,然后就沒有然后了。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25在當今數字化時代,數據分析師的重要性與日俱增。但許多人在踏上這條職業道路時,往往充滿疑惑: 如何成為一名數據分析師?成為 ...
2025-04-24以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《劉靜:10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda ...
2025-04-23