
針對任何一個打算由機器學(xué)習(xí)算法來解決的問題,都有一種『套路』存在,只要按照這個模板『按部就班』就能夠得到一個結(jié)果。就跟一個產(chǎn)品的生產(chǎn)流水線是一個道理。但是得到結(jié)果的好壞跟你是否是一個『熟練工』有很大的關(guān)系。因為在解決具體的問題中有許多的tricks對于結(jié)果的提升有所幫助。
整個『套路』能分為以下5個步驟:
定義問題
對數(shù)據(jù)進行預(yù)處理
算法的抽查
對結(jié)果進行優(yōu)化
結(jié)果展示
這里非?;\統(tǒng)地概括了整個流程,對于實際的問題,還是需要『見風(fēng)使舵』,要靈活運用模板。接下來對每一個步驟進行一些解釋吧。
定義問題
這個步驟對于整個流程的重要性是顯而易見的,如果在解決問題的一開始就已經(jīng)犯了方向性的錯誤,結(jié)果只能是南轅北轍。例如拿一個分類算法去解決一個聚類問題,顯然這并不能得到正確的結(jié)果。還有一個誤區(qū)就是迷信性能強的算法,比如svm。任何的分類問題都是用svm去解決,有可能在一些情況下logistic回歸能達到更好的結(jié)果。所以,首先就需要弄清楚問題的本質(zhì)。
這里我本人并沒有非常豐富的實踐經(jīng)驗,所以并不能給出非常多的建設(shè)性的意見。這里我只說說其中的一個點吧,就是尋找相似性的問題。這里有一個非常重要的技巧叫做fine-tuning。
這里拿神經(jīng)網(wǎng)絡(luò)來舉一個例子吧。某人已經(jīng)在一個數(shù)據(jù)集上針對一個任務(wù)訓(xùn)練好了一個網(wǎng)絡(luò),如果你要解決的問題也同樣是針對這一個數(shù)據(jù)集,只不過是任務(wù)不同。這一點其實在自然語言處理上還是比較常見的。那么就可以復(fù)用網(wǎng)絡(luò)前面那些層的權(quán)值,只針對你的任務(wù)改變輸出層或是輸出層之前的幾層。在學(xué)習(xí)率的設(shè)置上,因為前面層次已經(jīng)是訓(xùn)練好的了,需要設(shè)置的比較小,而后面的層次需要設(shè)置的大一點。這樣的做法能夠顯著地降低訓(xùn)練整個網(wǎng)絡(luò)的時間??梢栽谳^短的時間內(nèi)獲取一個還算不錯的結(jié)果。
我覺得遷移學(xué)習(xí)應(yīng)該也算是一種吧,但是這個領(lǐng)域我其實不太了解,不能繼續(xù)展開了。
數(shù)據(jù)預(yù)處理
所有的機器學(xué)習(xí)算法都是建立在數(shù)據(jù)的基礎(chǔ)之上的。
The more disciplined you are in your handling of data, the more consistent and better results you are like likely to achieve.
首先就是收集數(shù)據(jù)的過程,因為我并沒有接觸過實際的例子,所以對于這一部分也不了解。在這個數(shù)據(jù)爆炸的時代收集到數(shù)據(jù)應(yīng)該不難,關(guān)鍵是要對數(shù)據(jù)進行正確的處理。
之后就是數(shù)據(jù)的清洗過程,包括數(shù)據(jù)格式的轉(zhuǎn)化(希望轉(zhuǎn)換成算法所能處理的形式),數(shù)據(jù)的清洗(處理噪聲數(shù)據(jù),缺失值的處理),以及數(shù)據(jù)的采樣(有可能我們并不需要這么多的數(shù)據(jù))。這一塊也是預(yù)處理過程的一個重點吧,恰好我也不是特別懂。
之后呢,就是對于數(shù)據(jù)做一些等價的轉(zhuǎn)換,包括統(tǒng)一數(shù)據(jù)的度量(這在距離計算時非常重要)、零均值化、屬性的分解以及合并。接下來對屬性的分解以及合并做出一些解釋,這個在其他資料上倒是挺少見。
屬性的分解就是,一個屬性能夠分解為多個子屬性,只有某一些子屬性對于輸出有著顯著的影響。那我們就可以只存儲這些子屬性,而不用去存儲原來的屬性。例如時間這個屬性可以分解為年、月、日、時、分、秒,可能只有月這個屬性對于結(jié)果有影響,那我們只保留這個屬性就好。
屬性的合并就是與屬性的分解是對立的。將一些子屬性合并成一個新屬性后,這個屬性對于輸出的影響會更加顯著。那我們就會選擇將這些屬性進行合并。例如『登錄時間』這個屬性,可能對于輸出值沒有什么影響,如果我們將其轉(zhuǎn)化為『登錄的次數(shù)』呢,結(jié)果可能就會大不一樣了。
數(shù)據(jù)預(yù)處理的過程并沒有什么對錯可言,只有合適與否。這還是需要非常深厚的功力的。對于以上步驟:
You can follow this process in a linear manner, but it is very likely to be iterative with many loops.
數(shù)據(jù)的分析
這一部分本來是屬于數(shù)據(jù)的預(yù)處理的,但是我覺得還是單獨出來比較好。這個在我看過的資料中還是第一次出現(xiàn)。
在拿到預(yù)處理完的數(shù)據(jù)之后,將其輸入到算法之前,我們還是有必要對數(shù)據(jù)有一些了解,這樣對模型中的參數(shù)選擇能有一些幫助。這里主要包含兩個方法:Summarize Data 和 Visualize Data。
Summarize Data主要是分析數(shù)據(jù)中的一些內(nèi)在屬性。主要包括兩個方面:Data Structure 和 Data
Distribution。Data
Structure指的是數(shù)據(jù)每一維屬性的類型(是連續(xù)的還是離散的)。在針對一些具體問題時,可能需要將離散的屬性連續(xù)化。Data
Distribution指的自然是數(shù)據(jù)的分布。這里主要分析的是每一維數(shù)據(jù)的分布。如果是有標(biāo)簽的數(shù)據(jù),可以弄清楚類別的分布,這樣可以知道模型分類時準(zhǔn)確率的下限。還可以做的更多的一點是,獲取屬性間的關(guān)聯(lián)性。如果有關(guān)聯(lián)的話,關(guān)聯(lián)度有多大。這樣有助于去除一些冗余屬性(數(shù)據(jù)的降維),以及知道哪些屬性對結(jié)果的影響比較大(權(quán)值的選擇)。
Visualize Data自然是對數(shù)據(jù)進行可視化操作。有那么多種圖可以畫,到底應(yīng)該選擇哪種類型的圖呢?一般來說都是畫柱狀圖和散點圖。
柱狀圖是描述出每一維度的值與其類標(biāo)簽之間的關(guān)系,也可以從圖形中看出每一維的數(shù)據(jù)是服從何種分布的。特意盜了兩張圖。
對每兩組屬性畫出其散點圖,這樣可以較為容易地看出屬性之間的關(guān)聯(lián)性。
從上面的描述可以看出,Summarize Data 和 Visualize Data 兩個過程之間是相輔相成的。
算法抽查
關(guān)于這一點,在這一篇資料中我也是第一次見到。
對于一個具體的問題,我們也許有很多種算法可以對其進行求解,那么我們是不是需要對每一種方法都進行一次嘗試呢?并不需要,因為那樣太費時間,而且并不是所有的算法都能有效。抽查(spot-checking)就是對多個算法進行快速驗證,以決定對哪一個算法進行進一步的訓(xùn)練。
在進行算法的抽查時,并不需要使用使用數(shù)據(jù)集中的所有數(shù)據(jù)進行訓(xùn)練,只需要使用較小的一部分。在選擇完算法之后,再使用所有數(shù)據(jù)進行進一步的訓(xùn)練??梢允褂媒徊骝炞C的方法來進行該過程。
在進行算法抽查時,處于候選集中的算法的種類越多樣越好,這樣才能測試出哪種類型的算法更能學(xué)習(xí)到數(shù)據(jù)中的結(jié)構(gòu)。在選擇完算法之后,并不一定直接使用該算法進行進一步的學(xué)習(xí),可能會使用基于該算法的改進版本。
在該部分中,還有很重要的一塊內(nèi)容就是訓(xùn)練集、測試集的劃分,結(jié)果衡量標(biāo)準(zhǔn)的選擇,以及結(jié)果的可信度。這一部分內(nèi)容我也有寫博客進行具體的闡述,畢竟水太深。
結(jié)果的改進
算法訓(xùn)練完成之后,如果算法的結(jié)果不如意,該怎么辦?如果算法的結(jié)果還比較令人滿意,有沒有方法可以將結(jié)果再提升一點?這一部分主要就是解決這兩個問題。文章中提出了三個方法:
Algorithm tuning
Ensembles
Extreme Feature Engineering
接下來分別敘述下這三種方法。
算法中一般都充斥這很多的參數(shù),對算法進行訓(xùn)練,主要是在這些參數(shù)形成的參數(shù)空間中尋找到一個點,使得目標(biāo)函數(shù)達到最優(yōu)。文章中提到了一種方法,就是對參數(shù)空間進行采樣,發(fā)現(xiàn)那些可能的最優(yōu)值點,再從這些點開始訓(xùn)練??梢灾貜?fù)這個過程幾次,試圖獲取更優(yōu)的解。但是,很坑的一點是,文章中并沒有說明具體的采樣方法。因為是進行了多次訓(xùn)練,造成過擬合的風(fēng)險很大。
第二中方法就是集成方法,這個會有一篇博客專門敘述這個算法。
前兩種方法都是試圖在算法的本身做出一些突破,而第三種方法則是希望從數(shù)據(jù)本身著手。作者自己也說了,其實這種方法可以叫做『特征工程』,就是在數(shù)據(jù)的特征方面做出一些工作。通過特征的分解/合并,降低特征之間的關(guān)聯(lián)性。有些情況也會將離散的特征值轉(zhuǎn)變?yōu)檫B續(xù)的特征值。因為算法總是希望學(xué)習(xí)到數(shù)據(jù)中蘊含的某種模式,這樣才能有更強的泛化效果。如果一個模式過于復(fù)雜,那么算法的效果必然會收到影響。所以,我們希望將這個復(fù)雜的模式進行分解,這就是這個方法的初衷。在每一次訓(xùn)練時都可以進行該步驟,獲得新的訓(xùn)練/測試數(shù)據(jù)集(因為特征已經(jīng)發(fā)生了變化),通過在新數(shù)據(jù)集上的學(xué)習(xí)結(jié)果,對之后特征的分解/合并產(chǎn)生一些指導(dǎo)性的建議。
結(jié)果展示
當(dāng)你的算法能夠較好地解決一個問題的時候,你當(dāng)然希望將你的成果展示給大家。這里面就說到了兩種途徑:寫一篇論文(或者什么類似的東西)、將其與實際的產(chǎn)品相結(jié)合。恰好,這兩個方面我都沒有經(jīng)驗,然后就沒有然后了。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03