python数据归一化处理方法,python归一化和反归一化

  python数据归一化处理方法,python归一化和反归一化

  本文主要介绍Python对规范化算法的实现,将数据处理成恒定维度的数据。一般来说,建模时需要数据规范化。以下详细内容,可以参考有需要的朋友。

  00-1010 1.前言2。Min-Max方法2.1公式2.2算法实现逻辑2.3代码2.4限制3 Z-score标准化3.1公式3.2算法实现逻辑3.3代码3.4限制4十进制缩放方法4.1公式4.2算法实现逻辑4.3代码实现4.4限制

  

目录

  归一化算法将数据处理成具有恒定维数的数据,这些维数一般被限制在[0,1]和[-1,1]。

  通常,建模时需要数据规范化,

  原因如下:

  降低计算难度可以提高模型的预测精度,消除量纲影响。这里介绍三种常见的标准化方法,即最大最小值法、正常中心化法和小数点定标法。

  

1.前言

  

2.Min-Max方法

  

2.1 公式

  1.求一组数据的最大值和最小值。2.通过公式归一化。3.输入结果(我们设计代码是为了方便可视化显示)

  

2.2 算法实现逻辑

  将numpy作为np导入

  进口熊猫作为pd

  将matplotlib.pyplot作为plt导入

  # 1.最小和最大标准化

  Data=np.array([[0.2,0.9,29],

  [0.9,0.1,100],

  [0.5,0.5,30]]) #最小-最大归一化算法

  # 1.1数据转换

  def MinMax(数据):

  最小值=0

  最大值=1

  C=数据[:2]

  min=NP . min ()

  max=NP . max ()

  对于数据:中的一个

  一[2]=(一[2]-最小)/(最大-最小)

  打印(转换矩阵:\n ,数据)

  返回数据

  # 1.2可视化

  def ShowData(Data,ShowD1):

  长度=长度(数据)

  X=np.ones(Data.shape[0])

  plt .图(1)

  plt.subplot(121)

  对于范围(长度):内的I

  plt.scatter(X*(i 1),Data[:i])

  plt.subplot(122)

  对于范围(长度):内的I

  plt.scatter(X*(i 1),ShowD1[:i])

  plt.show()

  ShowData(Data,MinMax(Data.copy()))

  转化后的矩阵:

  [[0.2 0.9

  nbsp; 0. ]
[0.9 0.1 1. ]
[0.5 0.5 0.01408451]]

  

  

  

  

2.4局限

  

  • 数据规模过大不适应
  • 数据归一化后范围在[0,1],对于一些有负有正数的原始数据慎用

  

  

3 Z-score标准化

  

  

3.1 公式

  

  

  

3.2 算法实现逻辑

  

  • 输入数据
  • 求取数据的均值、方法,在利用中心化公式计算
  • 输出结果

  

  

3.3 代码

  

def Zscore(data):

      x_mean = np.mean(data[:2])

      length = len(data[:,2])

      vari = np.sqrt((np.sum((data[:2]-x_mean)**2))/length)

      print(方差:,vari)

      data[:,2] = (data[:,2]-x_mean)/vari

      print(Z-score标准化后的矩阵是,data)

      return data

  ShowData(Data,Zscore(Data.copy()))

  

方差: 51.569160680908254
Z-score标准化后的矩阵是 [[0.2 0.9 0.13864876]
[0.9 0.1 1.5154406 ]
[0.5 0.5 0.15804019]]

  

  

  

  

3.4 局限

  

  • 对样本量少的数据,表现不好
  • 标准化后范围在有负有正,范围在[-1,1]

  

  

4 小数定标法

  

  

4.1 公式

  

  

  

4.2 算法实现逻辑

  

  • 输入数据
  • 绝对值化,最大值
  • 将每个数除以最大值的数量级
  • 输入数据

  

  

4.3 代码实现

  

# 小数定标归一化算法

  def Decimals(data):

      C = np.abs(data[:,2])

      max = int(np.sort(C)[-1]) # 按从小到大排序,取最后一位,及最大值

      k = len(str(max))

      print(绝对值最大的位数:\n,k)

      data[:2] = data[:,2] /(10**k)

      print(小数点定标准化后的矩阵:\n,data)

      return data

  ShowData(Data,Decimals(Data.copy()))

  绝对值最大的位数:

  

3

  

  小数点定标准化后的矩阵:

  

[[2.9e-02 1.0e-01 3.0e-02]
[2.9e-02 1.0e-01 3.0e-02]
[5.0e-01 5.0e-01 3.0e+01]]

  

  

  

  

4.4 局限

  

  • 受到最大值影响较大

  到此这篇关于Python实现归一化算法详情的文章就介绍到这了,更多相关Python归一化算法内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: