在现实世界中,我们经常遇到许多原始数据,这些数据不适合机器学习算法。我们需要在将原始数据输入各种机器学习算法之前对其进行预处理。本章讨论在Python机器学习中预处理数据的各种技术。
数据预处理
在本节中,让我们了解如何在Python中预处理数据。
最初,在文本编辑器(如记事本)中打开扩展名为.py的文件,例如prefoo.py文件。
然后,将以下代码添加到此文件中-
import numpy as np
from sklearn import preprocessing
#We imported a couple of packages. Let's create some sample data and add the line to this file:
input_data= np.array([[3, -1.5, 3, -6.4], [0, 3, -1.3, 4.1], [1, 2.3, -2.9, -4.3]])
现在我们已经准备好对这些数据进行操作了。
预处理技术
可以使用这里讨论的几种技术对数据进行预处理-
平均去除
它涉及从每个要素中删除均值,使其以零为中心。平均删除有助于消除特征中的任何偏差。
您可以使用以下代码进行平均删除-
data_standardized= preprocessing.scale(input_data)
print "nMean= ", data_standardized.mean(axis= 0)
print "Std deviation= ", data_standardized.std(axis= 0)
现在在终端上运行以下命令-
$ python prefoo.py
您可以观察以下输出-
Mean= [ 5.55111512e-17 -3.70074342e-17 0.00000000e+00 -1.85037171e-17]
Std deviation= [1. 1. 1. 1.]
观察输出中的平均值几乎为0且标准差为1.
缩放
数据点中每个要素的值可以在随机值之间变化。因此,重要的是缩放它们以使其符合指定的规则。
您可以使用以下代码进行缩放-
data_scaler= preprocessing.MinMaxScaler(feature_range= (0, 1))
data_scaled= data_scaler.fit_transform(input_data)
print "nMin max scaled data= ", data_scaled
现在运行代码,您可以观察以下内容输出-
Min max scaled data= [ [ 1. 0. 1. 0. ]
[ 0. 1. 0.27118644 1. ]
[ 0.33