sklearn.preprocessing模块介绍

这篇具有很好参考价值的文章主要介绍了sklearn.preprocessing模块介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据预处理

Binarizer: 二值化

用于将数值特征二值化。它将特征值与给定的阈值进行比较,并将特征值转换为布尔值(0 或 1),取决于特征值是否超过阈值

Binarizer(*, threshold=0.0, copy=True)

参数:

  • threshold:指定阈值,默认为 0.0。特征值大于阈值的将被置为 1,小于或等于阈值的将被置为 0。
  • copy:是否创建输入数据的副本,默认为 True。
from sklearn.preprocessing import Binarizer
import numpy as np

# 创建带有数值特征的数据
X = np.array([[1.5], [2.7], [0.3]])

# 创建 Binarizer 对象
binarizer = Binarizer(threshold=1.0)

# 使用阈值对特征进行二值化
binary_data = binarizer.transform(X)

print(binary_data)

输出结果
sklearn.preprocessing模块介绍

MaxAbsScaler: 最大绝对值缩放

用于通过除以每个特征的最大绝对值来缩放数据,将数据的范围限制在 [-1, 1] 之间。它是一种无中心化的缩放方法,保留了数据的原始分布形状。
MaxAbsScaler 的特点是它保留了数据的原始分布形状,并将每个特征的值映射到 [-1, 1] 的范围内。这在某些情况下对于特征缩放非常有用,例如在稀疏数据或特征值有较大差异的情况下。

from sklearn.preprocessing import MaxAbsScaler
import numpy as np

# 创建带有数值特征的数据
X = np.array([[1, 5], [3, 4], [5, -6]])

# 创建 MaxAbsScaler 对象
scaler = MaxAbsScaler()

# 使用最大绝对值进行缩放
scaled_data = scaler.fit_transform(X)

print(scaled_data)

输出结果
sklearn.preprocessing模块介绍

MinMaxScaler: 最小-最大缩放

通过缩放数据将每个特征的值限定在给定的范围内,默认为 [0, 1]。它将每个特征的值映射到指定的范围内,保留了数据的原始分布形状
MinMaxScaler 的特点是它将数据的值映射到指定的范围内,并保留了数据的原始分布形状。这种缩放方法常用于需要将特征值限定在一定范围内的情况,例如神经网络训练或特征工程中的数据标准化处理

MinMaxScaler(feature_range=(0, 1), *, copy=True, clip=False)

参数介绍

  • feature_range:指定特征值的范围,默认为 [0, 1]
from sklearn.preprocessing import MinMaxScaler
import numpy as np

# 创建带有数值特征的数据
X = np.array([[1, 2], [3, 4], [5, 6]])

# 创建 MinMaxScaler 对象
scaler = MinMaxScaler(feature_range=(0, 1))

# 使用最小值和最大值进行缩放
scaled_data = scaler.fit_transform(X)

print(scaled_data)

结果
sklearn.preprocessing模块介绍

Normalizer: 归一化

它的作用是将每个样本的特征向量转换为具有相同单位长度的向量。这意味着归一化后的每个样本都位于一个共同的单位球上,其欧几里得范数(L2范数)为1。

归一化是数据预处理的一种常见技术,特别适用于需要计算样本之间的相似性或距离的任务。通过归一化处理,可以消除特征之间的尺度差异,确保每个样本的特征向量具有相同的单位长度。这对于许多机器学习算法和模型是重要的,因为它可以改善算法的收敛性和性能。

归一化过程的原理是通过对特征向量的每个元素进行缩放,使得整个特征向量的范数等于1。在 Normalizer 中,有三种归一化的范数类型可供选择:L1范数归一化(norm=‘l1’)、L2范数归一化(norm=‘l2’)、Max范数归一化(norm=‘max’)

from sklearn.preprocessing import Normalizer
import numpy as np

# 创建带有数值特征的数据
X = np.array([[1, 2], [3, 4], [5, 6]])

# 创建 Normalizer 对象
normalizer = Normalizer(norm='l2')

# 对输入数据进行归一化处理
normalized_data = normalizer.transform(X)

print(normalized_data)

StandardScaler: 标准化

用于对数据进行标准化处理。标准化是一种常见的数据预处理技术,旨在消除特征之间的尺度差异,使得数据的分布符合标准正态分布(均值为0,标准差为1)
标准化的原理是将数据进行中心化(去均值)和缩放为单位方差的过程。具体而言,对于每个特征,标准化将其值减去均值,然后除以标准差。这使得特征的值在整个数据集上具有零均值和单位方差,将数据的分布调整为标准正态分布。标准化后的数据具有更好的可比性和可解释性,并且适用于许多机器学习算法和模型。

StandardScaler(*, copy=True, with_mean=True, with_std=True)
  • with_mean:是否将数据中心化(去均值),默认为 True。
  • with_std:是否将数据缩放为单位方差,即除以标准差,默认为 True
from sklearn.preprocessing import StandardScaler
import numpy as np

# 创建带有数值特征的数据
X = np.array([[1, 2], [3, 4], [5, 6]])

# 创建 StandardScaler 对象
scaler = StandardScaler()

# 对输入数据进行标准化处理
scaled_data = scaler.fit_transform(X)

print(scaled_data)

结果
sklearn.preprocessing模块介绍

QuantileTransformer: 分位数转换

RobustScaler: 鲁棒缩放

,用于对数据进行缩放和中心化处理。它通过对数据进行缩放和平移,使得数据在存在异常值的情况下能够更好地适应模型的训练

RobustScaler(
    *,
    with_centering=True,
    with_scaling=True,
    quantile_range=(25.0, 75.0),
    copy=True,
    unit_variance=False,
)

参数:

  • with_centering:指定是否进行中心化处理,默认为 True。
  • with_scaling:指定是否进行缩放处理,默认为 True。
  • quantile_range:指定缩放范围的分位数范围,默认为 (25.0, 75.0)。
from sklearn.preprocessing import RobustScaler
import numpy as np

# 创建示例数据
X = np.array([[1.0, 2.0, 3.0],
              [4.0, 6.0, 8.0],
              [10.0, 12.0, 14.0],
              [16.0, 18.0, 20.0]])

# 创建 RobustScaler 对象
scaler = RobustScaler()

# 对数据进行缩放和中心化处理
scaled_data = scaler.fit_transform(X)

print(scaled_data)

执行结果
sklearn.preprocessing模块介绍

PowerTransformer: 幂变换

KernelCenterer: 中心化数据

标签处理:

Binarizer: 标签二值化

同上

LabelBinarizer: 标签二进制化

用于将分类变量进行二进制编码。它将每个类别转换为一个二进制向量,其中只有一个元素为 1,表示该类别,其他元素为 0

from sklearn.preprocessing import LabelBinarizer

# 创建包含类别标签的数据
y = ['cat', 'dog', 'cat', 'bird']

# 创建 LabelBinarizer 对象
binarizer = LabelBinarizer()

# 对类别标签进行二进制编码
binary_labels = binarizer.fit_transform(y)

print(binary_labels)

执行结果
sklearn.preprocessing模块介绍

LabelEncoder: 标签编码

用于对分类变量进行整数编码。它将每个类别标签映射到一个整数,从 0 开始递增

from sklearn.preprocessing import LabelEncoder

# 创建包含类别标签的数据
y = ['cat', 'dog', 'cat', 'bird']

# 创建 LabelEncoder 对象
encoder = LabelEncoder()

# 对类别标签进行整数编码
encoded_labels = encoder.fit_transform(y)

print(encoded_labels)

执行结果
sklearn.preprocessing模块介绍

MultiLabelBinarizer: 多标签二进制化

,用于对多标签分类问题中的类别标签进行二进制编码。它将每个样本的类别标签转换为一个二进制向量,其中每个元素表示一个可能的类别,如果样本属于该类别,则对应元素为 1,否则为 0。

