Python数据分析之数据规范化处理(六)
数据规范化(归一化)处理是数据挖掘的一项基础工作。不同的评价指标往往具有不同的量纲,数据间的差值可能很大,不进行处理可能会影响到数据分析结果。一般将数据按照比例进行缩放,使之落入一个特定的区域,便于综合分析。如将工资收入映射到[-1,1]或者[0,1]内。
常见规范化方法包含三种:
- 最大-最小规范化
- 零-均值规范化
- 小数定标规范化
代码清单:
#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
data = pd.read_excel('data.xls') #读入数据
data1 = (data-data.min())/(data.max()-data.min()) #最小-最大规范化
data2 = (data-data.min())/(data.std()) #零-均值规范化
data3 = data/10**np.ceil(np.log10(data.abs().max())) #小数定标规范化
print('最小-最大规范化',data1)
print('零-均值规范化',data2)
print('小数定标规范化',data3)
运行结果:
最小-最大规范化
0 1 2 3
0 0.074380 0.937291 0.923520 1.000000
1 0.619835 0.000000 0.000000 0.850941
2 0.214876 0.119565 0.813322 0.000000
3 0.000000 1.000000 1.000000 0.563676
4 1.000000 0.942308 0.996711 0.804149
5 0.264463 0.838629 0.814967 0.668114
6 0.636364 0.846990 0.786184 0.929571
零-均值规范化
0 1 2 3
0 0.205918 2.223538 2.657698 2.959719
1 1.715980 0.000000 0.000000 2.518545
2 0.594873 0.283645 2.340573 0.000000
3 0.000000 2.372303 2.877792 1.668322
4 2.768447 2.235440 2.868326 2.380054
5 0.732151 1.989482 2.345306 1.977429
6 1.761739 2.009317 2.262475 2.751268
小数定标规范化
0 1 2 3
0 0.078 0.521 0.602 0.2863
1 0.144 -0.600 -0.521 0.2245
2 0.095 -0.457 0.468 -0.1283
3 0.069 0.596 0.695 0.1054
4 0.190 0.527 0.691 0.2051
5 0.101 0.403 0.470 0.1487
6 0.146 0.413 0.435 0.2571