最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用sklearn進(jìn)行對數(shù)據(jù)標(biāo)準(zhǔn)化、歸一化以及將數(shù)據(jù)還原的方法

 更新時(shí)間:2018年07月11日 10:00:44   作者:Gakki的小馬  
今天小編就為大家分享一篇使用sklearn進(jìn)行對數(shù)據(jù)標(biāo)準(zhǔn)化、歸一化以及將數(shù)據(jù)還原的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

在對模型訓(xùn)練時(shí),為了讓模型盡快收斂,一件常做的事情就是對數(shù)據(jù)進(jìn)行預(yù)處理。

這里通過使用sklearn.preprocess模塊進(jìn)行處理。

一、標(biāo)準(zhǔn)化和歸一化的區(qū)別

歸一化其實(shí)就是標(biāo)準(zhǔn)化的一種方式,只不過歸一化是將數(shù)據(jù)映射到了[0,1]這個(gè)區(qū)間中。

標(biāo)準(zhǔn)化則是將數(shù)據(jù)按照比例縮放,使之放到一個(gè)特定區(qū)間中。標(biāo)準(zhǔn)化后的數(shù)據(jù)的均值=0,標(biāo)準(zhǔn)差=1,因而標(biāo)準(zhǔn)化的數(shù)據(jù)可正可負(fù)。

二、使用sklearn進(jìn)行標(biāo)準(zhǔn)化和標(biāo)準(zhǔn)化還原

原理:

即先求出全部數(shù)據(jù)的均值和方差,再進(jìn)行計(jì)算。

最后的結(jié)果均值為0,方差是1,從公式就可以看出。

但是當(dāng)原始數(shù)據(jù)并不符合高斯分布的話,標(biāo)準(zhǔn)化后的數(shù)據(jù)效果并不好。

導(dǎo)入模塊

from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
from matplotlib import gridspec
import numpy as np
import matplotlib.pyplot as plt

通過生成隨機(jī)點(diǎn)可以對比出標(biāo)準(zhǔn)化前后的數(shù)據(jù)分布形狀并沒有發(fā)生變化,只是尺度上縮小了。

cps = np.random.random_integers(0, 100, (100, 2))
 
ss = StandardScaler()
std_cps = ss.fit_transform(cps)
 
gs = gridspec.GridSpec(5,5)
fig = plt.figure()
ax1 = fig.add_subplot(gs[0:2, 1:4])
ax2 = fig.add_subplot(gs[3:5, 1:4])
 
ax1.scatter(cps[:, 0], cps[:, 1])
ax2.scatter(std_cps[:, 0], std_cps[:, 1])
 
plt.show()

sklearn.preprocess.StandardScaler的使用:

先是創(chuàng)建對象,然后調(diào)用fit_transform()方法,需要傳入一個(gè)如下格式的參數(shù)作為訓(xùn)練集。

X : numpy array of shape [n_samples,n_features]Training set.
data = np.random.uniform(0, 100, 10)[:, np.newaxis]
ss = StandardScaler()
std_data = ss.fit_transform(data)
origin_data = ss.inverse_transform(std_data)
print('data is ',data)
print('after standard ',std_data)
print('after inverse ',origin_data)
print('after standard mean and std is ',np.mean(std_data), np.std(std_data))

通過invers_tainsform()方法就可以得到原來的數(shù)據(jù)。

打印結(jié)果如下:

可以看到生成的數(shù)據(jù)的標(biāo)準(zhǔn)差是1,均值接近0。

data is [[15.72836992]
 [62.0709697 ]
 [94.85738359]
 [98.37108557]
 [ 0.16131774]
 [23.85445883]
 [26.40359246]
 [95.68204855]
 [77.69245742]
 [62.4002485 ]]
after standard [[-1.15085842]
 [ 0.18269178]
 [ 1.12615048]
 [ 1.22726043]
 [-1.59881442]
 [-0.91702287]
 [-0.84366924]
 [ 1.14988096]
 [ 0.63221421]
 [ 0.19216708]]
after inverse [[15.72836992]
 [62.0709697 ]
 [94.85738359]
 [98.37108557]
 [ 0.16131774]
 [23.85445883]
 [26.40359246]
 [95.68204855]
 [77.69245742]
 [62.4002485 ]]
after standard mean and std is -1.8041124150158794e-16 1.0

三、使用sklearn進(jìn)行數(shù)據(jù)的歸一化和歸一化還原

原理:

從上式可以看出歸一化的結(jié)果跟數(shù)據(jù)的最大值最小值有關(guān)。

使用時(shí)類似上面的標(biāo)準(zhǔn)化

data = np.random.uniform(0, 100, 10)[:, np.newaxis]
mm = MinMaxScaler()
mm_data = mm.fit_transform(data)
origin_data = mm.inverse_transform(mm_data)
print('data is ',data)
print('after Min Max ',mm_data)
print('origin data is ',origin_data)

