我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python3中实现数据标准化的方法有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python3中实现数据标准化的方法有哪些

今天就跟大家聊聊有关Python3中实现数据标准化的方法有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、[0, 1] 标准化

[0, 1] 标准化是最基本的一种数据标准化方法,指的是将数据压缩到0~1之间。

标准化公式如下

Python3中实现数据标准化的方法有哪些

代码实现

def MaxMinNormalization(x, min, max):  """[0,1] normaliaztion"""  x = (x - min) / (max - min)  return x

或者

def MaxMinNormalization(x):  """[0,1] normaliaztion"""  x = (x - np.min(x)) / (np.max(x) - np.min(x))  return x

二、Z-score标准化

Z-score标准化是基于数据均值和方差的标准化化方法。标准化后的数据是均值为0,方差为1的正态分布。这种方法要求原始数据的分布可以近似为高斯分布,否则效果会很差。

标准化公式如下

Python3中实现数据标准化的方法有哪些

下面,我们看看为什么经过这种标准化方法处理后的数据为是均值为0,方差为1

Python3中实现数据标准化的方法有哪些

代码实现

def ZscoreNormalization(x, mean_, std_):  """Z-score normaliaztion"""  x = (x - mean_) / std_  return x

或者

def ZscoreNormalization(x):  """Z-score normaliaztion"""  x = (x - np.mean(x)) / np.std(x)  return x

补充:Python数据预处理:彻底理解标准化和归一化

数据预处理

数据中不同特征的量纲可能不一致,数值间的差别可能很大,不进行处理可能会影响到数据分析的结果,因此,需要对数据按照一定比例进行缩放,使之落在一个特定的区域,便于进行综合分析。

常用的方法有两种:

最大 - 最小规范化:对原始数据进行线性变换,将数据映射到[0,1]区间

Python3中实现数据标准化的方法有哪些

Z-Score标准化:将原始数据映射到均值为0、标准差为1的分布上

Python3中实现数据标准化的方法有哪些

为什么要标准化/归一化?

提升模型精度:标准化/归一化后,不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。

加速模型收敛:标准化/归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。

如下图所示:

Python3中实现数据标准化的方法有哪些

Python3中实现数据标准化的方法有哪些

哪些机器学习算法需要标准化和归一化

1)需要使用梯度下降和计算距离的模型要做归一化,因为不做归一化会使收敛的路径程z字型下降,导致收敛路径太慢,而且不容易找到最优解,归一化之后加快了梯度下降求最优解的速度,并有可能提高精度。比如说线性回归、逻辑回归、adaboost、xgboost、GBDT、SVM、NeuralNetwork等。需要计算距离的模型需要做归一化,比如说KNN、KMeans等。

2)概率模型、树形结构模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、随机森林。

Python3中实现数据标准化的方法有哪些

彻底理解标准化和归一化

Python3中实现数据标准化的方法有哪些

示例数据集包含一个自变量(已购买)和三个因变量(国家,年龄和薪水),可以看出用薪水范围比年龄宽的多,如果直接将数据用于机器学习模型(比如KNN、KMeans),模型将完全有薪水主导。

#导入数据import numpy as npimport matplotlib.pyplot as pltimport pandas as pddf = pd.read_csv('Data.csv')

缺失值均值填充,处理字符型变量

df['Salary'].fillna((df['Salary'].mean()), inplace= True)df['Age'].fillna((df['Age'].mean()), inplace= True)df['Purchased'] = df['Purchased'].apply(lambda x: 0 if x=='No' else 1)df=pd.get_dummies(data=df, columns=['Country'])

Python3中实现数据标准化的方法有哪些

最大 - 最小规范化

from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()scaler.fit(df)scaled_features = scaler.transform(df)df_MinMax = pd.DataFrame(data=scaled_features, columns=["Age", "Salary","Purchased","Country_France","Country_Germany", "Country_spain"])

Python3中实现数据标准化的方法有哪些

Z-Score标准化

from sklearn.preprocessing import StandardScalersc_X = StandardScaler()sc_X = sc_X.fit_transform(df)sc_X = pd.DataFrame(data=sc_X, columns=["Age", "Salary","Purchased","Country_France","Country_Germany", "Country_spain"])

Python3中实现数据标准化的方法有哪些

import seaborn as snsimport matplotlib.pyplot as pltimport statisticsplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']fig,axes=plt.subplots(2,3,figsize=(18,12)) sns.distplot(df['Age'], ax=axes[0, 0])sns.distplot(df_MinMax['Age'], ax=axes[0, 1])axes[0, 1].set_title('归一化方差:% s '% (statistics.stdev(df_MinMax['Age'])))sns.distplot(sc_X['Age'], ax=axes[0, 2])axes[0, 2].set_title('标准化方差:% s '% (statistics.stdev(sc_X['Age'])))sns.distplot(df['Salary'], ax=axes[1, 0])sns.distplot(df_MinMax['Salary'], ax=axes[1, 1])axes[1, 1].set_title('MinMax:Salary')axes[1, 1].set_title('归一化方差:% s '% (statistics.stdev(df_MinMax['Salary'])))sns.distplot(sc_X['Salary'], ax=axes[1, 2])axes[1, 2].set_title('StandardScaler:Salary')axes[1, 2].set_title('标准化方差:% s '% (statistics.stdev(sc_X['Salary'])))

