sklearn | fit()、transform()、fit_transform() 三者联系与区别

  • fit()是一个方法(method),与估计器(estimator)结合,需要一个数据集作为参数,用来训练estimator,如estimator.fit()。任何其它用来指导估计过程的参数都被当做超参数,并且是通过估计器的参数设置,将超参数设置成实例变量。
  • transform()是一个方法,用于estimator.fit()之后,返回的是经过转换的数据集。
from sklearn.impute import SimpleImputer

# 设置strategy,之后调用fit()时,统计每一列数据的中位值
imputer = SimpleImputer(strategy='median')

# 喂给estimator将要使用的数据集,并通过设置strategy,来让统计数据集中每一列数据的中位数
imputer.fit(dataset)

# 估计器经过fit()学习到的参数可以通过实例变量名(imputer)后加下划线来访问
# 它返回数据集中每一列数据的中位数
imputer.statistics_
array([-118.51  ,   34.26  ,   29.    , 2119.5   ,  433.    , 1164.    ,    408.    ,    3.5409])
# 用获得的每一列的中位数来替换该列的残缺值,返回的是经过处理的数据集,形式为NumPy的array形式
imputed_data = imputer.transform(dataset)

imputer的具体作用,可参考(数据预处理 | 处理残缺值(Missing value)python-sklearn实现| 三种常用方法)[https://blog.csdn.net/SanyHo/article/details/105303547]

  • fit_transform() 是上述两种方法的结合,有时候该方法的运行会更快些
from sklearn.impute import  SimpleImputer

imputer = SimpleImputer(strategy = "median")

# 返回的是经过处理的数据集,形式为NumPy的array形式
imputed_data = imputer.fit_transform()

参考资料:
《Hands-on Machine Learning with Scikit-Learn and TensorFlow》

你可能感兴趣的:(数据挖掘)