码迷,mamicode.com
首页 > 其他好文 > 详细

初识人工智能(二):机器学习(二):sklearn数据特征预处理

时间:2020-04-17 09:20:17      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:切分   对象   机器学习   图片   mamicode   初识   特征   info   numpy   

1. sklearn数据特征预处理

通过特定的统计方法(数学方法)将数据转换成算法要求的数据。

数值型数据:标准缩放:

  • 归一化
  • 标准化

类别型数据:

  • one-hot编码

时间类型:

  • 时间的切分

sklearn特征处理的API为:sklearn.preprocessing。

1.1 归一化

特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间。

公式:

技术图片

注:作用于每一列,max为一列的最大值,min为一列的最小值,那么X’’为最终结果,mx,mi分别为指定区间值默认mx为1,mi为0。

sklearn归一化API:sklearn.preprocessing.MinMaxScaler。

MinMaxScaler语法:

MinMaxScalar(feature_range=(0,1)…)

  • 每个特征缩放到给定范围(默认[0,1])
  • MinMaxScalar.fit_transform(X)
    •   X:numpy array格式的数据[n_samples,n_features]
    •   返回值:转换后的形状相同的array
from sklearn.preprocessing import MinMaxScaler

def mm():
    """
    归一化处理
    :return: NOne
    """
    mm = MinMaxScaler(feature_range=(2, 3))

    data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])

    print(data)

    return None

if __name__ == "__main__":
    mm()

运行结果:

技术图片

1.2 归一化案例:约会对象数据

相亲约会对象数据,这个样本时男士的数据,三个特征,玩游戏所消耗时间的百分比、每年获得的飞行常客里程数、每周消费的冰淇淋公升数。然后有一个所属类别,被女士评价的三个类别,不喜欢didnt、魅力一般small、极具魅力large也许也就是说飞行里程数对于结算结果或者说相亲结果影响较大,但是统计的人觉得这三个特征同等重要。

技术图片

这时候我们就需要进行归一化处理了。 

注意在特定场景下最大值最小值是变化的,另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景。

1.3 标准化

特点:通过对原始数据进行变换把数据变换到均值为0,方差为1范围内。

公式:

技术图片

注:作用于每一列,mean为平均值,??为标准差(考量数据的稳定性)

std成为方差:

技术图片

对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变。
对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。

sklearn特征化API:scikit-learn.preprocessing.StandardScaler。

StandardScaler(…)

  • 处理之后每列来说所有数据都聚集在均值0附近方差为1
  • StandardScaler.fit_transform(X,y)
    •   X:numpy array格式的数据[n_samples,n_features]
    •   返回值:转换后的形状相同的array
  • StandardScaler.mean_
    •   原始数据中每列特征的平均值
  • StandardScaler.std_
    •   原始数据每列特征的方差
from sklearn.preprocessing import StandardScaler

def stand():
    """
    标准化缩放
    :return:
    """
    std = StandardScaler()

    data = std.fit_transform([[ 1., -1., 3.],[ 2., 4., 2.],[ 4., 6., -1.]])

    print(data)

    return None

if __name__ == "__main__":
    stand()

运行结果:

技术图片

 可以通过缺失值每行或者每列的平均值、中位数来填充。

初识人工智能(二):机器学习(二):sklearn数据特征预处理

标签:切分   对象   机器学习   图片   mamicode   初识   特征   info   numpy   

原文地址:https://www.cnblogs.com/liuhui0308/p/12687055.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!