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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

2.1对 特征归一化 的一些理解

發(fā)布時(shí)間:2023/12/13 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2.1对 特征归一化 的一些理解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

特征歸一化有很多不同的叫法,比如:特征縮放,Feature Normalization,Feature Scaling

數(shù)據(jù)標(biāo)準(zhǔn)化(歸一化)處理是數(shù)據(jù)挖掘的一項(xiàng)基礎(chǔ)工作,不同評價(jià)指標(biāo)往往具有不同的量綱和量綱單位,這樣的情況會(huì)影響到數(shù)據(jù)分析的結(jié)果,為了消除指標(biāo)之間的量綱影響,需要進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化處理,以解決數(shù)據(jù)指標(biāo)之間的可比性。原始數(shù)據(jù)經(jīng)過數(shù)據(jù)標(biāo)準(zhǔn)化處理后,各指標(biāo)處于同一數(shù)量級,適合進(jìn)行綜合對比評價(jià)。

特征歸一化的意義

  • 各特征之間的大小范圍一致,才能使用距離度量等算法
  • 加速梯度下降算法的收斂
  • 在SVM算法中,一致化的特征能加速尋找支持向量的時(shí)間
  • 不同的機(jī)器學(xué)習(xí)算法,能接受的輸入數(shù)值范圍不一樣