看完上述内容,你们对Python3中实现数据标准化的方法有哪些有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python3中实现数据标准化的方法有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python3中实现数据标准化的方法有哪些

今天就跟大家聊聊有关Python3中实现数据标准化的方法有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、[0, 1] 标准化[0, 1] 标准化是最基本的一种数据标准化方法,
2023-06-14

Python3实现常用数据标准化方法

数据标准化是机器学习、数据挖掘中常用的一种方法。包括我自己在做深度学习方面的研究时,数据标准化是最基本的一个步骤。数据标准化主要是应对特征向量中数据很分散的情况,防止小数据被大数据(绝对值)吞并的情况。另外,数据标准化也有加速训练,防止梯度
2023-01-31

vuex数据持久化的实现方法有哪些

本篇内容介绍了“vuex数据持久化的实现方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录业务需求:方案一:vuex-persis
2023-06-20

mysql实现数据持久化的方式有哪些

MySQL实现数据持久化的方式主要有以下几种:数据库存储:MySQL是一种关系型数据库管理系统,最常见的方式是将数据存储在数据库中。通过使用SQL语言来对数据进行增删改查操作,保证数据的持久化存储。数据库备份和恢复:可以定期对数据库进行备份
2023-10-26

实现Linux数据加密的方法有哪些

这篇文章主要介绍“实现Linux数据加密的方法有哪些”,在日常操作中,相信很多人在实现Linux数据加密的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”实现Linux数据加密的方法有哪些”的疑惑有所
2023-06-12

pandas实现数据清洗有哪些方法

pandas实现数据清洗的方法有:1、缺失值处理;2、重复值处理;3、数据类型转换;4、异常值处理;5、数据规范化;6、数据筛选;7、数据聚合和分组;8、数据透视表等。详细介绍:1、缺失值处理,Pandas提供了多种处理缺失值的方法,对于缺
pandas实现数据清洗有哪些方法
2023-11-22

mysql数据库优化的方法有哪些

MySQL数据库优化的方法有以下几种:1.索引优化:通过合理设计和使用索引来提高查询效率。选择合适的索引列:选择经常被查询的列作为索引列,并根据查询的类型(精确匹配、范围匹配、排序等)选择不同的索引类型。使用复合索引:将多个列组合成一个索
mysql数据库优化的方法有哪些
2024-04-09

go序列化的实现方法有哪些

Go语言中序列化的实现方法有以下几种:使用标准库的encoding/json包进行JSON序列化和反序列化。使用标准库的encoding/xml包进行XML序列化和反序列化。使用第三方库,如gob、protobuf等,进行二进制序列化和
go序列化的实现方法有哪些
2024-02-29

ArrayList实现初始化的方法有哪些

本篇文章给大家分享的是有关ArrayList实现初始化的方法有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。对于ArrayList的初始化有三种方式:对于第一种默认的构造方
2023-05-31

Java 中实现异步的方法有哪些?(java实现异步的方法有哪些)

在Java编程中,异步编程是一种非常重要的技术,它可以提高应用程序的性能和响应性。以下是一些常见的Java实现异步的方法:一、使用Future和CallableJava5引入了Future
Java 中实现异步的方法有哪些?(java实现异步的方法有哪些)
Java2024-12-14

Java 中添加数据的常见方法有哪些?(java添加数据的方法有哪些)

在Java编程中,添加数据是一项基本操作,有多种方法可以实现。以下是一些常见的添加数据的方法:一、使用数组添加数据数组是Java中常用的数据结构之一,它可以存储固定大小的同类型元素。要向数组中添加数据,可以按照以下步骤进
Java 中添加数据的常见方法有哪些?(java添加数据的方法有哪些)
Java2024-12-16

mysql数据库分页优化的方法有哪些

MySQL数据库分页优化的方法主要有以下几种:1. 使用索引:在分页查询中,使用合适的索引可以大大提高查询效率。可以为经常进行分页查询的字段添加索引,以加快查询速度。2. 使用LIMIT关键字:LIMIT关键字可以指定返回结果的起始位置和数
2023-08-30

mysql大数据分页优化的方法有哪些

MySQL大数据分页优化方法为提升MySQL分页性能,采取以下优化方法:索引优化:创建分页字段索引,避免函数或表达式使用。分页策略选择:根据性能需求选择LIMIT子句、ROW_NUMBER()或窗口函数分页。查询优化:使用变量存储总行数,过滤无关数据,合并查询。缓存优化:启用查询缓存,使用结果集缓存降低数据库压力。分区优化:根据分页字段水平或垂直分区数据,减少查询扫描范围。其他技巧:优化服务器配置,使用并行查询,异步分页,监控和调整策略。
mysql大数据分页优化的方法有哪些
2024-04-09

mysql大数据分页优化的方法有哪些

MySQL大数据分页优化的方法有以下几种:1. 使用索引:对于大数据表,使用合适的索引可以大大提高分页查询的性能。可以根据实际情况选择合适的字段创建索引,以加快查询速度。2. 使用LIMIT和OFFSET:使用LIMIT和OFFSET关键字
2023-08-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录