zoukankan      html  css  js  c++  java
  • 【数据分析&数据挖掘】三种数据标准化方式——离差标准化、标准差标准化&小数定标标准化

     1 import pandas as pd
     2 import numpy as np
     3 
     4 
     5 # 标准化----去除量级的影响
     6 
     7 # 3种方式
     8 # (1)离差标准化
     9 # 将数据做线性变化,将数据映射到【0,1】范围内,
    10 # x = (x - min) / (max - min)
    11 # 过大或者过小的异常值都会对结果产生影响
    12 # 容易受到异常值影响
    13 def max_min_sca(data):
    14     """
    15     借助离差标准化 来标准化数据
    16     :param data: 原数据
    17     :return: 标准化之后的数据
    18     """
    19     data = (data - data.min()) / (data.max() - data.min())
    20 
    21     return data
    22 
    23 
    24 # (2)标准差标准化
    25 # 借助 均值与标准差 对数据进行转换
    26 # x = (x- mean) / std
    27 def stand_sca(data):
    28     """
    29     标准差标准化
    30     :param data:原数据
    31     :return: 标准差之后的数据
    32     """
    33     data = (data - data.mean()) / data.std()
    34 
    35     return data
    36 
    37 
    38 # 10000个【10,20】  10000----均值影响不大,标准差影响不大
    39 # 不容易受到异常值影响
    40 
    41 
    42 # (3)小数定标标准化
    43 # 通过移动小数位数来把数据转化到【-1,1】之间---数据分布规律不变
    44 # x = x /10^k
    45 # k ----->   向上取整(log10(|x|.max()))
    46 def desc_sca(data):
    47     """
    48     小数定标标准化数据
    49     :param data: 原数据
    50     :return: 标准化之后的数据
    51     """
    52     data = data / (10 ** int(np.ceil(np.log10(data.abs().max()))))
    53     return  data
    54 
    55 
    56 
    57 # 验证:
    58 detail = pd.read_excel("./meal_order_detail.xlsx")
    59 
    60 print("detail 的列索引:
    ", detail.columns)
    61 # print("detail 的形状:
    ", detail.shape)
    62 print("未标准化之前:
    ", detail.loc[:, "amounts"])
    63 print("最大值与最小值:
    ", detail.loc[:, "amounts"].max(), detail.loc[:, "amounts"].min())
    64 print("标准化之后
    ", max_min_sca(detail.loc[:, "amounts"]))
    65 print("标准化之后
    ", stand_sca(detail.loc[:, "amounts"]))
    66 print("标准化之后
    ", desc_sca(detail.loc[:, "amounts"]))
  • 相关阅读:
    多线程单例模式之立即加载(饿汉模式)
    多线程单例模式之延迟加载(懒汉模式)
    java多线程之ThreadLocal
    java多线程的字符流与字节流
    java多线程生产者消费者
    深入理解多线程三
    深入理解多线程二
    深入java多线程一
    mybatis学习三
    mybatis学习二
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12116093.html
Copyright © 2011-2022 走看看