数据标准化

在机器学习中,对于用到距离的算法一般都需要对数据进行标准化。

一、标准化的目的

  • 去除数据量纲的影响
  • 提高模型的解释性
  • 加快模型的收敛速度

二、标准化的方法

常用的标准化的方法有两种:中心化和0-1标准化

1、中心化

计算方法:X减去均值再除以标准差

2、0-1标准化

计算方法:X减去最小值再除以最大值与最小值的差。

  

即:X_std=(X-X.min(axis=0)) / (X.max(axis=0)-X.min(axis=0))

三、sklearn中用到的模块

from sklearn.preprocessing import StandardScaler #中心化

from sklearn.preprocessing import MinMaxScaler #0-1标准化

四、使用方法

(1)scaler = StandardScaler()

         scaler.fit(train_data)

train_data = scaler.transform ( train_data )

(2)min_max_scaler = MinMaxScaler()

         min_max_scaler.fit(X_train)

X_train = min_max_scaler.transform ( X_train )

五、举例

# -*- coding: utf-8 -*-
"""
数据标准化
"""
import numpy as np
#创建一个二维数组
X_train = np.array([[1,-1,2],
                    [2,0,0],
                    [0,1,-1]])
X_train.max(axis=0)
X_train.min(axis=0)

from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler

#Z-score标准化,均值为0,方差为1.
scaler = StandardScaler() #实例化
scaler.fit(X_train)
X_scaler = scaler.transform(X_train)
X_scaler.mean(axis=0)
X_scaler.std(axis=0)
X_scaler.var(axis=0)

#0-1标准化
min_max_scaler = MinMaxScaler() #实例化
min_max_scaler.fit(X_train)
X_minmax = min_max_scaler.transform(X_train)

 

你可能感兴趣的:(机器学习算法)