python数据预处理技术

数据预处理步骤

按照以下步骤在Python中预处理数据,本文中使用jupyter notebook进行演示。

第一步

导入所需的软件包,如果使用Pytho,那么这将成为数据转换为特定格式的第一步。代码如下:

import numpy as np 
from sklearm import preprocessing

这里使用了两个软件包:

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

定义数据样本,导入包后,需要定义一些样本数据,以便可以对这些数据应用预处理技术

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]])
第三步

应用预处理技术,接下来会介绍几种常用的预处理技术。

二值化

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

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

运行上述代码将得到以下输出,所有高于0.5(阈值)的值将被转换为1,并且所有低于0.5的值将被转换为0。
在这里插入图片描述

平均去除

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

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

运行上述代码将得到以下输出:
在这里插入图片描述
下面的代码将删除如何数据的平均值和标准偏差:

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

运行上述代码后将得到以下输出:
在这里插入图片描述

缩放

这是另一种数据预处理技术,用于缩放特征向量。 特征向量的缩放是需要的,因为每个特征的值可以在许多随机值之间变化。 换句话说,我们可以说缩放非常重要,因为我们不希望任何特征合成为大或小。 借助以下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)

运行上述代码将得到以下输出:
在这里插入图片描述

正常化

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

L1标准化

它也被成为最小绝对偏差。这种标准化会修改数据,以便每行的绝对值总和最多为1。

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

上述代码将得到以下输出:
在这里插入图片描述

L2标准化

它也被成为最小二乘。这种标准化使每行数据的平方和最多为1。

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

执行上述代码将得到以下输出:
在这里插入图片描述

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜色如墨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值