函数功能解释
fit()
根据训练集数据学习得到数据集的特征,比如均值、中位数、标准差等等
transform()
将fit()学到数据集特征,应用到数据集,比如学习到数据集平均数为6,应用到填充数据中的缺失值
fit_transform() = fit()+transform()
即将从数据集中学到的特征(均值、中位数、标准差)应用到数据集中
举例
此处以使用均值填充缺失值举例
>>> import numpy as np
>>> from sklearn.impute import SimpleImputer
# 学习方法(策略)
>>> imp_mean = SimpleImputer(missing_values=np.nan, strategy='median')
# 学习方法(策略)从下面数据集中进行学习
[[ 7. 2. 3.]
[ 4. nan 6.]
[10. 5. 9.]]
>>> imp_mean_fit = imp_mean.fit([[7, 2, 3], [4, np.nan, 6], [10, 5, 9]])
# 学习方法(策略)从实际数据中进行学习,学习到的第1/2/3列中位数 分别是7.0,3.5,6.0
>>> imp_mean_fit.statistics_
array([7. , 3.5, 6. ])
# 将学习到的结果(第1/2/3列中位数 分别是7.0,3.5,6.0)应用到数据集X,原来的np.nan分别被中位数替换
>>> X = [[np.nan, 2, 3], [4, np.nan, 6], [10, np.nan, 9]]
>>> print(imp_mean_fit.transform(X))
[[ 7. 2. 3. ]
[ 4. 3.5 6. ]
[10. 3.5 9. ]]
应用
fit()+transform() 以及 fit_transform()只能应用在训练集,一般不能对测试集进行使用,测试集合一般用transfrom(),即只能将训练集提取到特征应用到训练集及测试集。原因是如果fit_transfrom(trainData)后,使用fit_transform(testData)而不transform(testData),虽然也能归一化,但是两个结果不是在同一个“标准”下的,具有明显差异。