预处理数据

在我们的日常生活中,需要处理大量数据,但这些数据是原始数据。 为了提供数据作为机器学习算法的输入,需要将其转换为有意义的数据。 这就是数据预处理进入图像的地方。 换言之,可以说在将数据提供给机器学习算法之前,我们需要对数据进行预处理。

数据预处理步骤

按照以下步骤在Python中预处理数据 -

第1步 - 导入有用的软件包 - 如果使用Python,那么这将成为将数据转换为特定格式(即预处理)的第一步。如下代码 -

import numpy as np
from sklearn import preprocessing

Python

这里使用了以下两个软件包 -

  • NumPy - 基本上NumPy是一种通用的数组处理软件包,设计用于高效处理任意记录的大型多维数组而不牺牲小型多维数组的速度。
  • sklearn.preprocessing - 此包提供了许多常用的实用函数和变换器类,用于将原始特征向量更改为更适合机器学习算法的表示形式。

第2步 - 定义样本数据 - 导入包后,需要定义一些样本数据,以便可以对这些数据应用预处理技术。现在将定义以下样本数据 -

input_data = np.array([2.1, -1.9, 5.5],
[-1.5, 2.4, 3.5],
[0.5, -7.9, 5.6],
[5.9, 2.3, -5.8]])
Python

第3步 - 应用预处理技术 - 在这一步中,我们需要应用预处理技术。

以下部分描述数据预处理技术。

数据预处理技术

下面介绍数据预处理技术 -

二值化

这是当需要将数值转换为布尔值时使用的预处理技术。我们可以用一种内置的方法来二值化输入数据,比如说用0.5作为阈值,方法如下 -

data_binarized = preprocessing.Binarizer(threshold = 0.5).transform(input_data)
print("\nBinarized data:\n", data_binarized)
Python

现在,运行上面的代码后,将得到以下输出,所有高于0.5(阈值)的值将被转换为1,并且所有低于0.5的值将被转换为0

二值化数据

[[ 1. 0. 1.]
[ 0. 1. 1.]
[ 0. 0. 1.]
[ 1. 1. 0.]]
平均去除

这是机器学习中使用的另一种非常常见的预处理技术。 基本上它用于消除特征向量的均值,以便每个特征都以零为中心。 还可以消除特征向量中的特征偏差。 为了对样本数据应用平均去除预处理技术,可以编写如下Python代码。 代码将显示输入数据的平均值和标准偏差 -

print("Mean = ", input_data.mean(axis = 0))
print("Std deviation = ", input_data.std(axis = 0))

运行上述代码行后,将得到以下输出 -

Mean = [ 1.75       -1.275       2.2]
Std deviation = [ 2.71431391 4.20022321 4.69414529]
现在,下面的代码将删除输入数据的平均值和标准偏差 -
data_scaled = preprocessing.scale(input_data)
print("Mean =", data_scaled.mean(axis=0))
print("Std deviation =", data_scaled.std(axis = 0))

运行上述代码行后,将得到以下输出 -

Mean = [ 1.11022302e-16 0.00000000e+00 0.00000000e+00]
Std deviation = [ 1. 1. 1.]

缩放

这是另一种数据预处理技术,用于缩放特征向量。 特征向量的缩放是需要的,因为每个特征的值可以在许多随机值之间变化。 换句话说,我们可以说缩放非常重要,因为我们不希望任何特征合成为大或小。 借助以下Python代码,我们可以对输入数据进行缩放,即特征矢量 -

最小最大缩放

data_scaler_minmax = preprocessing.MinMaxScaler(feature_range=(0,1))
data_scaled_minmax = data_scaler_minmax.fit_transform(input_data)
print ("\nMin max scaled data:\n", data_scaled_minmax)

运行上述代码行后,将得到以下输出 -

[ [ 0.48648649  0.58252427   0.99122807]
[ 0. 1. 0.81578947]
[ 0.27027027 0. 1. ]
[ 1. 0. 99029126 0. ]]
Python

正常化

这是另一种数据预处理技术,用于修改特征向量。 这种修改对于在一个普通的尺度上测量特征向量是必要的。 以下是可用于机器学习的两种标准化 -

L1标准化

它也被称为最小绝对偏差。 这种标准化会修改这些值,以便绝对值的总和在每行中总是最多为1。 它可以在以下Python代码,使用上面的输入数据来实现 -

# Normalize data
data_normalized_l1 = preprocessing.normalize(input_data, norm = 'l1')
print("\nL1 normalized data:\n", data_normalized_l1)

上面的代码行生成以下输出:

L1 normalized data:
[[ 0.22105263 -0.2 0.57894737]
[ -0.2027027 0.32432432 0.47297297]
[ 0.03571429 -0.56428571 0.4 ]
[ 0.42142857 0.16428571 -0.41428571]]
Python

L2标准化

它也被称为最小二乘。这种归正常化修改了这些值,以便每一行中的平方和总是最多为1。它可以在以下Python代码,使用上面的输入数据来实现 -

# Normalize data
data_normalized_l2 = preprocessing.normalize(input_data, norm = 'l2')
print("\nL2 normalized data:\n", data_normalized_l2)

执行以上代码行将生成以下输出 -

L2 normalized data:
[[ 0.33946114 -0.30713151 0.88906489]
[ -0.33325106 0.53320169 0.7775858 ]
[ 0.05156558 -0.81473612 0.57753446]
[ 0.68706914 0.26784051 -0.6754239 ]]

