
機器學習算法需要注意的一些問題
對于機器學習的實際運用,光停留在知道了解的層面還不夠,我們需要對實際中容易遇到的一些問題進行深入的挖掘理解。我打算將一些瑣碎的知識點做一個整理。
這個問題是經(jīng)常遇到的。就拿有監(jiān)督的學習的二分類問題來說吧,我們需要正例和負例樣本的標注。如果我們拿到的訓練數(shù)據(jù)正例很少負例很多,那么直接拿來做分類肯定是不行的。通常需要做以下方案處理:
通過調(diào)整數(shù)據(jù)集中正負樣本的比例來解決數(shù)據(jù)不平衡,方法有:
正樣本本來就少,怎么增加呢?方法是直接復制已有的正樣本丟進訓練集。這樣可以稍微緩解正樣本缺失的困境,但是容易帶來一個問題,就是過擬合的潛在危險。因為這樣粗暴的引入正樣本并沒有增加數(shù)據(jù)集的樣本多樣性。如何設(shè)計復制哪些正樣本有一些技巧,比如選擇有特定意義的代表性的那些。
首先這是一個通用的合理的方法,但是負樣本的減少必然導致數(shù)據(jù)多樣性的損失。有一種方法可以緩解這個問題,那就是類似于隨機森林方法,每次正樣本數(shù)量不變,隨機選擇等量的不同的負樣本進行模型訓練,反復幾次,訓練多個模型,最后所有的模型投票決定最終的分類結(jié)果。
可以重新修改模型訓練的損失函數(shù),使得錯分正樣本的損失變大,錯分負樣本的損失變小。這樣訓練出來的模型就會對正負樣本有一個合理的判斷。
更多于此話題相關(guān)內(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ù)一些,我們不妨認為大數(shù)據(jù)是頻率學派對于貝葉斯學派一次強有力的逆襲。那么既然說到這個份上了,我們不妨思考一下,我們是不是有希望在回歸貝葉斯學派,利用先驗信息+小數(shù)據(jù)完成對大數(shù)據(jù)的反擊呢?
某些機器學習算法對異常值很敏感,比如:K-means聚類,AdaBoost。使用此類算法必須處理異常值。
某些算法擁有對異常值不敏感的特性,比如:KNN,隨機森林。
如何處理異常值?最簡單的方法就是直接丟掉。其它方法我后面會繼續(xù)研究。
過擬合可要命了,好不容易訓練一個模型,來一些測試數(shù)據(jù),分類結(jié)果非常的差。過擬合產(chǎn)生的原因:
訓練數(shù)據(jù)太少
模型太復雜
訓練數(shù)據(jù)中存在噪聲點(就算訓練數(shù)據(jù)足夠多)
幾乎所有的機器學習算法都會容易遇到過擬合的問題。所以先說一些解決過擬合的通用辦法。當然,首先得保證訓練數(shù)據(jù)不要太少。
正則化就是在模型的優(yōu)化目標上再加入一個懲罰因子。這樣模型的優(yōu)化策略就從經(jīng)驗風險最小化變?yōu)榻Y(jié)構(gòu)風險最小化。
線性回歸正則化就是嶺回歸和lasso回歸,分別對應(yīng)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)典的維度災(zāi)難的概念。用來描述當空間維度增加時,分析和組織高維空間,因體積指數(shù)增加而遇到各種問題場景。例如,100個平均分布的點能把一個單位區(qū)間以每個點距離不超過0.01采樣;而當維度增加到10后,如果以相鄰點距離不超過0.01小方格采樣單位超一單位超正方體,則需要10^20 個采樣點。
正是由于高維特征有如上描述的各種各樣的問題,所以我們需要進行特征降維和特征選擇等工作。
對于高維特征(成百上千維),比如圖像,文本,聲音的特征,特征的每一維沒有顯著意義的,最好要對特征先進行降維,也就是從初始數(shù)據(jù)中提取有用的信息。通過降維,將高維空間中的數(shù)據(jù)集映射到低維空間數(shù)據(jù),同時盡可能少地丟失信息,或者降維后的數(shù)據(jù)點盡可能地容易被區(qū)分。這樣,可以提取出顯著特征,避免維度災(zāi)難,還可以避免特征之間的線性相關(guān)性。
PCA算法通過協(xié)方差矩陣的特征值分解能夠得到數(shù)據(jù)的主成分,以二維特征為例,兩個特征之間可能存在線性關(guān)系(例如運動的時速和秒速度),這樣就造成了第二維信息是冗余的。PCA的目標是發(fā)現(xiàn)這種特征之間的線性關(guān)系,并去除。
LDA算法考慮label,降維后的數(shù)據(jù)點盡可能地容易被區(qū)分。
通常遇到的情況是:特征不夠用。。在這種情況下,我們就要在設(shè)計算法之前,好好地挖掘一下特征。對于邏輯斯蒂回歸和決策樹,每一維的特征是有確切意義的。我們就要從各個方面,抽取與目標相關(guān)的所有可用信息作為特征。這個過程可能會比較痛苦。。
然后,是不是特征越多越好?其實也不是。盜一張圖過來如下:
可以發(fā)現(xiàn),剛開始模型的準確率隨著特征數(shù)量的增加而增加,當增加到一定程度便趨于穩(wěn)定了。如果還要強行加入如此多的特征,反而畫蛇添足,容易過擬合。然后,如果出現(xiàn)特征過多出現(xiàn)過擬合的情況,就要適當?shù)剡M行參數(shù)縮減。對于邏輯斯蒂回歸,某一維特征對應(yīng)的參數(shù)如果接近為零,說明這個特征影響不大,就可以去掉。因此,我們的特征選擇過程一般如下:
這個過程的進行要同時觀察模型準確率的變化。
最后,特征選擇有哪些算法呢?
– 過濾方法:將所有特征進行打分評價,選擇最有效的一些特征。比如:卡法檢驗,信息增益,相關(guān)系數(shù)打分。
– 包裝方法:將特征組合的選擇看做是一個在特征空間中的搜索問題。比如:隨機爬山法,啟發(fā)式的搜索方法等。
– 嵌入方法:將特征選擇的過程嵌入到模型訓練的過程中,其實也就是正則化的方法。比如lasso回歸,嶺回歸,彈性網(wǎng)絡(luò)(Elastic Net)等。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10