目录
通俗解释
归一化(Normalization)
为什么只对训练集做fit_transform,对测试集只做transform?
最近刚接触机器学习,在kaggle的教程上跟着学习了下,对这几个知识点正好不太熟悉,查完一系列文章后做个简单的总结。
通俗解释
fit(): Method calculates the parameters μ and σ and saves them as internal objects.
解释:简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。
transform(): Method using these calculated parameters apply the transformation to a particular dataset.
解释:在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。作用是通过找中心和缩放等实现标准化
fit_transform(): joins the fit() and transform() method for transformation of dataset.
解释:fit_transform是fit和transform的组合,既包括了训练又包含了转换。对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化、归一化等等。
transform()和fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化等)
归一化(Normalization)
对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内,使其具有可比性。
为什么需要对数值型的特征做归一化(standarlisation)?_dbf666的博客-CSDN博客
为什么只对训练集做fit_transform,对测试集只做transform?
机器学习假设:训练集和测试集的每个样本都是从同一分布中抽样得到的,所以在训练集中fit之后在测试集就不能再fit了,要不然二者可能不是同一分布模型,预测效果会很糟糕。