
機器學習算法需要注意的一些問題
對于機器學習的實際運用,光停留在知道了解的層面還不夠,我們需要對實際中容易遇到的一些問題進行深入的挖掘理解。我打算將一些瑣碎的知識點做一個整理。
這個問題是經(jīng)常遇到的。就拿有監(jiān)督的學習的二分類問題來說吧,我們需要正例和負例樣本的標注。如果我們拿到的訓練數(shù)據(jù)正例很少負例很多,那么直接拿來做分類肯定是不行的。通常需要做以下方案處理:
通過調(diào)整數(shù)據(jù)集中正負樣本的比例來解決數(shù)據(jù)不平衡,方法有:
正樣本本來就少,怎么增加呢?方法是直接復制已有的正樣本丟進訓練集。這樣可以稍微緩解正樣本缺失的困境,但是容易帶來一個問題,就是過擬合的潛在危險。因為這樣粗暴的引入正樣本并沒有增加數(shù)據(jù)集的樣本多樣性。如何設計復制哪些正樣本有一些技巧,比如選擇有特定意義的代表性的那些。
首先這是一個通用的合理的方法,但是負樣本的減少必然導致數(shù)據(jù)多樣性的損失。有一種方法可以緩解這個問題,那就是類似于隨機森林方法,每次正樣本數(shù)量不變,隨機選擇等量的不同的負樣本進行模型訓練,反復幾次,訓練多個模型,最后所有的模型投票決定最終的分類結果。
可以重新修改模型訓練的損失函數(shù),使得錯分正樣本的損失變大,錯分負樣本的損失變小。這樣訓練出來的模型就會對正負樣本有一個合理的判斷。
更多于此話題相關內(nèi)容請移步:
分類中數(shù)據(jù)不平衡問題的解決經(jīng)驗
機器學習中的數(shù)據(jù)不平衡問題
說到異常值,首先得說一下數(shù)據(jù)量的問題。異常值不是缺失值,更不是錯誤值,同樣是真實情況的表現(xiàn),之所以覺得一個數(shù)據(jù)異常,是因為我們能夠用到的數(shù)據(jù)量不夠大,無法準確地代表整個此類數(shù)據(jù)的分布。如果把異常值放在海量數(shù)據(jù)的大背景下,那么這個異常值也就不那么異常了。
下載摘自某大牛博客一段話:
異常值并非錯誤值,而同樣是真實情況的表現(xiàn),我們之所以認為異常,只是因為我們的數(shù)據(jù)量不足夠大而已。但是從實際的工業(yè)界來看,考慮到實際的計算能力以及效果,大多數(shù)公司都會對大數(shù)據(jù)做“去噪”,那么在去噪的過程中去除的不僅僅是噪音,也包括“異常點”,而這些“異常點”,恰恰把大數(shù)據(jù)的廣覆蓋度給降低了,于是利用大數(shù)據(jù)反而比小數(shù)據(jù)更容易產(chǎn)生趨同的現(xiàn)象。尤其對于推薦系統(tǒng)來說,這些“異常點”的觀察其實才是“個性化”的極致。
既然說到大數(shù)據(jù),同樣是這位大牛的一段話:
說得學術一些,我們不妨認為大數(shù)據(jù)是頻率學派對于貝葉斯學派一次強有力的逆襲。那么既然說到這個份上了,我們不妨思考一下,我們是不是有希望在回歸貝葉斯學派,利用先驗信息+小數(shù)據(jù)完成對大數(shù)據(jù)的反擊呢?
某些機器學習算法對異常值很敏感,比如:K-means聚類,AdaBoost。使用此類算法必須處理異常值。
某些算法擁有對異常值不敏感的特性,比如:KNN,隨機森林。
如何處理異常值?最簡單的方法就是直接丟掉。其它方法我后面會繼續(xù)研究。
過擬合可要命了,好不容易訓練一個模型,來一些測試數(shù)據(jù),分類結果非常的差。過擬合產(chǎn)生的原因:
訓練數(shù)據(jù)太少
模型太復雜
訓練數(shù)據(jù)中存在噪聲點(就算訓練數(shù)據(jù)足夠多)
幾乎所有的機器學習算法都會容易遇到過擬合的問題。所以先說一些解決過擬合的通用辦法。當然,首先得保證訓練數(shù)據(jù)不要太少。
正則化就是在模型的優(yōu)化目標上再加入一個懲罰因子。這樣模型的優(yōu)化策略就從經(jīng)驗風險最小化變?yōu)榻Y構風險最小化。
線性回歸正則化就是嶺回歸和lasso回歸,分別對應L2,L1罰項。
決策樹正則化就是剪枝,通常把子節(jié)點個數(shù)作為罰項。
在數(shù)據(jù)量足夠的情況下,可以采用交叉驗證的方式避免過擬合,甚至可以在正則化之后再做一次交叉驗證。
其它詳細研究請點擊:
機器學習過度擬合問題一些原因
有句話必須得放在前面:數(shù)據(jù)和特征決定了機器學習的上限,而模型和算法只是逼近這個上限而已。由此可見,特征工程尤其是特征選擇在機器學習中占有相當重要的地位。
首先拽一段英文定義:
Feature engineering is the process of transforming raw data into features that better represent the underlying problem to the predictive models, resulting in improved model accuracy on unseen data.
in a word, feature engineering is manually designing what the input x’s should be.
主要是出于如下考慮:
1. 特征維數(shù)越高,模型越容易過擬合,此時更復雜的模型就不好用。
2. 相互獨立的特征維數(shù)越高,在模型不變的情況下,在測試集上達到相同的效果表現(xiàn)所需要的訓練樣本的數(shù)目就越大。
3. 特征數(shù)量增加帶來的訓練、測試以及存儲的開銷都會增大。
4. 在某些模型中,例如基于距離計算的模型KMeans,KNN等模型,在進行距離計算時,維度過高會影響精度和性能。
5. 可視化分析的需要。在低維的情況下,例如二維,三維,我們可以把數(shù)據(jù)繪制出來,可視化地看到數(shù)據(jù)。當維度增高時,就難以繪制出來了。
在機器學習中,有一個非常經(jīng)典的維度災難的概念。用來描述當空間維度增加時,分析和組織高維空間,因體積指數(shù)增加而遇到各種問題場景。例如,100個平均分布的點能把一個單位區(qū)間以每個點距離不超過0.01采樣;而當維度增加到10后,如果以相鄰點距離不超過0.01小方格采樣單位超一單位超正方體,則需要10^20 個采樣點。
正是由于高維特征有如上描述的各種各樣的問題,所以我們需要進行特征降維和特征選擇等工作。
對于高維特征(成百上千維),比如圖像,文本,聲音的特征,特征的每一維沒有顯著意義的,最好要對特征先進行降維,也就是從初始數(shù)據(jù)中提取有用的信息。通過降維,將高維空間中的數(shù)據(jù)集映射到低維空間數(shù)據(jù),同時盡可能少地丟失信息,或者降維后的數(shù)據(jù)點盡可能地容易被區(qū)分。這樣,可以提取出顯著特征,避免維度災難,還可以避免特征之間的線性相關性。
PCA算法通過協(xié)方差矩陣的特征值分解能夠得到數(shù)據(jù)的主成分,以二維特征為例,兩個特征之間可能存在線性關系(例如運動的時速和秒速度),這樣就造成了第二維信息是冗余的。PCA的目標是發(fā)現(xiàn)這種特征之間的線性關系,并去除。
LDA算法考慮label,降維后的數(shù)據(jù)點盡可能地容易被區(qū)分。
通常遇到的情況是:特征不夠用。。在這種情況下,我們就要在設計算法之前,好好地挖掘一下特征。對于邏輯斯蒂回歸和決策樹,每一維的特征是有確切意義的。我們就要從各個方面,抽取與目標相關的所有可用信息作為特征。這個過程可能會比較痛苦。。
然后,是不是特征越多越好?其實也不是。盜一張圖過來如下:
可以發(fā)現(xiàn),剛開始模型的準確率隨著特征數(shù)量的增加而增加,當增加到一定程度便趨于穩(wěn)定了。如果還要強行加入如此多的特征,反而畫蛇添足,容易過擬合。然后,如果出現(xiàn)特征過多出現(xiàn)過擬合的情況,就要適當?shù)剡M行參數(shù)縮減。對于邏輯斯蒂回歸,某一維特征對應的參數(shù)如果接近為零,說明這個特征影響不大,就可以去掉。因此,我們的特征選擇過程一般如下:
這個過程的進行要同時觀察模型準確率的變化。
最后,特征選擇有哪些算法呢?
– 過濾方法:將所有特征進行打分評價,選擇最有效的一些特征。比如:卡法檢驗,信息增益,相關系數(shù)打分。
– 包裝方法:將特征組合的選擇看做是一個在特征空間中的搜索問題。比如:隨機爬山法,啟發(fā)式的搜索方法等。
– 嵌入方法:將特征選擇的過程嵌入到模型訓練的過程中,其實也就是正則化的方法。比如lasso回歸,嶺回歸,彈性網(wǎng)絡(Elastic Net)等。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(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è)務的價值轉化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結束)并非工作的終點,而是將數(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ù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(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 字符串截取轉日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
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