机器学习 --2 特征预处理 之 数据标准化

归一化:

  • API位置
sklearn.preprocessing
  • 归一化:
    特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间
    注意也可以通过指定MinMaxScalar 里边的feature_range 来指定缩放的范围
  • 示例代码
from sklearn.preprocessing import MinMaxScaler


# 归一化
# 最小最大缩放(MinMaxScaler)
# 按照最大最小值缩放到 0-1 区间(也可以指定feature_range)
def mm():
    mm = MinMaxScaler(feature_range=(0,1))
    data = mm.fit_transform([[90, 2, 10, 40],
                      [60, 4, 15, 45],
                      [75, 3, 13, 46]])
    print(data)
    return None

if __name__=='__main__':
    mm()

标准化

  • API位置
from sklearn.preprocessing import StandardScaler
  • 标准化
    使用标准差,使得在样本足够多的情况下,比较稳定,适应数据比较嘈杂的环境(避免异常点过分影响)
  • 示例代码
from sklearn.preprocessing import StandardScaler
import numpy as np
# 缺失值处理
# 版本更新:
#  DeprecationWarning: Class Imputer is deprecated; Imputer was deprecated in version 0.20 and will be removed in 0.22. Import impute.SimpleImputer from sklearn instead.
#   warnings.warn(msg, category=DeprecationWarning)
from sklearn.preprocessing import Imputer


# 标准化缩放
def stand():
    std = StandardScaler()
    data = std.fit_transform([[1., -1., 3.],
                              [2., 4., 2.],
                              [4., 6., -1.]])
    print(data)
    return None


# 缺失值处理
# 可以删除(不建议)
# 可以插补(使用平均值 或者 中位数) 一般按列填补
def im():
    # 指定缺失的是nan 轴用0轴(按列)
    im = Imputer(missing_values='NaN', strategy='mean', axis=0)
    data = im.fit_transform([[1, 2],
                             [np.nan, 3],
                             [7, 6]])
    print(data)
    return None

if __name__ == "__main__":
    stand()
    im()
    '''
    [[1. 2.]
    [4. 3.]
    [7. 6.]]
    '''

猜你喜欢

转载自blog.csdn.net/qq_41009846/article/details/85171812
今日推荐