- 简单变换
- 数据变换的目的是将数据转化为更方便分析的数据。
- 简单变换通常使用函数变换的方式进行,常见的函数变换包括:开放、平方、对数等。
- 数据规范化
- 离差标准化–消除量纲(单位)影响以及变异大小因素的影响。(最小-最大标准化)
x1 = (x - min) / (max - min) - 标准差标准化–消除单位影响,以及变量自身变异影响。(零-均值标准化)
x1 = (x - 平均数) / 标准差 - 小数定标规范化–消除单位影响
x1 = x/10**(k)、k=log10(x的绝对值的最大值)
- 离散化
将一些连续的数据,离散化。
- 等宽离散化
- 等频率离散化
- 一维聚类离散化
等宽离散化
价格0-50,50-100,100-150区间。
import pymysql
import pandas as pd
db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='taobao')
sql = 'select price,comment from taob'
df = pd.read_sql(sql=sql, con=db)
data = df['price'].copy()
data = data.values
# k = 3
# 等宽离散化
# cut(数据,份数,标签)
# data1 = pd.cut(data, k, labels=['便宜', '适中', '有点贵'])
# print(data1)
# data2 = pd.cut(data, [0, 50, 100, 150])
# print(data2)
k = [0, 50, 100, 300, 500, 2000, data.max()]
data3 = pd.cut(data, k, labels=['非常便宜', '便宜', '适中', '有点贵', '很贵', '非常贵'])
print(data3)
等频率离散化
将相同数量的记录放进每个区间里面。
一维聚类离散化
- 属性构造
import pymysql
import pandas as pd
db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='taobao')
sql = 'select * from myhexun'
df = pd.read_sql(sql=sql, con=db)
rate = df['comment']/df['hits']
df['评点比'] = rate
file = './data/hexun.xls'
df.to_excel(file, index=False)