千家信息网

Python如何实现归一化算法

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天小编给大家分享一下Python如何实现归一化算法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起
千家信息网最后更新 2026年11月01日Python如何实现归一化算法

今天小编给大家分享一下Python如何实现归一化算法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1.前言

归一化算法Normalization将数据处理成量纲一直的数据,一般限定在[0,1]、[-1,1]
一般在进行建模的时候需要进行数据归一化处理,

原因如下:

  • 降低计算难度

  • 有可能提高模型的预测精度

  • 消除量纲影响

下面介绍三种常见的标准化方法,分别是最大最小值、正态中心化、小数点定标

2.Min-Max方法

2.1 公式

2.2 算法实现逻辑

  • 1.找一组数据的最大最小值

  • 2.利用公式归一化

  • 3.输入结果(为了方便可视化展示,我们设计了代码)

2.3 代码

import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 1.最小最大标准化Data = np.array([[0.2,0.9,29],                [0.9,0.1,100],                [0.5,0.5,30]]) #最小-最大归一化算法# 1.1数据转化def MinMax(data):    min = 0    max = 1    C = data[:,2]    min = np.min(C)    max = np.max(C)    for one in data:        one[2] = (one[2]-min) / (max-min)    print('转化后的矩阵:\n',data)    return data# 1.2可视化def ShowData(Data,ShowD1):    length = len(Data)    X = np.ones(Data.shape[0])    plt.figure(1)    plt.subplot(121)    for i in range(length):        plt.scatter(X*(i+1),Data[:,i])    plt.subplot(122)    for i in range(length):        plt.scatter(X*(i+1),ShowD1[:,i])    plt.show()ShowData(Data,MinMax(Data.copy()))

转化后的矩阵:

[[0.2 0.9 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 dataShowData(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 dataShowData(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如何实现归一化算法"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

数据 最大 算法 标准 标准化 矩阵 公式 小数 最小 代码 最大值 知识 篇文章 逻辑 输入 小数点 方法 绝对值 范围 位数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 深圳九邦互联网科技有限公司 科技金融是不是互联网金融 紫鲸互联网科技 银优互联网科技有限公司 互联网和高科技公司 互联网科技公司需要的职位 崇明区互联网教育科技诚信经营 和信科技工业互联网 阿大互联网科技有限公司 民营互联网公司国防科技 西安小鹰速贷互联网科技有限公司 工业互联网展湾科技股份有限公司 互联网第三次科技革命特征 张召忠谈中国互联网科技 广州燕处互联网科技有限公司 宁波跨境商互联网科技有限公司 上海同邻互联网科技有限公司规模 云鲸互联网络科技有限公司 中国科技和美国互联网 咖啡网 青岛互联网科技公司 为想互联网科技 互联网科技小额贷款 隆华科技工业互联网 想开互联网科技公司怎么样 佛山市翊博互联网络科技有限公司 易企秀互联网科技是做什么的 求路客互联网科技电话 恒生科技互联网指数十大成分股
0