Standardscaler标准化

# coding=utf-8
# 统计训练集的 mean 和 std 信息
from sklearn.preprocessing import StandardScaler
import numpy as np
 
 
def test_algorithm():
#定义test_algorithm()函数,该函数用来比较使用Sklearn库中 的 标准化方法和使用numpy库中的标准化方法的差异。
    np.random.seed(123)
#使用随机数种子初始化 NumPy 库的随机数生成器,以便多次运行程序时生成相同的数据:#`np.random.seed(123)`
    print('use sklearn')
# 输出使用 scikit-learn 库进行标准化的结果的标题:
    # 注:shape of data: [n_samples, n_features]
    data = np.random.randn(10, 4)#10行4列的二维数据作为原始数据
    scaler = StandardScaler()#scaler做标准化,做均值和方差
#创建一个 StandardScaler 类的实例,将其赋值给变量 scaler:
    scaler.fit(data)#scaler是标准化器,训练
#使用 fit() 方法计算原始数据的均值和标准差
    trans_data = scaler.transform(data)
#并使用 transform() 方法对原始数据进行标准化:
    print('original data: ')#
    print data
    print('transformed data: ')
    print trans_data
#输出原始数据和标准化后的数据:
    print('scaler info: scaler.mean_: {}, scaler.var_: {}'.format(scaler.mean_, scaler.var_))
#输出 StandardScaler 类的对象的均值和方差:
    print('\n')
#输出一个空行:`print('\n')`
    print('use numpy by self')
# 输出使用 NumPy 库进行标准化的结果的标题:
    mean = np.mean(data, axis=0)
    std = np.std(data, axis=0)
#使用 mean() 和 std() 方法计算原始数据的均值和标准差,将其分别赋值给变量 mean 和 std
    var = std * std
#将标准差的平方分别赋值给变量 var
    print('mean: {}, std: {}, var: {}'.format(mean, std, var))
#
    # numpy 的广播功能
    another_trans_data = data - mean
#使用广播功能将原始数据减去均值得到另一个矩阵 
    # 注:是除以标准差
    another_trans_data = another_trans_data / std
#将矩阵 another_trans_data 的每个元素除以标准差得到标准化后的数据
    print('another_trans_data: ')
    print another_trans_data
#. 如果运行的文件名是本文件,则运行 test_algorithm() 函数:`if __name__ == '__main__':`,`test_algorithm()`
 
 
if __name__ == '__main__':
    test_algorithm()

学习链接:(43条消息) Sklearn之数据预处理——StandardScaler_龙王.*?的博客-CSDN博客

你可能感兴趣的:(python,numpy,机器学习)