from sklearn.preprocessing import MultiLabelBinarizer

# 创建多标签分类问题的类别标签
y = [['cat', 'dog'], ['bird'], ['dog', 'bird']]

# 创建 MultiLabelBinarizer 对象
binarizer = MultiLabelBinarizer()

# 对类别标签进行二进制编码
binary_labels = binarizer.fit_transform(y)

print(binary_labels)

执行结果

sklearn.preprocessing模块介绍

数据变换:

FunctionTransformer: 自定义函数转换

KBinsDiscretizer: 定宽离散化

KernelPCA: 核主成分分析

LabelEncoder: 标签编码

MaxAbsScaler: 最大绝对值缩放

MinMaxScaler: 最小-最大缩放

Normalizer: 归一化

OneHotEncoder: 独热编码

用于对离散特征进行独热编码。它将每个离散特征的每个取值转换为一个二进制特征向量,其中只有一个元素为 1,表示该取值,其他元素为 0。

from sklearn.preprocessing import OneHotEncoder
import numpy as np

# 创建离散特征数据
X = np.array([['red', 'red', 'green'],
              ['blue', 'red', 'yellow'],
              ['green', 'yellow', 'blue']])

# 创建 OneHotEncoder 对象
encoder = OneHotEncoder()

# 对特征进行独热编码
encoded_features = encoder.fit_transform(X)

print(encoded_features.toarray())

执行结果
sklearn.preprocessing模块介绍

OrdinalEncoder: 有序编码

用于对离散特征进行序数编码。它将每个离散特征的每个取值映射为一个整数,从 0 开始递增。

from sklearn.preprocessing import OrdinalEncoder
import numpy as np

# 创建离散特征数据
X = np.array([['red', 'blue', 'green'],
              ['blue', 'red', 'yellow'],
              ['green', 'yellow', 'blue']])

# 创建 OrdinalEncoder 对象
encoder = OrdinalEncoder()

# 对特征进行序数编码
encoded_features = encoder.fit_transform(X)

print(encoded_features)

执行结果
sklearn.preprocessing模块介绍

ordinalEncoder与LabelEncoder区别

编码方式不同:
OrdinalEncoder 对每个特征的取值进行序数编码,将每个取值映射为一个整数。编码后的整数值的大小具有一定的顺序性,但不一定具有数值意义。
LabelEncoder 对每个类别标签进行整数编码,将每个类别标签映射为一个整数。编码后的整数值只是用来区分不同的类别,没有顺序或数值意义。
应用场景不同:
OrdinalEncoder 适用于处理多个离散特征的编码,每个特征的取值之间没有明确的类别关系,仅需将其映射为整数。
LabelEncoder 适用于处理单个分类变量的编码,其中类别之间没有明确的顺序关系。
处理方式不同:
OrdinalEncoder 适用于处理离散特征的编码,对于多个特征和多个类别标签,可以同时进行编码。
LabelEncoder 主要用于处理单个分类变量的编码,对于多个类别标签,需要对每个类别标签进行独立的编码。文章来源地址https://www.toymoban.com/news/detail-514164.html

PolynomialFeatures: 多项式特征生成

PowerTransformer: 幂变换

QuantileTransformer: 分位数转换

RobustScaler: 鲁棒缩放

StandardScaler: 标准化

