分享

AI人工智能 预处理数据

 码农9527 2021-06-15

 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。

AI

    本章重点介绍机器学习算法的数据准备。

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

    数据预处理步骤

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

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

    importnumpyasnp

    fromsklearnimportpreprocessing

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

    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])

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

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

    二值化

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

    data_binarized=preprocessing.Binarizer(threshold=0.5).transform(input_data)

    print("\nBinarizeddata:\n",data_binarized)

    现在,运行上面的代码后,将得到以下输出,所有高于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("Stddeviation=",input_data.std(axis=0))

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

    Mean=[1.75-1.2752.2]

    Stddeviation=[2.714313914.200223214.69414529]

    现在,下面的代码将删除输入数据的平均值和标准偏差-

    data_scaled=preprocessing.scale(input_data)

    print("Mean=",data_scaled.mean(axis=0))

    print("Stddeviation=",data_scaled.std(axis=0))

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

    Mean=[1.11022302e-160.00000000e+000.00000000e+00]

    Stddeviation=[1.1.1.]

    缩放

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

    最小最大缩放

    data_scaler_minmax=preprocessing.MinMaxScaler(feature_range=(0,1))

    data_scaled_minmax=data_scaler_minmax.fit_transform(input_data)

    print("\nMinmaxscaleddata:\n",data_scaled_minmax)

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

    [[0.486486490.582524270.99122807]

    [0.1.0.81578947]

    [0.270270270.1.]

    [1.0.990291260.]]

    正常化

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

    L1标准化

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

    ##Normalizedata

    data_normalized_l1=preprocessing.normalize(input_data,norm='l1')

    print("\nL1normalizeddata:\n",data_normalized_l1)

    Python

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

    L1normalizeddata:

    [[0.22105263-0.20.57894737]

    [-0.20270270.324324320.47297297]

    [0.03571429-0.564285710.4]

    [0.421428570.16428571-0.41428571]]

    L2标准化

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

    ##Normalizedata

    data_normalized_l2=preprocessing.normalize(input_data,norm='l2')

    print("\nL2normalizeddata:\n",data_normalized_l2)

    Python

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

    L2normalizeddata:

    [[0.33946114-0.307131510.88906489]

    [-0.333251060.533201690.7775858]

    [0.05156558-0.814736120.57753446]

    [0.687069140.26784051-0.6754239]]

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多