以下是兩種常用的歸一化方法:

  • Min-Max標(biāo)準(zhǔn)化(Min-Max Normalization)線性歸一化
  • 稱為離差標(biāo)準(zhǔn)化,是對原始數(shù)據(jù)的線性變換,使結(jié)果值映射到[0 1]之間。轉(zhuǎn)換函數(shù)如下:

    x^*=\frac{x-min}{max-min}

    該方法實(shí)現(xiàn)對原始數(shù)據(jù)的等比例縮放,其中x^*為歸一化后的數(shù)據(jù),x為原始數(shù)據(jù),max為樣本數(shù)據(jù)的最大值,min為樣本數(shù)據(jù)的最小值。

    缺點(diǎn):

    • 當(dāng)有新數(shù)據(jù)加入時(shí),可能導(dǎo)致max和min的變化,需要重新定義。
    • 數(shù)據(jù)不穩(wěn)定,存在異常值和較多噪音

    優(yōu)點(diǎn):

    • 當(dāng)我們需要將特征值都?xì)w一化為某個(gè)范圍[a,b]時(shí),選MinMaxScaler
  • 0均值標(biāo)準(zhǔn)化(Z-score standardization)
  • 這種方法給予原始數(shù)據(jù)的均值(mean)和標(biāo)準(zhǔn)差(standard deviation)進(jìn)行數(shù)據(jù)的標(biāo)準(zhǔn)化。將原始數(shù)據(jù)集歸一化為均值為0、方差1的數(shù)據(jù)集,轉(zhuǎn)化函數(shù)為:

    x^*=\frac{x-\mu}{\delta}

    其中μ、δ分別為原始數(shù)據(jù)集的均值和方法。該種歸一化方式要求原始數(shù)據(jù)的分布可以近似為高斯分布,否則歸一化的效果會(huì)變得很糟糕。

    優(yōu)點(diǎn):

    • 適用于數(shù)據(jù)的最大值和最小值未知,或存在孤立點(diǎn)
  • 比較
  • 以上為兩種比較普通但是常用的歸一化技術(shù),那這兩種歸一化的應(yīng)用場景是怎么樣的呢?什么時(shí)候第一種方法比較好、什么時(shí)候第二種方法比較好呢?下面做一個(gè)簡要的分析概括:

    • 在分類、聚類算法中,需要使用距離來度量相似性的時(shí)候、或者使用PCA技術(shù)進(jìn)行降維的時(shí)候,第二種方法(Z-score
      standardization)表現(xiàn)更好。
    • 在不涉及距離度量、協(xié)方差計(jì)算、數(shù)據(jù)不符合正太分布的時(shí)候,可以使用第一種方法或其他歸一化方法。比如圖像處理中,將RGB圖像轉(zhuǎn)換為灰度圖像后將其值限定在[0
      255]的范圍。

    下面用Python來實(shí)現(xiàn)上述

    舉例:假設(shè)有4個(gè)樣本及他們的特征如下
    樣本 | 特征1 | 特征2
    ---|---|---
    1 | 10001 | 2
    2 | 16020 | 4
    3 | 12008 | 6
    4 | 13131 | 8

    可見歸一化前,特征1和特征2的大小不是一個(gè)數(shù)量級。歸一化后,特征變?yōu)?/p>

    樣本特征1特征2
    100
    210.33
    30.730.67
    40.811

    min-max標(biāo)準(zhǔn)化(Min-Max Normalization)線性歸一化

    sklearn.preprocessing.MinMaxScaler
    在sklearn中,sklearn.preprocessing.MinMaxScaler是一種用于特征歸一化的方法。使用示例如下

    from sklearn.preprocessing import MinMaxScaler x = [[10001,2],[16020,4],[12008,6],[13131,8]] min_max_scaler = MinMaxScaler() X_train_minmax = min_max_scaler.fit_transform(x)#歸一化后的結(jié)果 X_train_minmax array([[ 0. , 0. ],[ 1. , 0.33333333],[ 0.33344409, 0.66666667],[ 0.52001994, 1. ]])

    它默認(rèn)將每種特征的值都?xì)w一化到[0,1]之間,歸一化后的數(shù)值大小范圍是可調(diào)的(根據(jù)MinMaxScaler的參數(shù)feature_range調(diào)整)。下面代碼能將特征歸一化到[-1,1]之間。

    min_max_scaler = MinMaxScaler(feature_range=(-1,1)) X_train_minmax = min_max_scaler.fit_transform(x)#歸一化后的結(jié)果 X_train_minmax array([[-1. , -1. ],[ 1. , -0.33333333],[ 0.46574339, 0.33333333],[ 0.6152873 , 1. ]])

    MinMaxScaler的實(shí)現(xiàn)公式如下

    X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0)) X_scaled = X_std * (max - min) + min

    這是向量化的表達(dá)方式,說明X是矩陣,其中

    • X_std:將X歸一化到[0,1]之間
    • X.min(axis=0)表示列最小值
    • max,min表示MinMaxScaler的參數(shù)feature_range參數(shù)。即最終結(jié)果的大小范圍

    以下例說明計(jì)算過程(max=1,min=0)
    樣本 | 特征1 | 特征2
    ---|---|---
    1 | 10001 | 2
    2 | 16020 | 4
    3 | 12008 | 6
    4 | 13131 | 8
    X.max | 16020 | 8
    X.min | 10001 | 2

    歸一化的過程如下,假設(shè)歸一化后的矩陣為S

    • S11=(10001-10001)/(16020-10001)=0
    • S21=(16020-10001)/(16020-10001)=1
    • S31=(12008-10001)/(16020-10001)=0.333444
    • S41=(13131-10001)/(16020-10001)=0.52002
    • S12=(2-2)/(8-2)=0
    • S22=(4-2)/(8-2)=0.33
    • S32=(6-2)/(8-2)=0.6667
    • S42=(8-2)/(8-2)=1

    可見,結(jié)果與章節(jié)“MinMaxScaler使用”中的計(jì)算結(jié)果一致。

    StandardScaler標(biāo)準(zhǔn)化方法 零均值歸一化

    sklearn.preprocessing.StandardScaler
    sklearn.preprocessing.robust_scale
    在sklearn中,sklearn.preprocessing.StandardScaler是一種用于特征歸一化的方法。使用示例如下

    from sklearn.preprocessing import StandardScaler x = [[10001,2],[16020,4],[12008,6],[13131,8]] X_scaler = StandardScaler() X_train = X_scaler.fit_transform(x) X_train array([[-1.2817325 , -1.34164079],[ 1.48440157, -0.4472136 ],[-0.35938143, 0.4472136 ],[ 0.15671236, 1.34164079]])

    歸一化后,矩陣每列的均值為0,標(biāo)準(zhǔn)差為1。注意,這里的標(biāo)準(zhǔn)差是指加了Delta Degrees of Freedom因子后的標(biāo)準(zhǔn)差,這與傳統(tǒng)的標(biāo)準(zhǔn)差計(jì)算公式有區(qū)別。(在numpy中,有std()函數(shù)用于計(jì)算標(biāo)準(zhǔn)差)

    StandardScaler的歸一化方式是用每個(gè)特征減去列均值,再除以列標(biāo)準(zhǔn)差。
    以下例說明計(jì)算過程,注意標(biāo)準(zhǔn)差是用np.std()計(jì)算的。

    樣本特征1特征2
    1100012
    2160204
    3120086
    4131318
    列均值127905
    列標(biāo)準(zhǔn)差2175.962.236

    歸一化的過程如下,假設(shè)歸一化后的矩陣為S

    • S11=(10001-12790)/2175.96=-1.28173
    • S21=(16020-12790)/2175.96=1.484
    • S31=(12008-12790)/2175.96=-0.35938
    • S41=(13131-12790)/2175.96=0.1567
    • S12=(2-5)/2.236=-1.342
    • S22=(4-5)/2.236=-0.447
    • S32=(6-5)/2.236=0.447
    • S42=(8-5)/2.236=1.3416

    轉(zhuǎn)載于:https://www.cnblogs.com/cjr0707/p/9750611.html

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的2.1对 特征归一化 的一些理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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