数据预处理:标准化、正则化、最大最小归一化、绝对值标准化

news/2025/1/12 17:30:50/

https://scikit-learn.org/stable/modules/preprocessing.html

标准化

公式请添加图片描述

优点:适用大多数类型的数据,标准化之后的数据是以0为均值,方差为1的正态分布
缺点 :是一种中心化方法,会改变原有数据得分布结构
转换区间:均值为0,方差为1的标准正态分布
适用场景:不适合用于稀疏数据的处理


import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import preprocessingdef plot(data, title):sns.set_style('dark')f, ax = plt.subplots()ax.set(ylabel='frequency')ax.set(xlabel='height(blue) / weight(green)')ax.set(title=title)sns.distplot(data[:, 0:1], color='blue')sns.distplot(data[:, 1:2], color='green')plt.savefig(title + '.png')plt.show()np.random.seed(42)
height = np.random.normal(loc=168, scale=5, size=1000).reshape(-1, 1)
weight = np.random.normal(loc=70, scale=10, size=1000).reshape(-1, 1)original_data = np.concatenate((height, weight), axis=1)
plot(original_data, 'Original')standard_scaler_data = preprocessing.StandardScaler().fit_transform(original_data)
plot(standard_scaler_data, 'StandardScaler')

在这里插入图片描述

最大最小归一化

公式请添加图片描述

优点:应用广泛,能较好的保持原有数据分布结构
缺点 :.对异常值(离群值)的存在非常敏感
转换区间:[0,1]
适用场景:不适合用于稀疏数据的处理


import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import preprocessingdef plot(data, title):sns.set_style('dark')f, ax = plt.subplots()ax.set(ylabel='frequency')ax.set(xlabel='height(blue) / weight(green)')ax.set(title=title)sns.distplot(data[:, 0:1], color='blue')sns.distplot(data[:, 1:2], color='green')plt.savefig(title + '.png')plt.show()np.random.seed(42)
height = np.random.normal(loc=168, scale=5, size=1000).reshape(-1, 1)
weight = np.random.normal(loc=70, scale=10, size=1000).reshape(-1, 1)original_data = np.concatenate((height, weight), axis=1)
plot(original_data, 'Original')standard_scaler_data = preprocessing.MinMaxScaler().fit_transform(original_data)
plot(standard_scaler_data, 'StandardScaler')

在这里插入图片描述

MaxAbs归一化

公式请添加图片描述

优点:保持原有数据分布结构
缺点 :.对异常值(离群值)的存在非常敏感
转换区间:[-1,1]
适用场景:稀疏数据、稀疏CSR或CSC矩阵


import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import preprocessingdef plot(data, title):sns.set_style('dark')f, ax = plt.subplots()ax.set(ylabel='frequency')ax.set(xlabel='height(blue) / weight(green)')ax.set(title=title)sns.distplot(data[:, 0:1], color='blue')sns.distplot(data[:, 1:2], color='green')plt.savefig(title + '.png')plt.show()np.random.seed(42)
height = np.random.normal(loc=168, scale=5, size=1000).reshape(-1, 1)
weight = np.random.normal(loc=70, scale=10, size=1000).reshape(-1, 1)original_data = np.concatenate((height, weight), axis=1)
plot(original_data, 'Original')standard_scaler_data = preprocessing.MinMaxScaler().fit_transform(original_data)
plot(standard_scaler_data, 'StandardScaler')

在这里插入图片描述

正则化

公式请添加图片描述 其中请添加图片描述

优点:单向量上来实现这正则化的功能
缺点 :.
转换区间
适用场景:经常被使用在分类与聚类中。


import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import preprocessingdef plot(data, title):sns.set_style('dark')f, ax = plt.subplots()ax.set(ylabel='frequency')ax.set(xlabel='height(blue) / weight(green)')ax.set(title=title)sns.distplot(data[:, 0:1], color='blue')sns.distplot(data[:, 1:2], color='green')plt.savefig(title + '.png')plt.show()np.random.seed(42)
height = np.random.normal(loc=168, scale=5, size=1000).reshape(-1, 1)
weight = np.random.normal(loc=70, scale=10, size=1000).reshape(-1, 1)original_data = np.concatenate((height, weight), axis=1)
plot(original_data, 'Original')standard_scaler_data = preprocessing.Normalizer().fit_transform(original_data)
plot(standard_scaler_data, 'StandardScaler')

