日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

线性稀疏自编码机_特征工程之特征缩放amp;特征编码

發(fā)布時(shí)間:2025/4/5 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性稀疏自编码机_特征工程之特征缩放amp;特征编码 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

機(jī)器學(xué)習(xí)入門(mén)系列(2)--如何構(gòu)建一個(gè)完整的機(jī)器學(xué)習(xí)項(xiàng)目,第五篇!

本篇文章會(huì)繼續(xù)介紹特征工程的內(nèi)容,這次會(huì)介紹特征縮放和特征編碼,前者主要是歸一化和正則化,用于消除量綱關(guān)系的影響,后者包括了序號(hào)編碼、獨(dú)熱編碼等,主要是處理類(lèi)別型、文本型以及連續(xù)型特征。


3.2 特征縮放

特征縮放主要分為兩種方法,歸一化和正則化。

3.2.1 歸一化

  • 歸一化(Normalization),也稱(chēng)為標(biāo)準(zhǔn)化,這里不僅僅是對(duì)特征,實(shí)際上對(duì)于原始數(shù)據(jù)也可以進(jìn)行歸一化處理,它是將特征(或者數(shù)據(jù))都縮放到一個(gè)指定的大致相同的數(shù)值區(qū)間內(nèi)。
  • 歸一化的兩個(gè)原因:
    • 某些算法要求樣本數(shù)據(jù)或特征的數(shù)值具有零均值和單位方差;
    • 為了消除樣本數(shù)據(jù)或者特征之間的量綱影響,即消除數(shù)量級(jí)的影響。如下圖所示是包含兩個(gè)屬性的目標(biāo)函數(shù)的等高線
      • 數(shù)量級(jí)的差異將導(dǎo)致量級(jí)較大的屬性占據(jù)主導(dǎo)地位。從下圖左看到量級(jí)較大的屬性會(huì)讓橢圓的等高線壓縮為直線,使得目標(biāo)函數(shù)僅依賴(lài)于該屬性。
      • 數(shù)量級(jí)的差異會(huì)導(dǎo)致迭代收斂速度減慢。原始的特征進(jìn)行梯度下降時(shí),每一步梯度的方向會(huì)偏離最小值(等高線中心點(diǎn))的方向,迭代次數(shù)較多,且學(xué)習(xí)率必須非常小,否則非常容易引起寬幅震蕩。但經(jīng)過(guò)標(biāo)準(zhǔn)化后,每一步梯度的方向都幾乎指向最小值(等高線中心點(diǎn))的方向,迭代次數(shù)較少。
      • 所有依賴(lài)于樣本距離的算法對(duì)于數(shù)據(jù)的數(shù)量級(jí)都非常敏感。比如 KNN 算法需要計(jì)算距離當(dāng)前樣本最近的 k 個(gè)樣本,當(dāng)屬性的量級(jí)不同,選擇的最近的 k 個(gè)樣本也會(huì)不同。

  • 常用的兩種歸一化方法:
    • 線性函數(shù)歸一化(Min-Max Scaling)。它對(duì)原始數(shù)據(jù)進(jìn)行線性變換,使得結(jié)果映射到[0,1]的范圍,實(shí)現(xiàn)對(duì)原始數(shù)據(jù)的等比縮放,公式如下:

    其中 X 是原始數(shù)據(jù),

    分別表示數(shù)據(jù)最大值和最小值。
    • 零均值歸一化(Z-Score Normalization)。它會(huì)將原始數(shù)據(jù)映射到均值為 0,標(biāo)準(zhǔn)差為 1 的分布上。假設(shè)原始特征的均值是、標(biāo)準(zhǔn)差是,則公式如下:

  • 如果數(shù)據(jù)集分為訓(xùn)練集、驗(yàn)證集、測(cè)試集,那么三個(gè)數(shù)據(jù)集都采用相同的歸一化參數(shù),數(shù)值都是通過(guò)訓(xùn)練集計(jì)算得到,即上述兩種方法中分別需要的數(shù)據(jù)最大值、最小值,方差和均值都是通過(guò)訓(xùn)練集計(jì)算得到(這個(gè)做法類(lèi)似于深度學(xué)習(xí)中批歸一化,BN的實(shí)現(xiàn)做法)。
  • 歸一化不是萬(wàn)能的,實(shí)際應(yīng)用中,通過(guò)梯度下降法求解的模型是需要?dú)w一化的,這包括線性回歸、邏輯回歸、支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)等模型。但決策樹(shù)模型不需要,以 C4.5 算法為例,決策樹(shù)在分裂結(jié)點(diǎn)時(shí)候主要依據(jù)數(shù)據(jù)集 D 關(guān)于特征 x 的信息增益比,而信息增益比和特征是否經(jīng)過(guò)歸一化是無(wú)關(guān)的,歸一化不會(huì)改變樣本在特征 x 上的信息增益。
  • 3.2.2 正則化

  • 正則化是將樣本或者特征的某個(gè)范數(shù)(如 L1、L2 范數(shù))縮放到單位 1。
  • 假設(shè)數(shù)據(jù)集為:

    對(duì)樣本首先計(jì)算 Lp 范數(shù),得到:

    正則化后的結(jié)果是:每個(gè)屬性值除以其 Lp 范數(shù)

  • 正則化的過(guò)程是針對(duì)單個(gè)樣本的,對(duì)每個(gè)樣本將它縮放到單位范數(shù)。
    歸一化是針對(duì)單個(gè)屬性的,需要用到所有樣本在該屬性上的值。
  • 通常如果使用二次型(如點(diǎn)積)或者其他核方法計(jì)算兩個(gè)樣本之間的相似性時(shí),該方法會(huì)很有用。
  • 3.3 特征編碼

    3.3.1 序號(hào)編碼(Ordinal Encoding)

    定義:序號(hào)編碼一般用于處理類(lèi)別間具有大小關(guān)系的數(shù)據(jù)。

    比如成績(jī),可以分為高、中、低三個(gè)檔次,并且存在“高>中>低”的大小關(guān)系,那么序號(hào)編碼可以對(duì)這三個(gè)檔次進(jìn)行如下編碼:高表示為 3,中表示為 2,低表示為 1,這樣轉(zhuǎn)換后依然保留了大小關(guān)系。

    3.3.2 獨(dú)熱編碼(One-hot Encoding)

    定義:獨(dú)熱編碼通常用于處理類(lèi)別間不具有大小關(guān)系的特征。

    獨(dú)熱編碼是采用 N 位狀態(tài)位來(lái)對(duì) N 個(gè)可能的取值進(jìn)行編碼。比如血型,一共有 4 個(gè)取值(A、B、AB 以及 O 型),那么獨(dú)熱編碼會(huì)將血型轉(zhuǎn)換為一個(gè) 4 維稀疏向量,分別表示上述四種血型為:

    • A型:(1,0,0,0)
    • B型:(0,1,0,0)
    • AB型:(0,0,1,0)
    • O型:(0,0,0,1)

    獨(dú)熱編碼的優(yōu)點(diǎn)有以下幾個(gè):

    • 能夠處理非數(shù)值屬性。比如血型、性別等
    • 一定程度上擴(kuò)充了特征。
    • 編碼后的向量是稀疏向量,只有一位是 1,其他都是 0,可以利用向量的稀疏來(lái)節(jié)省存儲(chǔ)空間。
    • 能夠處理缺失值。當(dāng)所有位都是 0,表示發(fā)生了缺失。此時(shí)可以采用處理缺失值提到的高維映射方法,用第 N+1 位來(lái)表示缺失值。

    當(dāng)然,獨(dú)熱編碼也存在一些缺點(diǎn):

    1.高維度特征會(huì)帶來(lái)以下幾個(gè)方面問(wèn)題:

    • KNN 算法中,高維空間下兩點(diǎn)之間的距離很難得到有效的衡量;
    • 邏輯回歸模型中,參數(shù)的數(shù)量會(huì)隨著維度的增高而增加,導(dǎo)致模型復(fù)雜,出現(xiàn)過(guò)擬合問(wèn)題;
    • 通常只有部分維度是對(duì)分類(lèi)、預(yù)測(cè)有幫助,需要借助特征選擇來(lái)降低維度。

    2.決策樹(shù)模型不推薦對(duì)離散特征進(jìn)行獨(dú)熱編碼,有以下兩個(gè)主要原因:

    • 產(chǎn)生樣本切分不平衡問(wèn)題,此時(shí)切分增益會(huì)非常小。
      比如對(duì)血型做獨(dú)熱編碼操作,那么對(duì)每個(gè)特征是否 A 型、是否 B 型、是否 AB 型、是否 O 型,會(huì)有少量樣本是 1 ,大量樣本是 0。
      這種劃分的增益非常小,因?yàn)椴鸱种?#xff1a;
      • 較小的那個(gè)拆分樣本集,它占總樣本的比例太小。無(wú)論增益多大,乘以該比例之后幾乎可以忽略。
      • 較大的那個(gè)拆分樣本集,它幾乎就是原始的樣本集,增益幾乎為零。
    • 影響決策樹(shù)的學(xué)習(xí)。
      決策樹(shù)依賴(lài)的是數(shù)據(jù)的統(tǒng)計(jì)信息。而獨(dú)熱碼編碼會(huì)把數(shù)據(jù)切分到零散的小空間上。在這些零散的小空間上,統(tǒng)計(jì)信息是不準(zhǔn)確的,學(xué)習(xí)效果變差。
      本質(zhì)是因?yàn)楠?dú)熱編碼之后的特征的表達(dá)能力較差。該特征的預(yù)測(cè)能力被人為的拆分成多份,每一份與其他特征競(jìng)爭(zhēng)最優(yōu)劃分點(diǎn)都失敗。最終該特征得到的重要性會(huì)比實(shí)際值低。

    3.3.3 二進(jìn)制編碼(Binary Encoding)

    二進(jìn)制編碼主要分為兩步:

  • 先采用序號(hào)編碼給每個(gè)類(lèi)別賦予一個(gè)類(lèi)別 ID;
  • 接著將類(lèi)別 ID 對(duì)應(yīng)的二進(jìn)制編碼作為結(jié)果。
  • 繼續(xù)以血型為例子,如下表所示:

    血型類(lèi)別 ID二進(jìn)制表示獨(dú)熱編碼A10 0 11 0 0 0B20 1 00 1 0 0AB30 1 10 0 1 0O41 0 00 0 0 1

    從上表可以知道,二進(jìn)制編碼本質(zhì)上是利用二進(jìn)制對(duì)類(lèi)別 ID 進(jìn)行哈希映射,最終得到 0/1 特征向量,并且特征維度小于獨(dú)熱編碼,更加節(jié)省存儲(chǔ)空間。

    3.3.4 二元化

    定義:特征二元化就是將數(shù)值型的屬性轉(zhuǎn)換為布爾型的屬性。通常用于假設(shè)屬性取值分布是伯努利分布的情形。

    特征二元化的算法比較簡(jiǎn)單。對(duì)屬性 j 指定一個(gè)閾值 m。

    • 如果樣本在屬性 j 上的值大于等于 m, 則二元化后為 1;
    • 如果樣本在屬性 j 上的值小于 m,則二元化為 0

    根據(jù)上述定義,m 是一個(gè)關(guān)鍵的超參數(shù),它的取值需要結(jié)合模型和具體的任務(wù)來(lái)選擇。

    3.3.5 離散化

    定義:顧名思義,離散化就是將連續(xù)的數(shù)值屬性轉(zhuǎn)換為離散的數(shù)值屬性。

    那么什么時(shí)候需要采用特征離散化呢?

    這背后就是需要采用“海量離散特征+簡(jiǎn)單模型”,還是“少量連續(xù)特征+復(fù)雜模型”的做法了。

    • 對(duì)于線性模型,通常使用“海量離散特征+簡(jiǎn)單模型”。
      • 優(yōu)點(diǎn):模型簡(jiǎn)單
      • 缺點(diǎn):特征工程比較困難,但一旦有成功的經(jīng)驗(yàn)就可以推廣,并且可以很多人并行研究。
    • 對(duì)于非線性模型(比如深度學(xué)習(xí)),通常使用“少量連續(xù)特征+復(fù)雜模型”。
      • 優(yōu)點(diǎn):不需要復(fù)雜的特征工程
      • 缺點(diǎn):模型復(fù)雜

    分桶

    1.離散化的常用方法是分桶:

    • 將所有樣本在連續(xù)的數(shù)值屬性 j 的取值從小到大排列 。
    • 然后從小到大依次選擇分桶邊界 。其中:
      • M 為分桶的數(shù)量,它是一個(gè)超參數(shù),需要人工指定。
      • 每個(gè)桶的大小 也是一個(gè)超參數(shù),需要人工指定。
    • 給定屬性 j 的取值,對(duì)其進(jìn)行分桶:
      • 如果,則分桶編號(hào)是 0。分桶后的屬性的取值為 0;
      • 如果,則分桶編號(hào)是 k。分桶后的屬性取值是 k;
      • 如果 , 則分桶編號(hào)是 M。分桶后的屬性取值是 M。

    2.分桶的數(shù)量和邊界通常需要人工指定。一般有兩種方法:

    • 根據(jù)業(yè)務(wù)領(lǐng)域的經(jīng)驗(yàn)來(lái)指定。如:對(duì)年收入進(jìn)行分桶時(shí),根據(jù) 2017 年全國(guó)居民人均可支配收入約為 2.6 萬(wàn)元,可以選擇桶的數(shù)量為5。其中:
      • 收入小于 1.3 萬(wàn)元(人均的 0.5 倍),則為分桶 0 。
      • 年收入在 1.3 萬(wàn)元 ~5.2 萬(wàn)元(人均的 0.5~2 倍),則為分桶 1 。
      • 年收入在 5.3 萬(wàn)元~26 萬(wàn)元(人均的 2 倍~10 倍),則為分桶 2 。
      • 年收入在 26 萬(wàn)元~260 萬(wàn)元(人均的 10 倍~100 倍),則為分桶 3 。
      • 年收入超過(guò) 260 萬(wàn)元,則為分桶 4 。
    • 根據(jù)模型指定。根據(jù)具體任務(wù)來(lái)訓(xùn)練分桶之后的數(shù)據(jù)集,通過(guò)超參數(shù)搜索來(lái)確定最優(yōu)的分桶數(shù)量和分桶邊界。

    3.選擇分桶大小時(shí),有一些經(jīng)驗(yàn)指導(dǎo):

    • 分桶大小必須足夠小,使得桶內(nèi)的屬性取值變化對(duì)樣本標(biāo)記的影響基本在一個(gè)不大的范圍。
      即不能出現(xiàn)這樣的情況:單個(gè)分桶的內(nèi)部,樣本標(biāo)記輸出變化很大。
    • 分桶大小必須足夠大,使每個(gè)桶內(nèi)都有足夠的樣本。
      如果桶內(nèi)樣本太少,則隨機(jī)性太大,不具有統(tǒng)計(jì)意義上的說(shuō)服力。
    • 每個(gè)桶內(nèi)的樣本盡量分布均勻。

    特性

    1.在工業(yè)界很少直接將連續(xù)值作為邏輯回歸模型的特征輸入,而是將連續(xù)特征離散化為一系列 0/1 的離散特征。

    其優(yōu)勢(shì)有:

    • 離散化之后得到的稀疏向量,內(nèi)積乘法運(yùn)算速度更快,計(jì)算結(jié)果方便存儲(chǔ)。
    • 離散化之后的特征對(duì)于異常數(shù)據(jù)具有很強(qiáng)的魯棒性。
      如:銷(xiāo)售額作為特征,當(dāng)銷(xiāo)售額在 [30,100) 之間時(shí),為1,否則為 0。如果未離散化,則一個(gè)異常值 10000 會(huì)給模型造成很大的干擾。由于其數(shù)值較大,它對(duì)權(quán)重的學(xué)習(xí)影響較大。
    • 邏輯回歸屬于廣義線性模型,表達(dá)能力受限,只能描述線性關(guān)系。特征離散化之后,相當(dāng)于引入了非線性,提升模型的表達(dá)能力,增強(qiáng)擬合能力。
      假設(shè)某個(gè)連續(xù)特征 j ,它離散化為 M 個(gè) 0/1 特征 。則:$w_j * x_j -> w_{j1} * x_{j1}^+ w_{j2} * x_{j2}^ + ...+w_{jM} * x_{jM}^` $
      。其中 是離散化之后的新的特征,它們的取值空間都是 {0, 1}。
      上式右側(cè)是一個(gè)分段線性映射,其表達(dá)能力更強(qiáng)。
    • 離散化之后可以進(jìn)行特征交叉。假設(shè)有連續(xù)特征j ,離散化為 N 個(gè) 0/1 特征;連續(xù)特征 k,離散化為 M 個(gè) 0/1 特征,則分別進(jìn)行離散化之后引入了 N+M 個(gè)特征。
      假設(shè)離散化時(shí),并不是獨(dú)立進(jìn)行離散化,而是特征 j,k 聯(lián)合進(jìn)行離散化,則可以得到 N*M 個(gè)組合特征。這會(huì)進(jìn)一步引入非線性,提高模型表達(dá)能力。
    • 離散化之后,模型會(huì)更穩(wěn)定。
      如對(duì)銷(xiāo)售額進(jìn)行離散化,[30,100) 作為一個(gè)區(qū)間。當(dāng)銷(xiāo)售額在40左右浮動(dòng)時(shí),并不會(huì)影響它離散化后的特征的值。
      但是處于區(qū)間連接處的值要小心處理,另外如何劃分區(qū)間也是需要仔細(xì)處理。

    2.特征離散化簡(jiǎn)化了邏輯回歸模型,同時(shí)降低模型過(guò)擬合的風(fēng)險(xiǎn)。

    能夠?qū)惯^(guò)擬合的原因:經(jīng)過(guò)特征離散化之后,模型不再擬合特征的具體值,而是擬合特征的某個(gè)概念。因此能夠?qū)箶?shù)據(jù)的擾動(dòng),更具有魯棒性。

    另外它使得模型要擬合的值大幅度降低,也降低了模型的復(fù)雜度。


    小結(jié)

    特征縮放是非常常用的方法,特別是歸一化處理特征數(shù)據(jù),對(duì)于利用梯度下降來(lái)訓(xùn)練學(xué)習(xí)模型參數(shù)的算法,有助于提高訓(xùn)練收斂的速度;而特征編碼,特別是獨(dú)熱編碼,也常用于對(duì)結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)預(yù)處理。


    參考:

    • 《百面機(jī)器學(xué)習(xí)》第一章 特征工程
    • https://blog.csdn.net/dream_angel_z/article/details/49388733#commentBox
    • https://www.cnblogs.com/sherial/archive/2018/03/07/8522405.html
    • https://gofisher.github.io/2018/06/22/%E6%95%B0%E6%8D%AE%E9%A2%84%E5%A4%84%E7%90%86/
    • https://gofisher.github.io/2018/06/20/%E6%95%B0%E6%8D%AE%E6%8E%A2%E7%B4%A2/
    • https://juejin.im/post/5b6a44f55188251aa8294b8c
    • https://www.zhihu.com/question/47716840
    • http://www.huaxiaozhuan.com/%E7%BB%9F%E8%AE%A1%E5%AD%A6%E4%B9%A0/chapters/8_feature_selection.html

    總結(jié)

    以上是生活随笔為你收集整理的线性稀疏自编码机_特征工程之特征缩放amp;特征编码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。