TypeError: fit_transform() missing 1 required positional argument: ‘X‘——报错

1 解决过程【成功】

  • 源代码如下:

import pandas as pd
from sklearn.preprocessing import StandardScaler

# 1. 导入数据
def load_data() -> pd.DataFrame:
    data = pd.read_excel('data3.xlsx')
    print(data)
    data.columns = ['BillingDate', 'VolumnHL']  # 修改一下属性名
    print("======================")
    print(data)
    return data


# load_data()


# 2. 归一化(可以帮助模型更快拟合)
def max_min_normalization(data:pd.DataFrame) ->pd.DataFrame:
    # VolumnHL 是第二列属性
    volume = data.VolumnHL.values  # 单取出第二列,组成一个向量
    print("===max_min_normalizetion===================")
    print(volume)
    volume1 = volume.reshape(-1, 1)  # 改变volumn的形状,现在volume是一个一行多列的向量,改成多行一列的向量
    volume2 = volume.reshape(len(volume), 1)  # 与上一行的效果一样
    # print(volume1)
    # print(volume2)
    volume = StandardScaler.fit_transform(volume2)
    print(volume)


data = load_data()
max_min_normalization(data)
  • 输出的报错信息:
    在这里插入图片描述
  • 解决:就是少了一个括号!!
    在这里插入图片描述
  • 当然,在很多代码中,还有很多教程喜欢这样去写:
scaler = StandardScaler()
x_train = scaler.fit_transform(x_train)
  • 总而言之就是StanderScaler后面的()千万不要忘记!否则报错之后很难排查出来!

2 学习Sklearn之数据预处理——StandardScaler

2.1 数据处理——标准化、归一化

  • 数据标准化和归一化,都属于数据特征无量纲的一种方式。
    【“无量纲”——将不同规格的数据转换都统一规格,或不同分布的数据转换到某个特定分布的需求】

  • 特别是对于需要计算梯度和矩阵的模型(例如逻辑回归中通过梯度下降求解损失函数),无量纲化之后的数据特征对于模型求解有加速作用!

  • 在k近邻、聚类算法中,需要计算距离时,使用无量纲化可以提升模型精度,避免异常值对整体计算造成的影响。

  • 中心化处理:让所有记录减去一个固定值,即让数据样本平移到某个位置;

  • 缩放处理:通过除以某一个固定值,将数据固定在某个范围之内!

2.2 为什么要归一化?

  1. 归一化后加快了梯度下降求最优解的速度;
    如果机器学习模型使用梯度下降Q法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。
  2. 归一化有可能提高精度;
    一些分类器需要计算样本之间的距离(如欧氏距离Q),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(此如这时实际情况是值域范围小的特征更重要)。

2.3 归一化的适用范围

  • 概率模型(树型模型)不需要做归一化

2.4 归一化公式

在这里插入图片描述

  • Normalization和Min-Max Scaling都是数据归一化:数据x按照最小值中心化之后,再按极差(最大值-最小值)进行缩放,最终会被收敛到[0,1]之间!

2.5 标准化公式

在这里插入图片描述

  • 标准化:数据x按照均值中心化之后,再按标准差缩放,数据就会服从均值为0,方差为1的标准正态分布,这个过程就叫做数据标准化。

如果本篇文章对你有帮助的话,麻烦收藏+点赞+关注我哦!

3 标准化和归一化区别?

  1. 首先明确,标准化和归一化都不会改变数据的分布。
  2. 归一化会严格限制数据变化后的范围,默认是[0,1]
  3. 标准化则没有严格的区间,变化之后的数据没有范围,只是数据整体的均值为0,标准差为1

4 数据处理时的选择

  • 在大多数机器学习算法中,因为归一化MinMaxScaler对异常值敏感,所以都会选择标准化StandardScaler进行特征缩放,例如聚类、逻辑回归、支持向量机、PCA算法等等。
  • 如果在缩放时,不涉及距离、梯度等的计算,并且对数据的范围有严格要求,就可以使用归一化进行缩放。
  • 7
    点赞
  • 7
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:精致技术 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

谜底是你_

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值