詳解python實(shí)現(xiàn)數(shù)據(jù)歸一化處理的方式:(0,1)標(biāo)準(zhǔn)化
在機(jī)器學(xué)習(xí)過(guò)程中,對(duì)數(shù)據(jù)的處理過(guò)程中,常常需要對(duì)數(shù)據(jù)進(jìn)行歸一化處理,下面介紹(0, 1)標(biāo)準(zhǔn)化的方式,簡(jiǎn)單的說(shuō),其功能就是將預(yù)處理的數(shù)據(jù)的數(shù)值范圍按一定關(guān)系“壓縮”到(0,1)的范圍類(lèi)。
通常(0, 1)標(biāo)注化處理的公式為:
即將樣本點(diǎn)的數(shù)值減去最小值,再除以樣本點(diǎn)數(shù)值最大與最小的差,原理公式就是這么基礎(chǔ)。
下面看看使用python語(yǔ)言來(lái)編程實(shí)現(xiàn)吧
import numpy as np import matplotlib.pyplot as plt def noramlization(data): minVals = data.min(0) maxVals = data.max(0) ranges = maxVals - minVals normData = np.zeros(np.shape(data)) m = data.shape[0] normData = data - np.tile(minVals, (m, 1)) normData = normData/np.tile(ranges, (m, 1)) return normData, ranges, minVals x = np.array([[78434.0829, 26829.86612], [78960.4042, 26855.13451], [72997.8308, 26543.79201], [74160.2849, 26499.56629], [75908.5746, 26220.11996], [74880.6989, 26196.03995], [74604.7169, 27096.87862], [79547.6796, 25986.68579], [74997.7791, 24021.50132], [74487.4915, 26040.18441], [77134.2636, 24647.274], [74975.2792, 24067.31441], [76013.5305, 24566.02273], [79191.518, 26840.29867], [80653.4589, 25937.22248], [79185.9935, 26996.18228], [74426.881, 24227.71439], [73246.4295, 26561.59268], [77963.1478, 25580.05298], [74469.8778, 26082.15448], [81372.3787, 26649.69232], [76826.8262, 24549.77367], [77774.2608, 25999.96037], [79673.1361, 25229.04353], [75251.7951, 24902.72185], [78458.073, 23924.15117], [82247.5439, 29671.33493], [82041.2247, 27903.34268], [80083.2029, 28692.35517], [80962.0043, 28519.81002], [79799.8328, 28740.27736], [80743.9947, 28862.75402], [80888.449, 29724.53706], [81768.4638, 30180.20618], [80283.8783, 30417.55057], [79460.7078, 29092.52867], [75514.1202, 28071.73721], [80595.5945, 30292.25917], [80750.4876, 29651.32254], [80020.662, 30023.70025], [82992.3395, 29466.83067], [80185.5946, 29943.15481], [81854.6163, 29846.18257], [81526.4017, 30218.27078], [79174.5312, 29960.69999], [78112.3051, 26467.57545], [80262.4121, 29340.23218], [81284.9734, 28257.71529], [81928.9905, 28752.84811], [80739.2727, 29288.85126], [83135.3435, 30223.4974], [83131.8223, 29049.10112], [82549.9076, 28910.15209], [81574.0822, 28326.55367], [80507.399, 28553.56851], [82956.2103, 29157.62372], [81909.7132, 29359.24497], [80893.5603, 29326.64155], [82520.1272, 30424.96703], [82829.8548, 31062.24418], [80532.1495, 29198.10407], [80112.7963, 29143.47905], [81175.0882, 28443.10574]]) newgroup, _, _ = noramlization(x) newdata = newgroup plt.scatter(x[:, 0], x[:, 1], marker='*', c='r', s=24) plt.show() print(len(x[:, 0])) print(len(x[:, 1])) print(newdata)
將數(shù)據(jù)進(jìn)行歸一化處理后,并使用matplotlib繪制出處理后的散點(diǎn)圖分布如下:
可以看到數(shù)據(jù)的數(shù)值范圍均為(0,1)之間了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
跟老齊學(xué)Python之編寫(xiě)類(lèi)之二方法
上一講中創(chuàng)建了類(lèi),并且重點(diǎn)講述了構(gòu)造函數(shù)以及類(lèi)實(shí)例,特別是對(duì)那個(gè)self,描述了不少。在講述構(gòu)造函數(shù)的時(shí)候特別提到,init()是一個(gè)函數(shù),只不過(guò)在類(lèi)中有一點(diǎn)特殊的作用罷了,每個(gè)類(lèi),首先要運(yùn)行它,它規(guī)定了類(lèi)的基本結(jié)構(gòu)。2014-10-10Python 轉(zhuǎn)移文件至云對(duì)象存儲(chǔ)的方法
對(duì)象存儲(chǔ)(Cloud Object Storage,COS)是一種存儲(chǔ)海量文件的分布式存儲(chǔ)服務(wù),具有高擴(kuò)展性、低成本、可靠安全等優(yōu)點(diǎn)。這篇文章主要介紹了Python 轉(zhuǎn)移文件至云對(duì)象存儲(chǔ),需要的朋友可以參考下2021-02-02深入理解Python虛擬機(jī)中列表(list)的實(shí)現(xiàn)原理及源碼剖析
在本篇文章當(dāng)中主要給大家介紹?cpython?虛擬機(jī)當(dāng)中針對(duì)列表的實(shí)現(xiàn),在?Python?中,List?是一種非常常用的數(shù)據(jù)類(lèi)型,可以存儲(chǔ)任何類(lèi)型的數(shù)據(jù),并且支持各種操作,如添加、刪除、查找、切片等,在本篇文章當(dāng)中將深入去分析這一點(diǎn)是如何實(shí)現(xiàn)的2023-03-03python設(shè)計(jì)tcp數(shù)據(jù)包協(xié)議類(lèi)的例子
今天小編就為大家分享一篇python設(shè)計(jì)tcp數(shù)據(jù)包協(xié)議類(lèi)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07