溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中數(shù)據(jù)標(biāo)準(zhǔn)化及離散化的示例分析

發(fā)布時間:2021-08-26 09:13:36 來源:億速云 閱讀:156 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了python中數(shù)據(jù)標(biāo)準(zhǔn)化及離散化的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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

1、離差標(biāo)準(zhǔn)化

是對原始數(shù)據(jù)的線性變換,使結(jié)果映射到[0,1]區(qū)間。方便數(shù)據(jù)的處理。消除單位影響及變異大小因素影響。
基本公式為:

x'=(x-min)/(max-min)

代碼:

#?。痷ser/bin/env python
#-*- coding:utf-8 -*-
#author:M10
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import mysql.connector
conn = mysql.connector.connect(host='localhost',
            user='root',
            passwd='123456',
            db='python')#鏈接本地數(shù)據(jù)庫
sql = 'select price,comment from taob'#sql語句
data = pd.read_sql(sql,conn)#獲取數(shù)據(jù)
#離差標(biāo)準(zhǔn)化
data1 = (data-data.min())/(data.max()-data.min())
print(data1)

運行結(jié)果

python中數(shù)據(jù)標(biāo)準(zhǔn)化及離散化的示例分析

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

消除單位影響以及變量自身變異影響。(零-均值標(biāo)準(zhǔn)化)
基本公式為:

x'=(x-平均數(shù))/標(biāo)準(zhǔn)差

python代碼:

#?。痷ser/bin/env python
#-*- coding:utf-8 -*-
#author:M10
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import mysql.connector
conn = mysql.connector.connect(host='localhost',
            user='root',
            passwd='123456',
            db='python')#鏈接本地數(shù)據(jù)庫
sql = 'select price,comment from taob'#sql語句
data = pd.read_sql(sql,conn)#獲取數(shù)據(jù)
#標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化
data1 = (data-data.mean())/data.std()
print(data1)

運行結(jié)果:

python中數(shù)據(jù)標(biāo)準(zhǔn)化及離散化的示例分析

3、小數(shù)定標(biāo)標(biāo)準(zhǔn)化

消除單位影響
基本公式為:
其中j=lg(max(|x|)),即以10為底的x的絕對值最大的對數(shù)

x' = x/10^j

實現(xiàn)代碼為:

#?。痷ser/bin/env python
#-*- coding:utf-8 -*-
#author:M10
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import mysql.connector
conn = mysql.connector.connect(host='localhost',
            user='root',
            passwd='123456',
            db='python')#鏈接本地數(shù)據(jù)庫
sql = 'select price,comment from taob'#sql語句
data = pd.read_sql(sql,conn)#獲取數(shù)據(jù)
#標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化
j = np.ceil(np.log10(data.abs().max()))#進(jìn)一取整,abs()為取絕對值
data1 = data/10**j
print(data1)

結(jié)果:

python中數(shù)據(jù)標(biāo)準(zhǔn)化及離散化的示例分析

離散化

離散化是程序設(shè)計中一個常用的技巧,它可以有效的降低時間復(fù)雜度。其基本思想就是在眾多可能的情況中,只考慮需要用的值。離散化可以改進(jìn)一個低效的算法,甚至實現(xiàn)根本不可能實現(xiàn)的算法

1、等寬離散化

將連續(xù)數(shù)據(jù)按照等寬區(qū)間標(biāo)準(zhǔn)離散化數(shù)據(jù),好處之一是處理的數(shù)據(jù)是有限個數(shù)據(jù)而不是無限多。
使用pandas的cut方法。非等寬只需要更改cut的第二個參數(shù),例如:第二個參數(shù)為[1,100,3000,10000,200000],即劃分為了四個區(qū)間。

#?。痷ser/bin/env python
#-*- coding:utf-8 -*-
#author:M10
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import mysql.connector
conn = mysql.connector.connect(host='localhost',
            user='root',
            passwd='123456',
            db='python')#鏈接本地數(shù)據(jù)庫
sql = 'select price,comment from taob'#sql語句
data = pd.read_sql(sql,conn)#獲取數(shù)據(jù)
#離散化
data1 = data['price'].T.values#獲取價格的一維數(shù)組
lable=['很低','低','中','高','很高']
data2 = pd.cut(data1,5,labels=lable)
print(data2)

執(zhí)行結(jié)果:

python中數(shù)據(jù)標(biāo)準(zhǔn)化及離散化的示例分析

2、等頻率離散化

將相同數(shù)量的數(shù)據(jù)放進(jìn)一個區(qū)間。

3、一維聚類離散化

按屬性對數(shù)據(jù)進(jìn)行聚類離散。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“python中數(shù)據(jù)標(biāo)準(zhǔn)化及離散化的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI