国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python 學(xué)習(xí)筆記之——用 sklearn 對(duì)數(shù)據(jù)進(jìn)行預(yù)處理

xiaodao / 1593人閱讀

摘要:默認(rèn)針對(duì)每列來(lái)進(jìn)行標(biāo)準(zhǔn)化,也即針對(duì)每個(gè)特征進(jìn)行標(biāo)準(zhǔn)化。歸一化歸一化的目的是讓每個(gè)樣本具有單位范數(shù)。默認(rèn)是對(duì)每行數(shù)據(jù)用范數(shù)進(jìn)行歸一化,我們也可以選擇范數(shù)或者針對(duì)每列進(jìn)行歸一化。

1. 標(biāo)準(zhǔn)化

標(biāo)準(zhǔn)化是為了讓數(shù)據(jù)服從一個(gè)零均值和單位方差的標(biāo)準(zhǔn)正態(tài)分布。也即針對(duì)一個(gè)均值為 $mean$ 標(biāo)準(zhǔn)差為 $std$ 的向量 $X$ 中的每個(gè)值 $x$,有 $x_{scaled} = frac{x - mean}{std}$。

>>> from sklearn import preprocessing
>>> import numpy as np

>>> X_train = np.array([[ 1., -1.,  2.],
...                     [ 2.,  0.,  0.],
...                     [ 0.,  1., -1.]])

>>> X_scaled = preprocessing.scale(X_train)
>>> X_scaled                                          
array([[ 0.  ..., -1.22...,  1.33...],
       [ 1.22...,  0.  ..., -0.26...],
       [-1.22...,  1.22..., -1.06...]])

>>> X_scaled.mean(axis=0)
array([0., 0., 0.])

>>> X_scaled.std(axis=0)
array([1., 1., 1.])

默認(rèn)針對(duì)每列來(lái)進(jìn)行標(biāo)準(zhǔn)化,也即針對(duì)每個(gè)特征進(jìn)行標(biāo)準(zhǔn)化。可以通過(guò)設(shè)置 axis=1 來(lái)對(duì)每行進(jìn)行標(biāo)準(zhǔn)化,也即對(duì)每個(gè)樣本進(jìn)行標(biāo)準(zhǔn)化。sklearn.preprocessing.scale()

此外,我們還可以用訓(xùn)練數(shù)據(jù)的均值和方差來(lái)對(duì)測(cè)試數(shù)據(jù)進(jìn)行相同的標(biāo)準(zhǔn)化處理。sklearn.preprocessing.StandardScaler()

>>> scaler = preprocessing.StandardScaler().fit(X_train)
>>> scaler
StandardScaler(copy=True, with_mean=True, with_std=True)

>>> scaler.mean_                                      
array([1. ..., 0. ..., 0.33...])

>>> scaler.scale_                                       
array([0.81..., 0.81..., 1.24...])

>>> scaler.transform(X_train)                           
array([[ 0.  ..., -1.22...,  1.33...],
       [ 1.22...,  0.  ..., -0.26...],
       [-1.22...,  1.22..., -1.06...]])

>>> X_test = [[-1., 1., 0.]] # 用同樣的均值和方差來(lái)對(duì)測(cè)試數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化
>>> scaler.transform(X_test)                
array([[-2.44...,  1.22..., -0.26...]])
2. 將數(shù)據(jù)縮放到一定范圍

有時(shí)候,我們需要數(shù)據(jù)處在給定的最大值和最小值范圍之間,常常是 0 到 1 之間,這樣數(shù)據(jù)的最大絕對(duì)值就被限制在了單位大小以內(nèi)。

>>> X_train = np.array([[ 1., -1.,  2.],
...                     [ 2.,  0.,  0.],
...                     [ 0.,  1., -1.]])
...
>>> min_max_scaler = preprocessing.MinMaxScaler()
>>> X_train_minmax = min_max_scaler.fit_transform(X_train)
>>> X_train_minmax
array([[0.5       , 0.        , 1.        ],
       [1.        , 0.5       , 0.33333333],
       [0.        , 1.        , 0.        ]])

>>> X_test = np.array([[-3., -1.,  4.]]) # 將同樣的變換應(yīng)用到測(cè)試數(shù)據(jù)上
>>> X_test_minmax = min_max_scaler.transform(X_test)
>>> X_test_minmax
array([[-1.5       ,  0.        ,  1.66666667]])

