數(shù)據(jù)標(biāo)準(zhǔn)化處理

正態(tài)分布跟標(biāo)準(zhǔn)分?jǐn)?shù)之間的關(guān)系

Python版本:3.5
數(shù)學(xué)公式編輯器:MathType

標(biāo)準(zhǔn)分?jǐn)?shù)

標(biāo)準(zhǔn)分?jǐn)?shù)(Standard Score,又稱z-score、z分?jǐn)?shù)或標(biāo)準(zhǔn)化值),是將集合中的單個(gè)數(shù)與集合的均值相減的結(jié)果除以集合的標(biāo)準(zhǔn)差得到標(biāo)準(zhǔn)化的結(jié)果,該方法類似于正態(tài)分布的標(biāo)準(zhǔn)化轉(zhuǎn)換,轉(zhuǎn)換函數(shù)為:



式中x為需要被標(biāo)準(zhǔn)化的原始值,μ為均值,σ為標(biāo)準(zhǔn)差,σ≠0。
z分?jǐn)?shù)標(biāo)準(zhǔn)化處理后的值代表原始值與集合均值之間的距離,以標(biāo)準(zhǔn)差為單位計(jì)算。該值存在正負(fù)值,低于均值則為負(fù)數(shù),反之則正數(shù),其范圍為[-∞,+∞],數(shù)據(jù)均值為0,方差為1。

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

又稱離差標(biāo)準(zhǔn)化,是將集合中的單個(gè)數(shù)與該集合最小值相減得到的距離再去除以集合最大值與最小值相減得到極差或全距,結(jié)果落在區(qū)間[0,1],轉(zhuǎn)換函數(shù)為:

另外還有以集合的均值作為基準(zhǔn)的極差標(biāo)準(zhǔn)化方法,將集合中的單個(gè)數(shù)與集合的均值相減再除以極差即得到標(biāo)準(zhǔn)化的結(jié)果,標(biāo)準(zhǔn)化后的數(shù)據(jù)落在區(qū)間[-1,1],且均值為0,極差為1,轉(zhuǎn)換函數(shù)為:

log函數(shù)標(biāo)準(zhǔn)化

通過以10為底數(shù)的log函數(shù)將原始值轉(zhuǎn)換為其對(duì)數(shù)值,轉(zhuǎn)換后的值區(qū)間并不在[0,1]之間,故還要除以最大值的對(duì)數(shù),轉(zhuǎn)換函數(shù)為:

Python實(shí)現(xiàn)標(biāo)準(zhǔn)化處理

使用pandas和numpy的庫(kù)先創(chuàng)建5個(gè)數(shù)的隨機(jī)數(shù)組,并存儲(chǔ)在pandas的DataFrame數(shù)據(jù)結(jié)構(gòu)里便于后期處理。

未標(biāo)準(zhǔn)化前的原始值

創(chuàng)建好數(shù)組后先逐一計(jì)算數(shù)組的均值、最大值、最小值、標(biāo)準(zhǔn)差和最大值的對(duì)數(shù),在這里先計(jì)算并放置于全局變量可以避免后面調(diào)用的時(shí)候重復(fù)計(jì)算,對(duì)大量數(shù)據(jù)而言能減少計(jì)算時(shí)間。編寫標(biāo)準(zhǔn)化函數(shù)后將標(biāo)準(zhǔn)化的結(jié)果存到新的列中,標(biāo)準(zhǔn)化后的結(jié)果如下:

標(biāo)準(zhǔn)化后的結(jié)果

源碼如下:

import pandas as pd
import numpy as np

RANDOM_SEED = 100
np.random.seed(RANDOM_SEED)  # # 設(shè)置隨機(jī)種子,確保每次隨機(jī)數(shù)一致

df = pd.DataFrame(np.random.randint(1, 100, 5), columns=['value'])  # 創(chuàng)建5個(gè)數(shù)的數(shù)組

v_mean = df['value'].mean()  # 均值
v_max = df['value'].max()  # 最大值
v_min = df['value'].min()  # 最小值
v_std = df['value'].std()  # 標(biāo)準(zhǔn)差
v_log_max = np.log10(v_max)  # 最大值的對(duì)數(shù)

df['z_score'] = df['value'].map(lambda x: (x - v_mean) / v_std)  # z分?jǐn)?shù)標(biāo)準(zhǔn)化
df['min_max'] = df['value'].map(lambda x: (x - v_min) / (v_max - v_min))  # 極差標(biāo)準(zhǔn)化,以最小值為基準(zhǔn)
df['min_max_mean'] = df['value'].map(lambda x: (x - v_mean) / (v_max - v_min))  # 極差標(biāo)準(zhǔn)化,以均值為基準(zhǔn)
df['log_max'] = df['value'].map(lambda x: np.log10(x) / v_log_max)  # log函數(shù)標(biāo)準(zhǔn)化
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作者:Joel Grus讀者:鍋巴GG Joel Grus 是 Google 的一位軟件工程師,曾于數(shù)家創(chuàng)業(yè)公司擔(dān)...
    鍋巴GG閱讀 2,350評(píng)論 3 16
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 我在熱鬧的人群中感受著孤獨(dú)的滋味。是一種已經(jīng)習(xí)慣但依舊厭惡的滋味。 今天就像是一場(chǎng)約會(huì)。我穿上自己覺得好...
    夜晚半醒的喵嗚君閱讀 289評(píng)論 0 0
  • 題目中的你是誰(shuí)呢,讓我先賣個(gè)關(guān)子? 先做個(gè)自我介紹,我叫宋冬華,是一個(gè)生在新疆長(zhǎng)在新疆的女生,和大多數(shù)新疆人一樣,...
    8979af45a4a0閱讀 338評(píng)論 2 2
  • 她輕輕地翻過手機(jī),眼神里掃過一絲厭倦。 她嘆了口氣,默默說了句:“我媽又給我安排相親了?!?“這又是第幾個(gè)了,感覺...
    eg9099閱讀 417評(píng)論 0 2

友情鏈接更多精彩內(nèi)容