在这里插入图片描述

Robust归一化

公式请添加图片描述Q代表分位数

优点:能最大限度地保留数据集中的异常(离群点)
缺点 :.
转换区间
适用场景:最大限度保留数据集中的异常(离群值)


import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import preprocessingdef plot(data, title):sns.set_style('dark')f, ax = plt.subplots()ax.set(ylabel='frequency')ax.set(xlabel='height(blue) / weight(green)')ax.set(title=title)sns.distplot(data[:, 0:1], color='blue')sns.distplot(data[:, 1:2], color='green')plt.savefig(title + '.png')plt.show()np.random.seed(42)
height = np.random.normal(loc=168, scale=5, size=1000).reshape(-1, 1)
weight = np.random.normal(loc=70, scale=10, size=1000).reshape(-1, 1)original_data = np.concatenate((height, weight), axis=1)
plot(original_data, 'Original')standard_scaler_data = preprocessing.RobustScaler().fit_transform(original_data)
plot(standard_scaler_data, 'RobustScaler')

在这里插入图片描述


http://www.ppmy.cn/news/401201.html

相关文章

星际争霸2中文版下载 – 即时战略游戏超大作 (繁体含中文语音)

超经典即时战略游戏星际争霸的续作《星际争霸2:自由之翼》中文版终于正式上市了!无数粉丝期盼了多年的心愿终于可以实现了。星际2游戏画面已经改为全3D了,场景与单位制作得很精美,战斗特效非常华丽的说! 这次星际争霸2是高度汉化了,游戏界面为繁体中文,语音是全…

技术新动向 | 谷歌云大举扩展安全 AI 生态系统

【本文由 Cloud Ace 整理发布, Cloud Ace 是谷歌云全球战略合作伙伴,拥有 300 多名工程师,也是谷歌最高级别合作伙伴,多次获得 Google Cloud 合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件…

接口测试和功能测试的区别

目录 前言: 一、测试目的不同 二、测试内容不同 三、测试重点不同 四、总结 前言: 接口测试和功能测试是软件测试中的两种不同类型。接口测试侧重于测试不同模块之间的接口,而功能测试则注重测试完整的业务功能。 一、测试目的不同 接…

招生 | 北京大学—知识图谱能力提升培训

北京大学继续教育项目 《北京大学—知识图谱能力提升培训班》 招生简章 培训安排 (一)培训时间 上课时间:2023年7月15日—7月17日 上课方式:在北京大学燕园校区(校本部)线下集中授课 (二&a…

分析现行的常用的文件格式类别

分析现行的常用的文件格式类别 简要的说数据信息在存储器中存储的排列方式不同为啦方便理解和交流规范为不同的文件格式,这点在linux上边可以较为明显的看出:linux只规范不同文件的属性,后缀名是为啦方便记忆和沟通等 …… 图形文件格式 wind…

现行的常用的文件格式类别 简析

简要的说数据信息在存储器中存储的排列方式不同为啦方便理解和交流规范为不同的文件格式,这点在linux上边可以较为明显的看出:linux只规范不同文件的属性,后缀名是为啦方便记忆和沟通等 …… 图形文件格式 windows中的标准图像文件格式 BMP 文…

【转】分析现行的常用的文件格式类别

摘要:讲述现今常见的在特定领域有代表性的文件格式,并没有深入讲述每种格式的存储状态(方式),只对相应格式的特性优缺点做简要概述。 关键字:计算机,文件格式,图形,图像&…

【工具】Maven加强版 — mvnd的使用

【工具】Maven加强版 — mvnd的使用 下载 Releases apache/maven-mvnd (github.com) 选对应的版本 我用的Windows版 1、安装 直接解压。 然后配置环境变量:将 bin 目录添加到 PATH 2、测试 打开CMD终端,输入 mvnd -v 可以看到如下信息表示安装成…