用Python实现数值缩放

一、什么是数值缩放

在数据分析中,数值缩放是指将数据的数值按照一定的比例缩小或者放大,以达到更好的数据分析效果。缩放的目的是消除数据之间的单位差异,使得各个属性对结果的影响具有可比性和可解释性。在机器学习中,进行数值缩放是很重要的一个步骤,因为不同特征之间的量纲和取值范围可能相差很大,缩放后有利于提升模型的性能。

二、数值缩放的方法

常见的数值缩放方法有两种:min-max标准化和z-score标准化。

1. min-max标准化

min-max标准化,又称极差标准化,是指对原始数据进行线性变换,将数据映射到[0, 1]的范围内。这种方法适用于数据分布没有明显边界的情况,即数据的最大值和最小值不存在或有极大的离群值的情况,例如人口密度等。

import numpy as np
 
def min_max_scale(X):
    return (X - np.min(X, axis=0)) / (np.max(X, axis=0) - np.min(X, axis=0))

2. z-score标准化

z-score标准化,也称为标准差标准化,是指对原始数据进行线性变换,将数据映射到均值为0,标准差为1的正态分布上。这种方法适用于数据分布有明显的边界,可能存在离群值的情况,例如考试分数、股票收益率等。

def z_score_scale(X):
    return (X - np.mean(X, axis=0)) / np.std(X, axis=0)

三、应用场景

数据缩放得到的新值范围在0到1之间,使得数据不会受个别变量的极端取值的影响。建议在 SVM、KNN、线性回归、Logistic回归、神经网络、K-means聚类等算法中使用数值缩放。

举个例子,假设有一组数据,包含两个特征值,第一个特征值的取值范围在[1,10000]之间,第二个特征值的取值范围在[0,1]之间。如果不对这些数据进行缩放,第一个特征值对结果的影响将会远大于第二个特征值,而缩放后两者的重要性将会更加均衡。

X = np.array([[1, 0.5], [10000, 0], [5000, 1]])
 
# 原始数据
print(X)
 
# min-max缩放后数据
print(min_max_scale(X))
 
# z-score缩放后数据
print(z_score_scale(X))

以上代码输出的结果为:

[[1.0, 0.5]
 [10000.0, 0.0]
 [5000.0, 1.0]]
 
[[0.0, 0.5]
 [1.0, 0.0]
 [0.49975, 1.0]]
 
[[-0.7071, 0.0]
 [1.4142, -1.2247]
 [0.2928, 1.2247]]

四、总结

在数据分析和机器学习中进行数值缩放是一个很重要的步骤,可以消除数据之间的单位差异,使得数据更具有可比性和可解释性,并且提升机器学习算法的性能。化繁为简,使用Python中的numpy库可以轻松实现min-max标准化和z-score标准化,方便且高效。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/301758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-30 16:09
下一篇 2024-12-30 16:09

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29

发表回复

登录后才能评论