K近邻算法-特征工程-数据集的归一化和标准化

一、归一化:

  • 1、定义:通过对原始数据进行变换,把数据映射到一定区间,默认为[0,1]之
    间。
  • 2、公式:作用于每一列,max为一列的最大值,min为一列的最小值,那么X两撇为最终结果,mx,mi分别为指定区间值,默认mx为1,mi为0。
归一化公式.png
  • 3、公式实现过程的例子:


    公式实现过程.png
  • 4、归一化API:from sklearn.preprocessing import MinMaxScaler
    sklearn.preprocessing.MinMaxScaler(feature_range=(0,1)...)
    (1)、 MinMaxScaler.fit_transform(X) ,其中的X:numpy array格式的数据。[n_samples,n_features]
    (2) 、返回值:转换后形状相同的array。

  • 5、步骤分析:
    (1)、 实例化MinMaxScaler
    (2)、 通过fit_transform转换

  • 6、归一化代码演示:
# coding:utf-8

import pandas as pd
from sklearn.preprocessing import MinMaxScaler


def minmax_demo():
    """
    归一化演示
    :return: None
    """

    data = pd.read_csv("/Users/weixiujuan/study/人工智能AI/dating.csv")
    print(data)

    # 1.实例化
    transfer = MinMaxScaler(feature_range=(3, 5))

    # 2.进行转换,调用fit_transform
    ret_data = transfer.fit_transform(data[["milage", "Liters", "Consumtime"]])
    print("归一化之后的数据为:\n", ret_data)


minmax_demo()

  • 7、归一化运行结果:
归一化后的数据集.png
  • 8、归一化总结:
    注意最大值最小值是变化的,另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁莽性较差,只适合传统精确小数据场景。

二、标准化:

  • 1、定义:通过对原始数据进行变换把数据变换到均值为0,标准差为1的范围内。
  • 2、公式:作用与每一列,mean为平均值,斯一塔为标准差。
标准化公式.png
  • 3、标准化API:from sklearn.preprocessing import StandardScaler
    (1)、处理之后每列来说所有数据都聚集在均值0附近标准差为1。
    (2)、StandardScaler.fit_transform(X) 。其中的X:numpy array格式的数据(n_samples,n_features)。
    (3)、返回值:转换后形状相同的array。

  • 4、步骤分析:
    (1)、实例化StandardScaler
    (2)、通过fit_transform转换

  • 5、标准化代码演示:

# coding:utf-8

import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler


def minmax_demo():
    """
    归一化演示
    :return: None
    """

    data = pd.read_csv("/Users/weixiujuan/study/人工智能AI/dating.csv")
    print(data)

    # 1.实例化
    transfer = MinMaxScaler(feature_range=(3, 5))

    # 2.进行转换,调用fit_transform
    ret_data = transfer.fit_transform(data[["milage", "Liters", "Consumtime"]])
    print("归一化之后的数据为:\n", ret_data)


def stand_demo():
    """
    标准化演示
    :return: None
    """

    data = pd.read_csv("/Users/weixiujuan/study/人工智能AI/dating.csv")
    print("原始数据集为:\n", data)

    # 1.实例化
    transfer = StandardScaler()

    # 2.进行转换,调用fit_transform
    ret_data = transfer.fit_transform(data[["milage", "Liters", "Consumtime"]])
    print("标准之后的数据为:\n", ret_data)
    print("每一列的方差为:\n", transfer.var_)
    print("每一列的平均值为:\n", transfer.mean_)


# minmax_demo()
stand_demo()

  • 6、标准化运行结果:


    image.png
  • 7、标准化总结:
    在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。

三、特征工程总结:

1、特征工程定义:
通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程(转换成机器能看懂的数据)。
2、包含内容:归一化标准化
3、归一化:
(1)、定义:对原始数据进行变换吧数据映射到(默认为[0,1])之间。
(2)、api:sklearn.preprocessing.MinMaxScaler(feature_range=(0,1)...),参数feature_range -- 自己指定范围,默认0-1
(3)、总结:鲁莽性比较差,容易受到异常点的影响。直射和传统精确小数据场景(以后不会用的)
4、标准化:
(1)、对原始数据进行变换把数据变化到均值为0,标准差为1范围内。
(2)、api:sklearn.preprocessing.StandardScaler()
(3)、总结:受异常值影响小,适合现代嘈杂大数据场景(以后基本就用标准化)。

你可能感兴趣的:(K近邻算法-特征工程-数据集的归一化和标准化)