機器學習_特徵處理
內容來源於其他部落格,這裡做了個彙總,侵刪。
標準化歸一化資料
資料標準化是將資料按比例縮放,使之落入一個小的特定區間。去除資料的單位限制,將其轉化為無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權。最典型的就是資料的歸一化處理,即將資料統一對映到[0,1]區間上。
歸一化的作用:
1. 提升模型的收斂速度
如下圖,x1的取值為0-2000,而x2的取值為1-5,假如只有這兩個特徵,對其進行優化時,會得到一個窄長的橢圓形,導致在梯度下降時,梯度的方向為垂直等高線的方向而走之字形路線,這樣會使迭代很慢,相比之下,右圖的迭代就會很(步長走多走少方向總是對的,不會走偏)
2.提升模型的精度
在多指標評價體系中,由於各評價指標的性質不同,通常具有不同的量綱和數量級。當各指標間的水平相差很大時,如果直接用原始指標值進行分析,就會突出數值較高的指標在綜合分析中的作用,相對削弱數值水平較低指標的作用。
歸一化常用方法:
方法一:min-max標準化(Min-max normalization)/0-1標準化(0-1 normalization)
公式如下。
其中max為樣本資料的最大值,min為樣本資料的最小值。
或者
其中
該方法的缺陷是當有新資料加入時,可能導致max和min的變化,需要重新定義。
方法二:log函式轉換
公式如下。
max為樣本資料最大值,並且所有的資料都要大於等於1。
方法三:反正切函式
反正切函式影象如下
公式如下。
使用這個方法需要注意的是如果想對映的區間為[0,1],則資料都應該大於等於0,小於0的資料將被對映到[-1,0]區間上,而並非所有資料標準化的結果都對映到[0,1]區間上。
方法四:標準差標準化
這種方法給予原始資料的均值(mean)和標準差(standard deviation)進行資料的標準化。
經過處理的資料符合標準正態分佈,即均值為0,標準差為1,其轉化函式為:
公式如下。
其中
將特徵轉化為一個數值向量
下面分別對無序特徵、有序特徵
無序特徵
可以使用One-hot(也叫One-of-k)的方法把每個無序特徵轉化為一個數值向量。比如一個無序特徵color有三種取值:red
,green
,blue
。那麼可以用一個長度為3的向量來表示它,向量中的各個值分別對應於red
,green
,blue
。如:
這就類似於NLP中的詞向量模型
上面說的表達方式裡有一個維度是可以省略的。既然我們知道color一定是取3個值中的一個,那麼我們知道向量的前兩個元素值,就能推斷第3個值是多少。所以,其實用下面的方式就可以表達到底是哪種顏色:
這樣表達的好處是少用了一個維度,降低了轉化後特徵之間的相關性。但在實際問題中特徵基本都或多或少會有些缺失。使用第一種表達方式就可以用全0的向量來表示值缺失,而第二種表達方式是沒法表達缺失的。
有序特徵
有些特徵雖然也像無序特徵那樣只取限定的幾個值,但是這些值之間有順序的含義。例如一個人的狀態status有三種取值:bad
, normal
, good
,顯然bad < normal < good。對於這些狀態的表示式可以如下圖所示:
上面這種表達方式很巧妙地利用遞進表達了值之間的順序關係。
離散化
通常我們會將連續性特徵離散化,是把原來的值分段,轉化成一個取值為0或1的向量。原始值落在某個段裡,向量中此段對應的元素就為1,否則為0。
這樣做的優勢是:
- 離散特徵的增加和減少都很容易,易於模型的快速迭代;
- 稀疏向量內積乘法運算速度快,計算結果方便儲存,容易擴充套件;
- 離散化後的特徵對異常資料有很強的魯棒性:比如一個特徵是年齡>30是1,否則0。如果特徵沒有離散化,一個異常數- - - 據“年齡300歲”會給模型造成很大的干擾;
- 邏輯迴歸屬於廣義線性模型,表達能力受限;單變數離散化為N個後,每個變數有單獨的權重,相當於為模型引入了非線- - 性,能夠提升模型表達能力,加大擬合;
- 離散化後可以進行特徵交叉,由M+N個變數變為M*N個變數,進一步引入非線性,提升表達能力;
- 特徵離散化後,模型會更穩定,比如如果對使用者年齡離散化,20-30作為一個區間,不會因為一個使用者年齡長了一歲就變成一個完全不同的人。當然處於區間相鄰處的樣本會剛好相反,所以怎麼劃分區間是門學問;
特徵離散化以後,起到了簡化了邏輯迴歸模型的作用,降低了模型過擬合的風險。
下面給出一個簡單示例:
比如取離散點
離散化方法的關鍵是怎麼確定分段中的離散點。下面是常用的選取離散點的方法:
- 等距離離散:顧名思義,就是離散點選取等距點。我們上面對
x 取離散點{0.5,1.5,2.5} 就是一種等距離散,見下圖。圖中垂直的灰線代表離散點。 - 等樣本點離散:選取的離散點保證落在每段裡的樣本點數量大致相同
- 畫圖觀察趨勢:以
x 為橫座標,y 為縱座標,畫圖,看曲線的趨勢和拐點。通過觀察下面的圖我們發現可以利用3條直線(紅色直線)來逐段近似原來的曲線。把離散點設為兩條直線相交的各個點,我們就可以把xx離散化為長度為3的向量。
參考
相關推薦
機器學習_特徵處理
內容來源於其他部落格,這裡做了個彙總,侵刪。 標準化歸一化資料 資料標準化是將資料按比例縮放,使之落入一個小的特定區間。去除資料的單位限制,將其轉化為無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權。最典型的就是資料的歸一化處理,即將資料統一對映到
機器學習——資料特徵預處理
歸一化以及標準化 歸一化 特定:通過對原始資料進行變換把資料對映到(預設為[0,1])之間 公式:X'=(x-min)/(max-min) X''=X'*(mx-mi)+mi 注意:作用於每一列,max為一列的最大值,min為一列的最小值,那麼X''為最終結果,mx,mi分別為指定區
機器學習 --2 特徵預處理 之 資料將維
特徵選擇 概念 特徵選擇就是單純地從提取到的所有特徵中選擇部分特徵作為訓練集特徵,特徵在選擇前和選擇後可以改變值、也不改變值,但是選擇後的特徵維數肯定比選擇前小,畢竟我們只選擇了其中的一部分特徵。 方差過濾式 # 按照方差過濾 from sklearn.f
機器學習 --2 特徵預處理 之 資料標準化
歸一化: API位置 sklearn.preprocessing 歸一化: 特點:通過對原始資料進行變換把資料對映到(預設為[0,1])之間 注意也可以通過指定MinMaxScalar 裡邊的feature_range 來指定縮放的範圍 示例程式碼
【機器學習】特徵工程多特徵值序列化數值化獨熱編碼處理(LabelEncoder, pd.factorize())
多特徵值序列化數值化獨熱編碼處理 當我們在運用某些模型時,比如在Scikit-learn中,它要求資料都得是numberic(數值型),若是文字型別就無法進行訓練。 那麼在這種情況下,我們就應該先對資料進行序列化數值化: 下面是幾種在Python中數值化的方法: 1
機器學習_保留分類資訊的多工特徵選擇/矩陣的k範數
0.特徵選擇 【1】特徵選擇:就是挑選具有較高區分能力的特徵(理:之前還在西瓜書的決策樹和特徵選取中學習過資訊熵的方法) 1.問題的出現 【1】常見的特徵評價標準多用於單變數的度量(例子:西瓜書裡的資訊熵、過濾式特徵選取裡的距離法),只能保證在選取時本輪最優,但無法保證所選
機器學習之特徵工程-資料預處理
摘自 jacksu在簡書 機器學習之特徵工程-資料預處理 https://www.jianshu.com/p/23b493d38b5b 通過特徵提取,我們能得到未經處理的特徵,這時的特徵可能有以下問題: 不屬於同一量綱:即特徵的規格不一樣,不能夠放在
Python資料探勘與機器學習_通訊信用風險評估實戰(2)——資料預處理
系列目錄: 資料說明 通過對讀取資料的實踐,下面是資料集檔案對應讀取後的DataFrame說明。 資料檔案 DataFrame DataTech_Credit_Train_Communication1.txt train
機器學習_路徑
ren ans com ech www cfa tail http dev 1、http://blog.csdn.net/baihuaxiu123/article/details/52464510 2、http://www.cnblogs.com/hudongni1/p/5
關於機器學習中文本處理的一些常用方法
機器學習 tfidf lda word2vec前言 文本挖掘也是機器學習或者說是人工智能最需要處理的一類信息(其它的諸如語音、圖像及視頻處理等);隨著數字信息化和網絡化進程不斷深入,用戶的在線交流、發布、共享等都被以文字形式記錄下來,它們成為分析語言和理解社會的重要素材來源,對於文本的挖掘主要包括文檔分類、
機器學習缺失值處理方法匯總
www. 導致 -m 缺少 噪聲 分析方法 答案 出發點 爆炸 來源網址:http://blog.csdn.net/w352986331qq/article/details/78639233 缺失值處理方法綜述 缺失值是指粗糙數據中由於缺少信息而造成的數據的聚類、分組、刪失
機器學習_決策樹
TP mage 技術分享 ima height 分享圖片 image bsp 決策樹 機器學習_決策樹
機器學習_貝葉斯算法
info image inf 機器 ima bubuko 分享 img 算法 機器學習_貝葉斯算法
機器學習_線性回歸
ray 線性回歸 麻煩 小時 數據集 nal best lin rand() 線性回歸 人工智能是機器學習的父類;機器學習是深度學習的父類 1. 怎麽做線性回歸? 2. 理解回歸 -- 最大似然函數 3. 應用正態分布概率密度函數 -- 對數總似然 4
機器學習_決策樹Python代碼詳解
機器 one math n) sco atl return 復雜度 重復 決策樹優點:計算復雜度不高,輸出結果易於理解,對中間值的缺失不敏感,可以處理不相關特征數據; 決策樹缺點:可能會產生過度匹配問題。 決策樹的一般步驟: (1)代碼中def 1,計算給定數據集的香農熵:
機器學習筆記——特徵選擇
常見的特徵選擇方法大致可分為三類: 過濾式:過濾式方法先對資料集進行特徵選擇,然後再訓練學習器,特徵選擇過程與後續學習器無關。這相當於先用特徵選擇過程對初始特徵進行“過濾”,再用過濾後的特徵來訓練模型。 包裹式:包裹式特徵選擇直接把最終將要使用的學習器的效能作為特徵子集的評價標準。換言之,包
機器學習特徵值特徵抽取
根據文字的的特徵值,進行特徵值的抽取 from sklearn.feature_extraction import DictVectorizer from sklearn.feature_extraction.text import CountVectorizer def coun
系統學習機器學習之特徵工程(二)--離散型特徵編碼方式:LabelEncoder、one-hot與啞變數*
轉自:https://www.cnblogs.com/lianyingteng/p/7792693.html 在機器學習問題中,我們通過訓練資料集學習得到的其實就是一組模型的引數,然後通過學習得到的引數確定模型的表示,最後用這個模型再去進行我們後續的預測分類等工作。在模型訓練過程中,我們會對訓練
python機器學習_(1)鳶尾花的分類
鳶尾花的分類是python機器學習中比較經典的一個入門式教學課程,屬於監督學習演算法包括四個方面,訓練,測試,評估,評估此次記錄也適合從這四個方面出發一:訓練利用已知的鳶尾花資料構建機器學習模型,用於預測新測量的鳶尾花的品種。鳶尾花的資料哪裡來呢?有一個開源專案叫做sciket-learn,裡面有鳶尾花的15
coursera 斯坦福 Andrew Ng 機器學習_程式設計作業
一. 第二週程式設計作業: Linear Regression 1.computeCost.m 公式: 程式碼: %計算成本J tmp = (X * theta - y) .^ 2; J = 1 / (2 * m) * sum(tmp); 2.gradientD