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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python怎么数据归一化_基于数据归一化以及Python实现方式

發(fā)布時(shí)間:2024/7/5 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python怎么数据归一化_基于数据归一化以及Python实现方式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)歸一化:

數(shù)據(jù)的標(biāo)準(zhǔn)化是將數(shù)據(jù)按比例縮放,使之落入一個(gè)小的特定區(qū)間,去除數(shù)據(jù)的單位限制,將其轉(zhuǎn)化為無(wú)量綱的純數(shù)值,便于不同單位或量級(jí)的指標(biāo)能夠進(jìn)行比較和加權(quán)。

為什么要做歸一化:

1)加快梯度下降求最優(yōu)解的速度

如果兩個(gè)特征的區(qū)間相差非常大,其所形成的等高線(xiàn)非常尖,很有可能走“之字型”路線(xiàn)(垂直等高線(xiàn)走),從而導(dǎo)致需要迭代很多次才能收斂。

2)有可能提高精度

一些分類(lèi)器需要計(jì)算樣本之間的距離,如果一個(gè)特征值域范圍非常大,那么距離計(jì)算就主要取決于這個(gè)特征,從而與實(shí)際情況相悖(比如這時(shí)實(shí)際情況是值域范圍小的特征更重要)。

歸一化類(lèi)型

1)線(xiàn)性歸一化

這種歸一化比較適用在數(shù)值比較集中的情況,缺陷就是如果max和min不穩(wěn)定,很容易使得歸一化結(jié)果不穩(wěn)定,使得后續(xù)的效果不穩(wěn)定,實(shí)際使用中可以用經(jīng)驗(yàn)常量來(lái)代替max和min。

2)標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化

經(jīng)過(guò)處理的數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布,即均值為0,標(biāo)準(zhǔn)差為1。

3)非線(xiàn)性歸一化

經(jīng)常用在數(shù)據(jù)分化較大的場(chǎng)景,有些數(shù)值大,有些很小。通過(guò)一些數(shù)學(xué)函數(shù),將原始值進(jìn)行映射。該方法包括log、指數(shù)、反正切等。需要根據(jù)數(shù)據(jù)分布的情況,決定非線(xiàn)性函數(shù)的曲線(xiàn)。

log函數(shù):x = lg(x)/lg(max)

反正切函數(shù):x = atan(x)*2/pi

Python實(shí)現(xiàn)

線(xiàn)性歸一化

定義數(shù)組:x = numpy.array(x)

獲取二維數(shù)組列方向的最大值:x.max(axis = 0)

獲取二維數(shù)組列方向的最小值:x.min(axis = 0)

對(duì)二維數(shù)組進(jìn)行線(xiàn)性歸一化:

def max_min_normalization(data_value, data_col_max_values, data_col_min_values):

""" Data normalization using max value and min value

Args:

data_value: The data to be normalized

data_col_max_values: The maximum value of data's columns

data_col_min_values: The minimum value of data's columns

"""

data_shape = data_value.shape

data_rows = data_shape[0]

data_cols = data_shape[1]

for i in xrange(0, data_rows, 1):

for j in xrange(0, data_cols, 1):

data_value[i][j] = \

(data_value[i][j] - data_col_min_values[j]) / \

(data_col_max_values[j] - data_col_min_values[j])

標(biāo)準(zhǔn)差歸一化

定義數(shù)組:x = numpy.array(x)

獲取二維數(shù)組列方向的均值:x.mean(axis = 0)

獲取二維數(shù)組列方向的標(biāo)準(zhǔn)差:x.std(axis = 0)

對(duì)二維數(shù)組進(jìn)行標(biāo)準(zhǔn)差歸一化:

def standard_deviation_normalization(data_value, data_col_means,

data_col_standard_deviation):

""" Data normalization using standard deviation

Args:

data_value: The data to be normalized

data_col_means: The means of data's columns

data_col_standard_deviation: The variance of data's columns

"""

data_shape = data_value.shape

data_rows = data_shape[0]

data_cols = data_shape[1]

for i in xrange(0, data_rows, 1):

for j in xrange(0, data_cols, 1):

data_value[i][j] = \

(data_value[i][j] - data_col_means[j]) / \

data_col_standard_deviation[j]

非線(xiàn)性歸一化(以lg為例)

定義數(shù)組:x = numpy.array(x)

獲取二維數(shù)組列方向的最大值:x.max(axis=0)

獲取二維數(shù)組每個(gè)元素的lg值:numpy.log10(x)

獲取二維數(shù)組列方向的最大值的lg值:numpy.log10(x.max(axis=0))

對(duì)二維數(shù)組使用lg進(jìn)行非線(xiàn)性歸一化:

def nonlinearity_normalization_lg(data_value_after_lg,

data_col_max_values_after_lg):

""" Data normalization using lg

Args:

data_value_after_lg: The data to be normalized

data_col_max_values_after_lg: The maximum value of data's columns

"""

data_shape = data_value_after_lg.shape

data_rows = data_shape[0]

data_cols = data_shape[1]

for i in xrange(0, data_rows, 1):

for j in xrange(0, data_cols, 1):

data_value_after_lg[i][j] = \

data_value_after_lg[i][j] / data_col_max_values_after_lg[j]

以上這篇基于數(shù)據(jù)歸一化以及Python實(shí)現(xiàn)方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

總結(jié)

以上是生活随笔為你收集整理的python怎么数据归一化_基于数据归一化以及Python实现方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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