数据预处理-数据变换-规范化

为了消除指标之间的量纲和取值范围差异的影响,需要进行标准化处理,将数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析。

主要有:最小-最大规范化;零-均值规范化;小数定标规范化

数据如下图:

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np

datafile = ../data/normalization_data.xls     #读取数据
data = pd.read_excel(datafile, header=None)

print ((data - data.min())/(data.max() - data.min()))    #最小-最大规范化,data.min()求每一列的最小值;data.max()求每一列的最大值
print ((data - data.mean())/data.std())    #零-均值规范化
print (data/10**np.ceil(np.log10(data.abs().max())))    #小数定标规范化; np.ceil返回输入的上限; np.log10返回对数数组

输出:

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.909310 6 0.636364 0.846990 0.786184 0.929571

0 1 2 3 0 -0.905383 0.635863 0.464531 0.798149 1 0.604678 -1.587675 -2.193167 0.369390 2 -0.516428 -1.304030 0.147406 -2.078279 3 -1.111301 0.784628 0.684625 -0.456906 4 1.657146 0.647765 0.675159 0.234796 5 -0.379150 0.401807 0.152139 0.537286 6 0.650438 0.421642 0.069308 0.595564

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.2487 6 0.146 0.413 0.435 0.2571

Process finished with exit code 0

经验分享 程序员 微信小程序 职场和发展