易百教程人工智能python修正-人工智能数据准备-预处理数据的更多相关文章

  1. 易百教程人工智能python修正-人工智能无监督学习(聚类)

    无监督机器学习算法没有任何监督者提供任何指导. 这就是为什么它们与真正的人工智能紧密结合的原因. 在无人监督的学习中,没有正确的答案,也没有监督者指导. 算法需要发现用于学习的有趣数据模式. 什么是聚 ...

  2. 易百教程人工智能python修正-人工智能监督学习(回归)

    回归是最重要的统计和机器学习工具之一. 我们认为机器学习的旅程从回归开始并不是错的. 它可以被定义为使我们能够根据数据做出决定的参数化技术,或者换言之,允许通过学习输入和输出变量之间的关系来基于数据做 ...

  3. 易百教程人工智能python修正-人工智能监督学习(分类)

    分类技术或模型试图从观测值中得出一些结论. 在分类问题中,我们有分类输出,如“黑色”或“白色”或“教学”和“非教学”. 在构建分类模型时,需要有包含数据点和相应标签的训练数据集. 例如,如果想检查图像 ...

  4. 易百教程人工智能python修正-人工智能数据准备-标记数据

    我们已经知道,某种格式的数据对于机器学习算法是必需的. 另一个重要的要求是,在将数据作为机器学习算法的输入发送之前,必须正确标记数据. 例如,如果所说的分类,那么数据上会有很多标记. 这些标记以文字, ...

  5. 易百教程人工智能python修正-人工智能NLTK性别发现器

    在这个问题陈述中,将通过提供名字来训练分类器以找到性别(男性或女性). 我们需要使用启发式构造特征向量并训练分类器.这里使用scikit-learn软件包中的标签数据. 以下是构建性别查找器的Pyth ...

  6. [oBIX包使用教程] 使用 Python 通过 oBIX 协议访问 Niagara 数据

    oBIX 全称是 Open Building Information Exchange,它是基于 RESTful Web Service 的接口的标准,用于构建控制系统.oBIX是在专为楼宇自动化设计 ...

  7. 易百教程人工智能python补充-NLTK包

    自然语言处理(NLP)是指使用诸如英语之类的自然语言与智能系统进行通信的AI方法. 如果您希望智能系统(如机器人)按照您的指示执行操作,希望听取基于对话的临床专家系统的决策时,则需要处理自然语言. N ...

  8. MyBatis整合Spring MVC(易百教程)

    MyBatis是ibatis的升级版,作为hibernate的老对手,它是一个可以自定义SQL.存储过程和高级映射的持久层框架.与Hibernate 的主要区别就是 Mybatis 是半自动化的,而 ...

  9. Mybatis与Spring集成(易百教程)

    整个Mybatis与Spring集成示例要完成的步骤如下: 1.示例功能描述 2.创建工程 3.数据库表结构及数据记录 4.实例对象 5.配置文件 6.测试执行,输出结果 1.示例功能描述 在本示例中 ...

随机推荐

  1. OpenFOAM——气泡上升

    计算域的顶部为大气,其余部分为壁面 流体的物性参数为: 首先进行建模操作,任何建模软件均可,本算例采用ICEM直接建模,生成网格,然后利用OpenFOAM下转化网格,划分完成的网格如下: 网格比较密集 ...

  2. 第10组 Beta冲刺(4/5)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 将数据分析以可视化形式展示出来 新增数据分析展示等功能API 服务器后端部署, ...

  3. 快速激活Navicat Premium 12

    Navicat Premium 12是一套数据库开发管理工具,支持链家MySQL.Oracle.SQL server等多种数据库,快速便捷创建.管理和维护数据库 一.下载 https://www.na ...

  4. jmeter常用四种断言

    jmeter常用四种断言 一.Response Assertion(响应断言)二.Size Assertion(数据包字节大小断言)三.Duration Assertion(持续时间断言)四.bean ...

  5. iOS - 点击UIButton不变灰,button的image不变灰

    要想让uibutton点击不变灰 初始化的时候就不能 UIButton *button = [[UIButton alloc]init]; 初始化的时候酱紫,可以保证button点击时不变灰 UIBu ...

  6. [LeetCode] 110. Balanced Binary Tree 平衡二叉树

    Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...

  7. 禅道的使用—bug管理工具

    简介 禅道项目管理软件集产品管理.项目管理.质量管理.文档管理.组织管理和事务管理于一体,是一款功能完备的项目管理软件,完美地覆盖了项目管理的核心流程. 1.禅道使用的基本流程 禅道管理软件中,核心的 ...

  8. Kubernetes 使用 ingress 配置 https 集群(十五)

    目录 一.背景 1.1 需求 1.2 Ingress 1.3 环境介绍 二.安装部署 2.1.创建后端 Pod 应用 2.2 创建后端 Pod Service 2.3.创建 ingress 资源 2. ...

  9. 使用office365 world2016发布编辑备份你的博客

    开门见山.   如果你曾使用过live writer或者world 2013及之前版本发布过博客,那么请直接异步到最后的tips来查找你可能遇到的问题.     在office365中找到博客模板 打 ...

  10. win运行canal

    1.mysql开启log_bin 用命令查看是否开启 SHOW VARIABLES LIKE 'log_bin'; OFF为未开启,ON为开启 Win环境的话找到my.ini,Linux环境的话找到m ...