目录

一、基础理论

1、定义

2、特征数据的无量纲化

3、归一化、标准化分析

归一化

标准化       

二、归一化

1、归一化基本原理

过程:

 1、读取待处理数据

2、创建归一化转换器

3、归一化处理(调用fit_transform)

代码

三、标准化

1、标准化基本原理

2、API

过程:

1、读取待处理数据

2、创建标准化转换器

3、标准化处理

代码

总代码


一、基础理论

1、定义

特征预处理:通过一些转换函数,将特征数据转换成更加适合计算的算法模型

2、特征数据的无量纲化

归一化、标准化

3、归一化、标准化分析

归一化

        归一化要用到最大值、最小值对数据处理,那如果最大、最小值出了问题,归一化结果很容易受到影响。 (鲁棒性(健壮性)较差)

标准化       

        标准化要用到均值、标准差对数据处理,有较强的鲁棒性(健壮性)

缺点显而易见,所以,标准化更常用。(标准化更适合嘈杂的大数据场景

二、归一化

1、归一化基本原理

对原始数据进行变换,把数据映射到(0,1)之间。

 (max、min分别为某一特征最大、最小值)(默认值:mx为1,mi为0)

过程:

 1、读取待处理数据

读取数据:

# 1、读取待归一化的数据
    data = pd.read_csv('dating.txt')
    print(data)

保留待归一化的数据(忽略掉不需要归一化的部分):

# 保留需要归一化的数据(前三列)
    data = data.iloc[:, :3]
    print(data)

2、创建归一化转换器

# 2、创建归一化转换器
    transfer = MinMaxScaler()

3、归一化处理(调用fit_transform)

# 3、归一化处理(调用fit_transform)
    new_data = transfer.fit_transform(data)
    print(new_data)

归一化缺陷:由于本身是根据最大、最小值求出来的,那如果最大、最小值出了问题,归一化结果很容易受到影响。 (鲁棒性较差)

代码

# 归一化处理
def Normalize():
    # 1、读取待归一化的数据
    data = pd.read_csv('dating.txt')
    # print(data)
    # 保留需要归一化的数据(前三列)
    data = data.iloc[:, :3]
    print(data)

    # 2、创建归一化转换器
    transfer = MinMaxScaler()

    # 3、归一化处理(调用fit_transform)
    new_data = transfer.fit_transform(data)
    print(new_data)

三、标准化

1、标准化基本原理

定义:

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

公式: 

(即:result = (x-均值)/标准差

标准化优势:

便于处理异常点。(少量异常点对均值和标准差影响不大)

 

2、API

sklearn.preprocessing.StandardScaler

 

过程:

1、读取待处理数据

和上面一样 

# 1、读取待归一化的数据
    data = pd.read_csv('dating.txt')
    # print(data)
    # 保留需要标准化的数据(前三列)
    data = data.iloc[:, :3]
    print(data)

2、创建标准化转换器

# 2、创建标准化转换器
    transfer = StandardScaler()

3、标准化处理

# 3、标准化处理(调用fit_transform)
    new_data = transfer.fit_transform(data)
    print(new_data)

代码

# 标准化处理
def Standardize():
    # 1、读取待归一化的数据
    data = pd.read_csv('dating.txt')
    # print(data)
    # 保留需要标准化的数据(前三列)
    data = data.iloc[:, :3]
    print(data)

    # 2、创建标准化转换器
    transfer = StandardScaler()

    # 3、标准化处理(调用fit_transform)
    new_data = transfer.fit_transform(data)
    print(new_data)

总代码

# 数据预处理 -- 归一化和标准化
from sklearn.feature_extraction.text import CountVectorizer
import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler

# 数据集
data = ['我虽然是一只小菜鸡', '目前比较菜', '但是在不断干饭', '努力成为战斗鸡']


# 归一化处理
def Normalize():
    # 1、读取待归一化的数据
    data = pd.read_csv('dating.txt')
    # print(data)
    # 保留需要归一化的数据(前三列)
    data = data.iloc[:, :3]
    print(data)

    # 2、创建归一化转换器
    transfer = MinMaxScaler()

    # 3、归一化处理(调用fit_transform)
    new_data = transfer.fit_transform(data)
    print(new_data)


# 标准化处理
def Standardize():
    # 1、读取待归一化的数据
    data = pd.read_csv('dating.txt')
    # print(data)
    # 保留需要标准化的数据(前三列)
    data = data.iloc[:, :3]
    print(data)

    # 2、创建标准化转换器
    transfer = StandardScaler()

    # 3、标准化处理(调用fit_transform)
    new_data = transfer.fit_transform(data)
    print(new_data)


if __name__ == '__main__':
    # 归一化处理
    # Normalize()
    # 标准化处理
    Standardize()

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