python數(shù)據(jù)分析數(shù)據(jù)標(biāo)準(zhǔn)化及離散化詳解
本文為大家分享了python數(shù)據(jù)分析數(shù)據(jù)標(biāo)準(zhǔn)化及離散化的具體內(nèi)容,供大家參考,具體內(nèi)容如下
標(biāo)準(zhǔn)化
1、離差標(biāo)準(zhǔn)化
是對(duì)原始數(shù)據(jù)的線性變換,使結(jié)果映射到[0,1]區(qū)間。方便數(shù)據(jù)的處理。消除單位影響及變異大小因素影響。
基本公式為:
x'=(x-min)/(max-min)
代碼:
#!/user/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')#鏈接本地?cái)?shù)據(jù)庫(kù) 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)
運(yùn)行結(jié)果
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')#鏈接本地?cái)?shù)據(jù)庫(kù) 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)
運(yùn)行結(jié)果:
3、小數(shù)定標(biāo)標(biāo)準(zhǔn)化
消除單位影響
基本公式為:
其中j=lg(max(|x|)),即以10為底的x的絕對(duì)值最大的對(duì)數(shù)
x' = x/10^j
實(shí)現(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')#鏈接本地?cái)?shù)據(jù)庫(kù) 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()為取絕對(duì)值 data1 = data/10**j print(data1)
結(jié)果:
離散化
離散化是程序設(shè)計(jì)中一個(gè)常用的技巧,它可以有效的降低時(shí)間復(fù)雜度。其基本思想就是在眾多可能的情況中,只考慮需要用的值。離散化可以改進(jìn)一個(gè)低效的算法,甚至實(shí)現(xiàn)根本不可能實(shí)現(xiàn)的算法
1、等寬離散化
將連續(xù)數(shù)據(jù)按照等寬區(qū)間標(biāo)準(zhǔn)離散化數(shù)據(jù),好處之一是處理的數(shù)據(jù)是有限個(gè)數(shù)據(jù)而不是無限多。
使用pandas的cut方法。非等寬只需要更改cut的第二個(gè)參數(shù),例如:第二個(gè)參數(shù)為[1,100,3000,10000,200000],即劃分為了四個(gè)區(qū)間。
#!/user/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')#鏈接本地?cái)?shù)據(jù)庫(kù) sql = 'select price,comment from taob'#sql語句 data = pd.read_sql(sql,conn)#獲取數(shù)據(jù) #離散化 data1 = data['price'].T.values#獲取價(jià)格的一維數(shù)組 lable=['很低','低','中','高','很高'] data2 = pd.cut(data1,5,labels=lable) print(data2)
執(zhí)行結(jié)果:
2、等頻率離散化
將相同數(shù)量的數(shù)據(jù)放進(jìn)一個(gè)區(qū)間。
3、一維聚類離散化
按屬性對(duì)數(shù)據(jù)進(jìn)行聚類離散。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python Web程序搭建簡(jiǎn)單的Web服務(wù)器
這篇文章主要介紹了Python Web程序搭建簡(jiǎn)單的Web服務(wù)器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07PySide2出現(xiàn)“ImportError: DLL load failed: 找不到指定的模塊”的問題及解決方法
這篇文章主要介紹了PySide2出現(xiàn)“ImportError: DLL load failed: 找不到指定的模塊”的問題及解決方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-06-06Python騷操作完美實(shí)現(xiàn)短視頻偽原創(chuàng)
剪輯的視頻上傳到某平臺(tái)碰到降權(quán)怎么辦?視頻平臺(tái)都有一套自己的鑒別算法,專門用于處理視頻的二次剪輯,本篇我們來用python做一些特殊處理2022-02-02一文詳細(xì)介紹PyQt5 QPushButton() 的作用
通過本文的介紹,相信你已經(jīng)對(duì)PyQt5中的QPushButton控件有了深入的了解,從基礎(chǔ)介紹到常用屬性和方法,再到應(yīng)用場(chǎng)景和樣式定制,本文為你提供了全面的指南,感興趣的朋友跟隨小編一起看看吧2024-08-08Python實(shí)現(xiàn)隨機(jī)選擇元素功能
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)隨機(jī)選擇元素功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09通過python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類
這篇文章主要介紹了通過python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類,比如兩個(gè)不同的工程項(xiàng)目針對(duì)的對(duì)象都是A,那么就需要將這兩個(gè)工程項(xiàng)目歸類到A當(dāng)中,可以減少很大一部分工作量,,需要的朋友可以參考下2023-03-03