欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【机器学习】(数值型)数据特征预处理 No.2

程序员文章站 2023-12-25 18:22:51
...

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

数值型数据:标准缩放(1、归一化,2、标准化,3、缺失值

类别型数据:one-hot编码

时间类型:时间的切分

Sklearn特征处理API: sklearn.preprocessing​​​

归一化

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

         【机器学习】(数值型)数据特征预处理 No.2

Sklearn 归一化APIsklearn.preprocessing.MinMaxScaler

 

 

            【机器学习】(数值型)数据特征预处理 No.2 

【机器学习】(数值型)数据特征预处理 No.2

示例:

from sklearn.preprocessing import MinMaxScaler

def
maxminScaler():
   
"归一化处理"
   
X = [[90, 2, 10, 40], [60, 4, 15, 45], [75, 3, 13, 46]]
    mm = MinMaxScaler()
    data = mm.fit_transform(X)
   
print(data)
    return None

if
__name__==
"__main__":
   
maxminScaler()

执行结果:

F:\Python\3.7\python.exe E:/PythonProject/Scripts/vector.py

[[1.         0.         0.         0.        ]

 [0.         1.         1.         0.83333333]

 [0.5        0.5        0.6        1.        ]]

将其归一化到【2,3】范围:

from sklearn.preprocessing import MinMaxScaler
  
  def maxminScaler():

    "归一化处理"

    X = [[90, 2, 10, 40], [60, 4, 15, 45], [75, 3, 13, 46]]

    mm = MinMaxScaler(feature_range=range(2, 4), copy=True)

    data = mm.fit_transform(X)

    print(data)

    return None

  

if __name__== "__main__":

    maxminScaler()

结果:

F:\Python\3.7\python.exe E:/PythonProject/Scripts/vector.py

[[3.         2.         2.         2.        ]

 [2.         3.         3.         2.83333333]

 [2.5        2.5        2.6        3.        ]]

Process finished with exit code 0

归一化总结:

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

标准化

1)定义:通过对原始数据进行变换把数据变换到均值为0,标准差为1的范围内。

 

 

【机器学习】(数值型)数据特征预处理 No.2

【机器学习】(数值型)数据特征预处理 No.2

(2sklearn标准化API

              sklearn.preprocessing.StandardScaler

        【机器学习】(数值型)数据特征预处理 No.2

        【机器学习】(数值型)数据特征预处理 No.2

示例:

from sklearn.preprocessing import StandardScaler

  def stdScaler():

    "标准化处理"

    X = [[1, -1, 3], [2,4,2], [4, 6, -1]]

    std = StandardScaler()

    data = std.fit_transform(X)

    print(data)

    return None


if __name__== "__main__":

    stdScaler()

执行结果:

F:\Python\3.7\python.exe E:/PythonProject/Scripts/vector.py

[[-1.06904497 -1.35873244  0.98058068]

 [-0.26726124  0.33968311  0.39223227]

 [ 1.33630621  1.01904933 -1.37281295]]

Process finished with exit code 0

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

  1. 缺失值处理

 

【机器学习】(数值型)数据特征预处理 No.2

2sklearn缺失值API

# sklearn版本0.20之前,请使用Imputer 类,版本0.22(包含0.22)之后的,则使用SimpleImputer
 from sklearn.preprocessing import Imputer  #sklearn版本0.20之前
from sklearn.impute import SimpleImputer    # 版本0.22(包含0.22)之后
【机器学习】(数值型)数据特征预处理 No.2

SimpleImputer类定义

 

【机器学习】(数值型)数据特征预处理 No.2

 

数据中缺失值np.nan 浮点型。

【机器学习】(数值型)数据特征预处理 No.2

 

# sklearn版本0.20之前,请使用Imputer 类,版本0.22(包含0.22)之后的,则使用SimpleImputer

# from sklearn.preprocessing import Imputer  #sklearn版本0.20之前

  from sklearn.impute import SimpleImputer

  import numpy as np

  def imp():

    '''

    缺失值处理

    :return None

    '''

    X = [[1, 2], [np.nan,3], [6, 7]]

    std = SimpleImputer(missing_values=np.nan, strategy='mean')

    data = std.fit_transform(X)

    print(data)

    return None

 
if __name__== "__main__":

    imp()

执行结果;

F:\Python\3.7\python.exe E:/PythonProject/Scripts/vector.py

[[1.  2. ]

 [3.5 3. ]

 [6.  7. ]]

 

Process finished with exit code 0

相关标签: 机器学习

上一篇:

下一篇: