python數(shù)據(jù)分析數(shù)據(jù)標準化及離散化詳解
本文為大家分享了python數(shù)據(jù)分析數(shù)據(jù)標準化及離散化的具體內(nèi)容,供大家參考,具體內(nèi)容如下
標準化
1、離差標準化
是對原始數(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ù)
#離差標準化
data1 = (data-data.min())/(data.max()-data.min())
print(data1)
運行結(jié)果

2、標準差標準化
消除單位影響以及變量自身變異影響。(零-均值標準化)
基本公式為:
x'=(x-平均數(shù))/標準差
python代碼:
#!/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')#鏈接本地數(shù)據(jù)庫
sql = 'select price,comment from taob'#sql語句
data = pd.read_sql(sql,conn)#獲取數(shù)據(jù)
#標準差標準化
data1 = (data-data.mean())/data.std()
print(data1)
運行結(jié)果:

3、小數(shù)定標標準化
消除單位影響
基本公式為:
其中j=lg(max(|x|)),即以10為底的x的絕對值最大的對數(shù)
x' = x/10^j
實現(xiàn)代碼為:
#!/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')#鏈接本地數(shù)據(jù)庫
sql = 'select price,comment from taob'#sql語句
data = pd.read_sql(sql,conn)#獲取數(shù)據(jù)
#標準差標準化
j = np.ceil(np.log10(data.abs().max()))#進一取整,abs()為取絕對值
data1 = data/10**j
print(data1)
結(jié)果:

離散化
離散化是程序設(shè)計中一個常用的技巧,它可以有效的降低時間復(fù)雜度。其基本思想就是在眾多可能的情況中,只考慮需要用的值。離散化可以改進一個低效的算法,甚至實現(xiàn)根本不可能實現(xiàn)的算法
1、等寬離散化
將連續(xù)數(shù)據(jù)按照等寬區(qū)間標準離散化數(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é)果:

2、等頻率離散化
將相同數(shù)量的數(shù)據(jù)放進一個區(qū)間。
3、一維聚類離散化
按屬性對數(shù)據(jù)進行聚類離散。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PySide2出現(xiàn)“ImportError: DLL load failed: 找不到指定的模塊”的問題及解決方法
這篇文章主要介紹了PySide2出現(xiàn)“ImportError: DLL load failed: 找不到指定的模塊”的問題及解決方法,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2020-06-06
Python騷操作完美實現(xiàn)短視頻偽原創(chuàng)
剪輯的視頻上傳到某平臺碰到降權(quán)怎么辦?視頻平臺都有一套自己的鑒別算法,專門用于處理視頻的二次剪輯,本篇我們來用python做一些特殊處理2022-02-02
通過python模糊匹配算法對兩個excel表格內(nèi)容歸類
這篇文章主要介紹了通過python模糊匹配算法對兩個excel表格內(nèi)容歸類,比如兩個不同的工程項目針對的對象都是A,那么就需要將這兩個工程項目歸類到A當中,可以減少很大一部分工作量,,需要的朋友可以參考下2023-03-03

