標準化 歸一化 正則化

2021-10-21 11:40:58 字數 1969 閱讀 2451

x』 = (x - x_min) / (x_max - x_min)

歸一化後的資料取值區間為[0,1]

from sklearn.preprocessing import minmaxscaler

import numpy as np

data = np.random.uniform(0,

100,10)

[:, np.newaxis]

#隨機生成10個在區間[0,100)上服從均勻分布的資料

mm = minmaxscaler(

)mm_data = mm.fit_transform(data)

#fit_transform()先擬合資料,然後將其轉化為歸一化後的形式

origin_data = mm.inverse_transform(mm_data)

#將歸一化後的資料轉化為原始資料

print

('data is '

,data)

print

('after min max '

,mm_data)

print

('origin data is '

,origin_data)

x』 = (x - μ)/σ

標準化後的資料服從正態分佈

from matplotlib import gridspec

import numpy as np

import matplotlib.pyplot as plt

cps = np.random.random_integers(0, 100, (100, 2)) #生成100行2列在區間[0,100]上的離散整數

ss = standardscaler()

std_cps = ss.fit_transform(cps) #fit_transform()先擬合資料,然後將其轉化為標準形式

gs = gridspec.gridspec(5,5) #matplotlib.gridspec.gridspec類用於指定放置子圖的網格的幾何形狀,行數和列數

fig = plt.figure()

ax1 = fig.add_subplot(gs[0:2, 1:4]) #gs[0:2, 1:4]表示這個圖佔第1、2行和第2、3、4列

ax2 = fig.add_subplot(gs[3:5, 1:4]) #gs[3:5, 1:4]表示這個圖佔第4、5行和第2、3、4列

ax1.scatter(cps[:, 0], cps[:, 1]) #繪製未標準化的散點圖

ax2.scatter(std_cps[:, 0], std_cps[:, 1]) #繪製標準化後的散點圖

plt.show()

標準化前後資料生成散點圖對比

改善過擬合

x =[[

1,-1

,2],

[2,0

,0],

[0,1

,-1]

]# 使用l2正則化

from sklearn.preprocessing import normalize

l2 = normalize(x, norm=

'l2'

)print

('l2:'

, l2)

# 使用l1正則化

from sklearn.preprocessing import normalizer

normalizerl1 = normalizer(norm=

'l1'

)l1 = normalizerl1.fit_transform(x)

print

('l1:'

, l1)

歸一化 標準化 正則化

無量綱化使不同規格的資料轉換到同一規格。常用的無量綱化方法有標準化和區間縮放法。標準化的前提是特徵值服從正態分佈,標準化後,其轉換成標準正態分佈 區間縮放法利用了邊界值資訊,將特徵的取值區間縮放到某個特點的範圍,例如 0,1 等。標準化的前提是特徵值服從正態分佈,標準化後,其轉換成標準正態分佈 z ...

歸一化 標準化 正則化

我們經常將歸一化和標準化弄混淆,下面簡單描述一下他們之間的差異 歸一化的目標是找到某種對映關係,將原資料對映到 a,b a,b 區間上。一般a,b a,b會取 1 1 0,1 1,1 0,1 這些組合 a b 一般有兩種應用場景 常用min max normalization 用大數定理將資料轉化為...

歸一化,標準化與正則化

歸一化 resaling 一般是將資料對映到指定的範圍,用於去除不同維度放入量綱以及量綱單位。常見的對映範圍有 0,1 和 1,1 最常見的歸一化方法就是min max 歸一化 最常見的標準化方法 z score 標準化。其中 是樣本均值,是樣本資料的標準差。上圖則是乙個散點序列的標準化過程 原圖 ...