在機器學習中,我們在處理資料的時候,經常把連續性特徵離散化,那麼我們為什麼要進行離散化處理,進行離散化處理的好處是什麼?
資料離散化是指將連續的資料進行分段,使其變為一段段離散化的區間。分段的原則有基於等距離、等頻率或優化的方法。離散化的目標是為了把連續性問題轉化成計算機能夠處理的離散性問題。資料離散化的原因主要有以下幾點:
1.演算法需要
例如決策樹,*****bayes等演算法本身不能直接使用連續型變數,連續型資料只有經離散處理後才能進入演算法引擎。
2.對異常資料有很強的魯棒性
比如乙個特徵是年齡》30是1,否則0。如果特徵沒有離散化,乙個異常資料「年齡300歲」會給模型造成很大的干擾。
3.對非線性關係進行診斷和描述
對連續型資料進行離散處理後,自變數和目標變數之間的關係變得清晰化。如果兩者之間是非線性關係,可以重新定義離散後變數每段的取值,如採取0,1的形式,由乙個變數派生為多個啞變數,分別確定每段和目標變數間的聯絡。這樣做,雖然減少了模型的自由度,但可以大大提高模型的靈活度。
4.為了加快運算速度
稀疏向量內積乘法運算速度快,計算結果方便儲存,容易擴充套件。
5.特徵交叉
離散化後可以進行特徵交叉,由m+n個變數變為m*n個變數,進一步引入非線性,提公升表達能力。
1.離散特徵的增加和減少都很容易,易於模型的快速迭代;
2.稀疏向量內積乘法運算速度快,計算結果方便儲存,容易擴充套件;
3.離散化後的特徵對異常資料有很強的魯棒性:比如乙個特徵是年齡》30是1,否則0。
如果特徵沒有離散化,乙個異常資料「年齡300歲」會給模型造成很大的干擾;
4.邏輯回歸屬於廣義線性模型,表達能力受限;單變數離散化為n個後,每個變數有單獨的權重,相當於為模型引入了非線性,能夠提公升模型表達能力,加大擬合;
5.特徵離散化後,模型會更穩定,比如如果對使用者年齡離散化,20-30作為乙個區間,不會因為乙個使用者年齡長了一歲就變成乙個完全不同的人。當然處於區間相鄰處的樣本會剛好相反,所以怎麼劃分區間是門學問。
離散化處理
作用 使資料的值域變小,便於根據值域構造樹狀陣列 線段樹等結構。步驟 輸入,排序,去重,索引。注意 離散化僅適用於只關注元素之間的大小關係而不關注元素本身的值。離散化處理 功能 將a陣列中的數離散化到x陣列,使值域變小 include include include using namespace ...
離散化處理
題目描述 小魚有 n 名優秀的粉絲。粉絲們得知小魚將會在一條直線上出現,打算去膜他。為了方便,粉絲們在這條直線上建立數軸。第 i 名粉絲有乙個偵查區間 li,ri 如果小魚在 j li j ri 處出現,這名粉絲將立刻發現並膜他。小魚希望膜他的人越多越好,但是他不能分身,因此只能選擇乙個位置出現。小...
離散化處理介紹
對於一串數字序列 或者乙個平面 我們要得到其中每個位置得相對位置,但這段數字可能存在間隔十分大,從而產生類似於稀疏矩陣這樣浪費空間的問題 這個形容可能不恰當 比如我們要對這段序列進行桶排序類似物的處理。這是我們可以對其進行求出相對位置 也可以理解為這個數字在這段序列中的排名 而不是原本的絕對位置,利...