有关StandardScaler的transform和fit_transform方法

有关StandardScaler的transform和fit_transform方法

背景:
StandardScaler类是一个用来讲数据进行归一化和标准化的类。
所谓归一化和标准化,即应用下列公式:
X=(x-\mu)/\sigma
使得新的X数据集方差为1,均值为0

问题一:
StandardScaler类中transform和fit_transform方法有什么区别?

答:fit_transform方法是fit和transform的结合,fit_transform(X_train) 意思是找出X_train的\mu\sigma,并应用在X_train上。
这时对于X_test,我们就可以直接使用transform方法。因为此时StandardScaler已经保存了X_train的
\mu\sigma

问题二:
为什么可以用训练集的\mu\sigma 来transform 测试集的数据X_test?

答:我们家大王说,“机器学习中有很多假设,这里假设了训练集的样本采样足够充分”。我觉得颇有道理。

最后再补充下几种归一化方法的区别:

作者:代码律动
链接:https://www.zhihu.com/question/60490799/answer/388715802
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Zero-mean normalization
公式:X=(x-\mu)/\sigma
这就是均值方差归一化,这样处理后的数据将符合标准正太分布,常用在一些通过距离得出相似度的聚类算法中,比如 K-means。

Min-max normalization
公式: X=(x-Xmin)/(Xmax-Xmin)
min-max 归一化的手段是一种线性的归一化方法,它的特点是不会对数据分布产生影响。不过如果你的数据的最大最小值不是稳定的话,你的结果可能因此变得不稳定。min-max 归一化在图像处理上非常常用,因为大部分的像素值范围是 [0, 255]。

Non-linear normaliztions
非线性的归一化函数包含 log,exp,arctan, sigmoid等等。用非线性归一化的函数取决于你的输入数据范围以及你期望的输出范围。比如 log() 函数在 [0, 1] 区间上有很强的区分度,arctan() 可以接收任意实数病转化到[-\pi/2,\pi/2]
区间,sigmoid 接收任意实数并映射到 (0, 1)。

Length-one normalization
公式: X=x/\Vert x \Vert
将特征转为单位向量的形式,可以剔除特征的强度的影响。这种处理用在不考虑向量大小而需要考虑向量方向的问题中,比如在一些文本情感的分类中,我们可能并不需要知道情感表达的强弱,而只要知道情感的类型,比如开心,生气等等。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值