
在實際項目中,如何選擇合適的機器學習模型
在這個文章中,我們主要面向初學者或中級數據分析師,他們對識別和應用機器學習算法都非常感興趣,但是初學者在面對各種機器學習算法時,都會遇到一個問題是 “在實際項目中,我到底應該使用哪種算法呢?”。
這個問題的答案取決于許多的因素,其中包括:
數據的維度大小,數據的質量和數據的特征屬性;
你可以利用的計算資源;
你所在的項目組對該項目的時間預計;
你手上的數據能應用在哪些項目中;
即使是一位經驗豐富的數據科學家,在沒有對數據嘗試很多種不同的算法之前,他也不能確定哪一種算法在數據上面有更好的表現。但是,我們并不主張這種方式,一個一個算法去試驗。
我們希望自己有一點先驗知識,可以指導我們去如何選擇算法模型,幫助我們少走一點彎路。
機器學習算法表
上面的機器學習算法表可以幫助我們如何去選擇一個合適的機器學習算法,對于我們特定的項目問題。這篇文章,我們主要來講講如何去使用這個表格。
因為這個表格是為初學者所設定的,所以我們在討論這些算法的時候,會做一些簡化的假設工作。
這里所推薦的機器學習算法是由幾位數據科學家,機器學習專家和算法開發人員所共同反饋總結的。隨著后續的發展,我們會收集更加全的算法來更新這張表。
如何使用這種算法表
其實閱讀這種算法表非常簡單,我們可以采取 如果你想要進行,那么你可以使用這種模式來讀取。比如:
有時候,我們可能會有很多的條件需要去匹配算法,但有時候可能我們連一條總結的規則都沒有,以至于不能去利用這個算法表。其實,這是很正常的,因為這個算法表是我們憑借工程師的經驗總結處理的,因此有一些規則并不是很準確。
我和幾個好朋友一起討論過這個問題,我們一直覺得尋找最好的算法的唯一路徑可能就是去嘗遍所有的算法。但是這種方法非常 “蠢”。
機器學習類型
這部分我們會介紹一些最流行的機器學習模型類型。如果你對這些類別比較熟悉,那么對你以后去選擇機器學習模型是非常有利的。
監督學習
監督學習算法是基于一組標記數據進行預測的。
比如,歷史銷售數據可以來預測未來的銷售價格。應用監督學習算法,我們需要一個包含標簽的訓練數據集。我們可以使用這個訓練數據集去訓練我們的模型,從而得到一個從輸入數據到輸出期望數據之間的映射函數。
這個模型的推斷作用是從一個數據集中學習出一種模式,可以讓這個模型適應新的數據,也就是說去預測一些沒有看到過的數據。
分類:當數據被用于預測一個分類時,監督學習算法也可以稱為是一種分類算法。比如,我們的一張圖片可以被分類標記為狗或者貓。如果我們的分類標簽只有兩個類別,那么我們也把這個分類稱之為二分類問題。當我們需要分類的東西超過兩個類別的時候,這個模型就是一個多分類模型了。
回歸:當我們預測的值是一個連續值時,這個問題就變成了一個回歸問題。
預測:這是根據過去和現在的一些歷史數據,來預測將來的數據。最常用的一個領域就是趨勢分析。比如,我們可以根現在和過去幾年的銷售額來預測下一年的銷售額。
監督學習帶來的最大挑戰是標注數據,這是一項非常耗時的工程而且非常昂貴。那么如果標簽的數量有限,我們應該怎么辦呢?我們可以使用一些非標記的數據來加強監督學習。
由于在這種情況下我們的機器學習算法不是完全的監督學習,所有我們把該算法稱之為半監督學習算法。
在半監督學習中,我們可以使用未標記的數據和一小部分的標記數據來訓練我們的模型,從而來提高我們模型的準確性。
無監督學習
在使用無監督學習的時候,我們所使用的數據都是不用進行標記的。我們的算法模型會自動的去發現數據內在的一些模式,比如聚類結構,層次結構,稀疏樹和圖等等。
聚類:將一組數據進行分組,使得一個組里面的數據跟別的組里面的數據是有一定的區別,也就是說每一個組即使一個聚類。這種方法經常被用來做數據切分,也就是把一個大的數據集先切割成幾個小的數據集,而每一個小的數據集都是一個高度相似的數據集。這樣可以幫助分析者從中更好的找到數據之間的內部結構。
降維:減少數據變量中的維度。在很多的應用中,原始數據都是非常高維度的特征,但是這些維度中很多的特征都是多余的,或者說跟任務的沒有相關性。降低維度可以幫助我們更好的而發現真實數據之間潛在的內部關系。
強化學習是根據環境對智能體(agent)的反饋來分析和優化智能體的行為。智能體根據不同的場景會去嘗試不同的動作,然后分析不同動作所會帶來什么的回報,選取其中最大回報作為所采取的最終動作。
反復試錯和獎勵機制是強化學習和別的算法最不同的地方。
那么如何選擇這些類別的算法呢?
當我們去選擇一個算法的時候,總是會考慮到很多的方面,比如:模型準確率,訓練時間,可擴展性等等。這其中,最重要的可能就是準確率,但是對于初學者而言,可能最重要的是他們的熟悉程度。如果他們對一個模型很熟悉,那么第一個嘗試的往往就是這個模型。
當給定一個數據集的時候,我們首先想到的應該是如何快速的得到一個結果,也就是我們常說的 demo 算法。在這個過程中,我們首先關心的并不是算法結果的好壞,而是一整個算法在數據上面運行的流程。
初學者更加傾向于去選擇一些容易實現的算法,并且可以快速得到結果。這樣的工作節奏是非常好的,一旦你獲得了一些結果并且熟悉了數據,你可能就會愿意花更多的時候去使用更加復雜的算法來理解這些數據,從而獲得更好的結果。
即使我們到了這個階段,最好的算法可能也不是那個獲得最高準確率的算法,因為對于一個算法我們需要仔細的去調整參數和長時間訓練才能得到一個算法模型的最佳性能。而上面我們只是去簡單的運行了一下模型,得到一個結果而已。
選擇算法時的注意事項
正確率
獲得最準確的答案可能不總是最必要的。有時一個近似答案也是足夠了,當然這取決于你想要如何去使用你自己的算法模型。如果是這種情況,你可以采用一個近似的方法來縮短你構建模型的時間。
這種近似的處理方式還有另一個優點,就是可以幫助我們一定程度上面避免過擬合。
訓練時間
訓練模型所需要的時間在不同算法之間是變化很大的,有些算法可能幾分鐘就可以訓練完成,有些算法可能需要幾個小時才能訓練完成。訓練時間往往與模型準確率是密切相關的,簡單的說,可能訓練時間越長,模型的準確率就越高。
另外,有些算法可能對數值離散點數據更加敏感,而有些可能對連續數據更加敏感。如果我們的數據集非常大,而且時間非常緊,那么根據模型的訓練時間來選擇算法是一條非常好的路徑。
線性
很多的機器學習算法是可以利用線性模型來解決的。線性分類算法假設數據是可以利用一條直線來進行分裂的。
線性回歸模型假設數據遵循一條直線劃分,這些假設對于一些數據分析并不是一個很壞的假設,但是在某些方面,這些假設可能就會降低很多的準確率。
對于一些非線性邊界 —— 依賴于線性分類模型就會降低很多的精度了。
有些數據可能無法簡單的判斷數據是線性的還是非線性的,但是在實際項目中很多的數據都會有一種非線性趨勢,這也是我們使用線性回歸方法產生比較大的誤差的一個原因。
盡管線性模型存在很多的不好方面,但是他往往是最簡單的算法,我們可以進行快速開發和試錯。
模型參數
參數是機器學習模型中最重要的部分。比如,模型的迭代次數,模型的規模大小等等都會影響到最后我們需要得到的結果,對算法的訓練時間和準確性都是非常敏感的。
通常,具有大量參數的算法都需要我們更多的實驗和調參來找到一個最好的參數組合。
當然大型的參數組合也是具有很多好處的,比如算法的靈活性會更加的強大。通常,我們可以得到一個更加好的模型結果。
個別算法的精準使用
對于個別算法,我們需要認真仔細的研究它的 “脾氣”,知道這些算法的輸入數據特征是什么,算法具體描述是什么,他們是如何工作的額,以及他們的輸出結果是代表什么含義。接下來,我們來學習幾個例子。
線性回歸是利用數理統計中回歸分析,來確定兩種或兩種以上變量間相互依賴的定量關系的一種統計分析方法。預測值 y 與變量 X 之間的關系是:
其中訓練數據集是:
參數向量 β 是我們需要模型學習的。
如果因變量不是連續的,而是離散分類的,那么線性回歸就需要被轉換成邏輯回歸。邏輯回歸是一種非常簡單,但是非常強大的分類算法。因此,當我們討論二分類問題時,可以把等式寫成:
在邏輯回歸中,我們使用不同的假設估計來區分屬于類別 “1” 的概率和屬于類別 “-1” 的概率。具體的說,我們嘗試學習的函數是:
其中,
決策樹和集成樹
決策樹,隨機森林和梯度提升都是基于決策樹實現的算法。決策樹有很多種,但是所有的變種都只做一件事 —— 將特征標簽細分到特定相同的區域里面。決策樹是非常容易理解的,而且非常容易實現。
然而,當我們把樹的深度做的很深的時候,模型就非常容易過擬合。這時候,采用隨機森林和梯度提升算法可以獲得良好的性能,這兩種模型也是目前比較流行的方式。
神經網絡是在 20 世紀 80 年代中期由于其并行和分布式的處理能力而興起的。近年來,由于卷積神經網絡,循環神經網絡和一些無監督學習算法的興起,圖形處理單元(GPU)和大規模并行處理(MPP)等越來越強大的計算能力,使得神經網絡再次得到了復興。
換句話說,以前的淺層神經網絡已經演變成了深層神經網絡。深度神經網絡在監督學習中取得了非常好的表現,比如語音識別和圖像分類領域都獲得了比人類好的正確率。在無監督領域,比如特征提取,深度學習也取得了很好的效果。
一般情況下,一個神經網絡主要由三方面組成:輸入層,隱藏層和輸出層。訓練數據定義了輸入層和輸出層的維度大小。當我們的輸出層是一些分類標簽的時候,那么那么我們整個模型所處理的就是一個分類問題。當輸出層是一個連續變量的時候,那么我們的整個模型所處理的就是一個回歸問題。當我們的輸出層和輸入層相同時,那么我們的這個模型所處理的可能是提取數據內部的特征。中間的隱藏層大小決定了整個模型的復雜性和建模能力。
總結
至此,我們已經學習了幾個算法的精準使用。在我們實際的項目中,我們需要做到對自己所熟悉的個別算法靈活使用。具體的算法表,可以查看下面這個:
圖中標記解釋:● - 表示擁有卓越的精確度,快速訓練時間和線性度 ;○ - 表示良好的準確性和適中的訓練時間。參數字段中的數值越大表示模型需要的參數數量越多。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號: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