1、数据变换
i、目的?
将数据转换成更容易分析的数据(预处理)
ii、常见的函数变换?
2、数据规范化
i、离差标准化(最小最大规范化):消除量纲(单位)影响以及变异大小因素的影响
x1=(x-min)/(max-min)
import pymysql
import pandas as pda
import numpy as npy
import matplotlib.pylab as pyl
conn = pymysql.connect(host="localhost",user="root",passwd="360421",db="employees")
sql="select salary from salaries"
data= pda.read_sql(sql,conn)
data.describe()
data1=(data-data.min())/(data.max()-data.min())
ii、标准差标准化(零-均值标准化):消除单位影响及变量自身变异影响
x1=(x-平均数)/标准差
data2=(data-data.mean())/(data.std())
iii、小数定标规范化
x1=x/10**(k)
k=log10(x的绝对值最大值)
k=npy.ceil(npy.log10(data.abs().max()))
data3=(data)/10**k
3、离散化:连续的数据处理不方便
i、等宽离散化
划分区间:1~1000:[0,50],[50,100],...,[950,1000]
data4=data[u"salary"].copy() #u表示防止数据的变化
data5=data4.T
data6=data5.values
k=3 #表示待会儿要分组的组数
pda.cut(data6,k,labels=["上","中","下"]) #等差划分 abc待分数组,k表示组数,labels表示各组的标签
pda.cut(data6,[0,30000,70000,120000,180000],labels=["职员","主任","经理","CEO"])
#非等差划分区间(0,3000],(3000,7000],(7000,12000],(12000,18000]
ii、等频率离散化
iii、一维聚类离散化
(未完待续)