結(jié)果:

G:\Anaconda\python.exe G:/python/DRL/DRL_test/DRL_ALL/Grammar.py
data is [[12.19502214]
 [86.49880021]
 [53.10501326]
 [82.30089405]
 [44.46306969]
 [14.51448347]
 [54.59806596]
 [87.87501465]
 [64.35007178]
 [ 4.96199642]]
after Min Max [[0.08723631]
 [0.98340171]
 [0.58064485]
 [0.93277147]
 [0.47641582]
 [0.11521094]
 [0.59865231]
 [1.  ]
 [0.71626961]
 [0.  ]]
origin data is [[12.19502214]
 [86.49880021]
 [53.10501326]
 [82.30089405]
 [44.46306969]
 [14.51448347]
 [54.59806596]
 [87.87501465]
 [64.35007178]
 [ 4.96199642]]
 
Process finished with exit code 0

其他標(biāo)準(zhǔn)化的方法:

上面的標(biāo)準(zhǔn)化和歸一化都有一個(gè)缺點(diǎn)就是每當(dāng)來一個(gè)新的數(shù)據(jù)的時(shí)候就要重新計(jì)算所有的點(diǎn)。

因而當(dāng)數(shù)據(jù)是動(dòng)態(tài)的時(shí)候可以使用下面的幾種計(jì)算方法:

1、arctan反正切函數(shù)標(biāo)準(zhǔn)化:

2、ln函數(shù)標(biāo)準(zhǔn)化

以上這篇使用sklearn進(jìn)行對數(shù)據(jù)標(biāo)準(zhǔn)化、歸一化以及將數(shù)據(jù)還原的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Tensorflow?2.1完成對MPG回歸預(yù)測詳解

    Tensorflow?2.1完成對MPG回歸預(yù)測詳解

    這篇文章主要為大家介紹了Tensorflow?2.1完成對MPG回歸預(yù)測詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Python語言實(shí)現(xiàn)二分法查找

    Python語言實(shí)現(xiàn)二分法查找

    這篇文章主要介紹了Python語言實(shí)現(xiàn)二分法查找,二分法也就是二分查找,它是一種效率較高的查找方法,下文詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-03-03
  • 基于Python開發(fā)PDF轉(zhuǎn)Doc格式小程序

    基于Python開發(fā)PDF轉(zhuǎn)Doc格式小程序

    這篇文章主要為大家詳細(xì)介紹了如何基于Python開發(fā)PDF轉(zhuǎn)Doc格式小程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • 關(guān)于Numpy中的行向量和列向量詳解

    關(guān)于Numpy中的行向量和列向量詳解

    今天小編就為大家分享一篇關(guān)于Numpy中的行向量和列向量詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • pyCharm中python對象的自動(dòng)提示方式

    pyCharm中python對象的自動(dòng)提示方式

    這篇文章主要介紹了pyCharm中python對象的自動(dòng)提示方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python編寫Windows Service服務(wù)程序

    Python編寫Windows Service服務(wù)程序

    這篇文章主要為大家詳細(xì)介紹了Python編寫Windows Service服務(wù)程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 舉例詳解Python中循環(huán)語句的嵌套使用

    舉例詳解Python中循環(huán)語句的嵌套使用

    這篇文章主要介紹了舉例詳解Python中循環(huán)語句的嵌套使用,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • python操作CouchDB的方法

    python操作CouchDB的方法

    這篇文章主要介紹了python操作CouchDB的方法,包括了couchDb庫安裝、連接服務(wù)器、創(chuàng)建數(shù)據(jù)庫、查詢數(shù)據(jù)庫、遍歷數(shù)據(jù)庫等常用的操作,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • python+selenium 簡易地疫情信息自動(dòng)打卡簽到功能的實(shí)現(xiàn)代碼

    python+selenium 簡易地疫情信息自動(dòng)打卡簽到功能的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python+selenium 簡易地疫情信息自動(dòng)打卡簽到功能的實(shí)現(xiàn)代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 完美解決torch.cuda.is_available()一直返回False的玄學(xué)方法

    完美解決torch.cuda.is_available()一直返回False的玄學(xué)方法

    這篇文章主要介紹了完美解決torch.cuda.is_available()一直返回False的玄學(xué)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評論

文登市| 堆龙德庆县| 从江县| 芷江| 昂仁县| 昭平县| 九台市| 虞城县| 凤翔县| 施秉县| 紫云| 宣武区| 右玉县| 天祝| 太谷县| 靖远县| 桂东县| 虹口区| 阿拉善右旗| 神农架林区| 普兰县| 乳源| 色达县| 商河县| 五莲县| 黎城县| 达尔| 共和县| 天长市| 平乡县| 叶城县| 正阳县| 福建省| 宁海县| 建瓯市| 宁蒗| 宁南县| 香河县| 宜川县| 光泽县| 琼中|