fit_transform
和transform
的区别如图:
数据首先fit
训练数据,然后model从训练数据得到必要的变换信息,如特征方差和期望等,并保存为模型的参数,transform
根据参数,对训练数据做需要的变换。之后用在测试集上也不用在fit一次测试集,直接transform
数据,等于训练集和测试集所做的变换是一样的。
例子:
from sklearn.preprocessing import StandardScaler
data = [[0, 0], [0, 0], [1, 1], [1, 1]]
scaler = StandardScaler()
print(scaler.fit(data))
print(scaler.mean_)
print(scaler.transform(data))
print(scaler.transform([[2, 2]]))
>>>
StandardScaler(copy=True, with_mean=True, with_std=True)
[0.5 0.5]
[[-1. -1.]
[-1. -1.]
[ 1. 1.]
[ 1. 1.]]
[[3. 3.]]
或者直接fit_transform
做变换:
from sklearn.preprocessing import StandardScaler
data = [[0, 0], [0, 0], [1, 1], [1, 1]]
scaler = StandardScaler()
print(scaler.fit_transform(data))
>>>
[[-1. -1.]
[-1. -1.]
[ 1. 1.]
[ 1. 1.]]
参考:fit_transform
和transform
的区别
https://www.cnblogs.com/keye/p/8875128.html
sklearn-preprocessing
待补
请参考: https://blog.csdn.net/sinat_33761963/article/details/53433799