當(dāng) MinMaxScaler() 傳入一個(gè)參數(shù) feature_range=(min, max),我們可以將數(shù)據(jù)縮放到我們想要的范圍內(nèi)。sklearn.preprocessing.MinMaxScaler()

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

此外,我們還可以將數(shù)據(jù)限制在 [-1, 1] 之間,通過(guò)除以每個(gè)特征的最大絕對(duì)值。sklearn.preprocessing.MaxAbsScaler()

>>> X_train = np.array([[ 1., -1.,  2.],
...                     [ 2.,  0.,  0.],
...                     [ 0.,  1., -1.]])
...
>>> max_abs_scaler = preprocessing.MaxAbsScaler()
>>> X_train_maxabs = max_abs_scaler.fit_transform(X_train)
>>> X_train_maxabs               
array([[ 0.5, -1. ,  1. ],
       [ 1. ,  0. ,  0. ],
       [ 0. ,  1. , -0.5]])

>>> X_test = np.array([[ -3., -1.,  4.]])
>>> X_test_maxabs = max_abs_scaler.transform(X_test)
>>> X_test_maxabs                 
array([[-1.5, -1. ,  2. ]])
>>> max_abs_scaler.scale_         
array([2.,  1.,  2.])
3. 歸一化

歸一化的目的是讓每個(gè)樣本具有單位范數(shù)。也即針對(duì)向量 $X$ 中的每個(gè)值 $x$,有 $x_{normalized} = frac{x}{||X||}$。

>>> X = [[ 1., -1.,  2.],
...      [ 2.,  0.,  0.],
...      [ 0.,  1., -1.]]
>>> X_normalized = preprocessing.normalize(X, norm="l2")

>>> X_normalized                                      
array([[ 0.40..., -0.40...,  0.81...],
       [ 1.  ...,  0.  ...,  0.  ...],
       [ 0.  ...,  0.70..., -0.70...]])

>>> normalizer = preprocessing.Normalizer().fit(X)  # fit does nothing
>>> normalizer
Normalizer(copy=True, norm="l2")

>>> normalizer.transform(X)                            
array([[ 0.40..., -0.40...,  0.81...],
       [ 1.  ...,  0.  ...,  0.  ...],
       [ 0.  ...,  0.70..., -0.70...]])

>>> normalizer.transform([[-1.,  1., 0.]])             
array([[-0.70...,  0.70...,  0.  ...]])

默認(rèn)是對(duì)每行數(shù)據(jù)用 $L2$ 范數(shù)進(jìn)行歸一化,我們也可以選擇 $L1$ 范數(shù)或者針對(duì)每列進(jìn)行歸一化。sklearn.preprocessing.Normalizer()

獲取更多精彩,請(qǐng)關(guān)注「seniusen」!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/42676.html

相關(guān)文章

  • ApacheCN 人工智能知識(shí)樹(shù) v1.0

    摘要:貢獻(xiàn)者飛龍版本最近總是有人問(wèn)我,把這些資料看完一遍要用多長(zhǎng)時(shí)間,如果你一本書一本書看的話,的確要用很長(zhǎng)時(shí)間。為了方便大家,我就把每本書的章節(jié)拆開(kāi),再按照知識(shí)點(diǎn)合并,手動(dòng)整理了這個(gè)知識(shí)樹(shù)。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 貢獻(xiàn)者:飛龍版...

    劉厚水 評(píng)論0 收藏0
  • ApacheCN 編程/大數(shù)據(jù)/數(shù)據(jù)科學(xué)/人工智能學(xué)習(xí)資源 2019.6

    摘要:請(qǐng)回復(fù)這個(gè)帖子并注明組織個(gè)人信息來(lái)申請(qǐng)加入。權(quán)限分配靈活,能者居之。數(shù)量超過(guò)個(gè),在所有組織中排名前。網(wǎng)站日超過(guò),排名的峰值為。導(dǎo)航歸檔社區(qū)自媒體平臺(tái)微博知乎專欄公眾號(hào)博客園簡(jiǎn)書合作侵權(quán),請(qǐng)聯(lián)系請(qǐng)抄送一份到贊助我們 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=...

    Bmob 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.30 - 學(xué)習(xí) Python 來(lái)做一些神奇好玩的事情吧

    摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測(cè)形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡(jiǎn)稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡(jiǎn)明扼要地說(shuō)明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開(kāi)始之前,我們先來(lái)看這樣一個(gè)提問(wèn): pyth...

    lifesimple 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

xiaodao

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<