到了这里,关于sklearn.preprocessing模块介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ACE2005数据集介绍、预处理及事件抽取

    参考链接:https://www.jianshu.com/p/71ed0d780210(感谢作者鲜芋牛奶西米爱solo,这篇博客介绍的非常详细) https://zhuanlan.zhihu.com/p/89297862 ACE语料库的获取链接:https://catalog.ldc.upenn.edu/LDC2006T06(收费) 有关ACE英文语料库注释准则的详细内容可参考:https://www.ldc.upenn.edu/sites/www.ldc.upe

    2024年02月09日
    浏览(21)
  • 第五篇【传奇开心果系列】Python文本和语音相互转换库技术点案例示例:详细解读pyttsx3的`preprocess_text`函数文本预处理。

    pyttsx3在文本转换语音之前,首先要开展系列步骤的文本预处理工作。 这些预处理步骤可以在使用 pyttsx3 之前应用于文本,以提高转换结果的质量和可读性。预处理后的文本更干净、准确,可以更好地用于语音转换。pyttsx3主要使用 preprocess_text 函数开展文本预处理。 下面是一

    2024年02月22日
    浏览(35)
  • <2>【深度学习 × PyTorch】pandas | 数据预处理 | 处理缺失值:插值法 | networkx模块绘制知识图谱 | 线性代数初步

      你永远不可能真正的去了解一个人,除非你穿过ta的鞋子,走过ta走过的路,站在ta的角度思考问题,可当你真正走过ta走过的路时,你连路过都会觉得难过。有时候你所看到的,并非事实真相,你了解的,不过是浮在水面上的冰山一角。—————《杀死一只知更鸟》   🎯

    2024年02月01日
    浏览(36)
  • python机器学习(三)特征预处理、鸢尾花案例--分类、线性回归、代价函数、梯度下降法、使用numpy、sklearn实现一元线性回归

    数据预处理的过程。数据存在不同的量纲、数据中存在离群值,需要稳定的转换数据,处理好的数据才能更好的去训练模型,减少误差的出现。 标准化 数据集的标准化对scikit-learn中实现的大多数机器学习算法来说是常见的要求,很多案例都需要标准化。如果个别特征或多或

    2024年02月16日
    浏览(31)
  • 【Webpack】预处理器 - loader配置介绍

    预处理器 (loader) ,的主要功能是赋予了 Webpack 可处理不同资源类型的能力,极大丰富了其可扩展性。 一个Web工程通常会包含HTML、JS、CSS、模板、图片、字体等多种类型的静态资源,并且这些资源之间都存在着某种联系。对于 Webpack 来说,所有这些静态资源都是模块,可以像

    2024年01月17日
    浏览(49)
  • 数据采集与预处理01: 项目1 数据采集与预处理准备

    数据采集:足够的数据量是企业大数据战略建设的基础,因此数据采集成为大数据分析的前站。数据采集是大数据价值挖掘中重要的一环,其后的分析挖掘都建立在数据采集的基础上。大数据技术的意义确实不在于掌握规模庞大的数据信息,而在于对这些数据进行智能处理,

    2024年01月25日
    浏览(45)
  • 数据预处理matlab matlab数据的获取、预处理、统计、可视化、降维

    1.1 从Excel中获取 使用readtable() 例1: 使用 spreadsheetImportOptions(Name,Value) 初步确定导入信息, 再用 opts.Name=Value 的格式添加。 例2: 先初始化 spreadsheetImportOptions 对象, 再用 opts.Name=Value 的格式逐个添加。 例3: 将导入信息存到变量里, 再使用 spreadsheetImportOptions(Name,Value)

    2024年02月15日
    浏览(44)
  • 大数据采集技术与预处理学习一:大数据概念、数据预处理、网络数据采集

    目录 大数据概念: 1.数据采集过程中会采集哪些类型的数据? 2.非结构化数据采集的特点是什么? 3.请阐述传统的数据采集与大数据采集的区别? ​​​​​​​ ​​​​​​​4.大数据采集的数据源有哪些?针对不同的数据源,我们可以采用哪些不同的方法和工具? 数据

    2024年01月25日
    浏览(40)
  • 数据预处理之数据规约

    目录 一、前言 二、PCA的主要参数: 三、数据归约任务1 四、数据规约任务2 PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构

    2024年02月12日
    浏览(32)
  • 数据分析--数据预处理

    本文主要是个人的学习笔记总结,数据预处理的基本思路和方法,包括一些方法的使用示例和参数解释,具体的数据预处理案例case详见其他文章。如有错误之处还请指正! 目录 数据的质量评定 数据处理步骤 缺失值的处理 标记缺失值 删除 缺失值 填充 缺失值 重复值处理 异

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包