使用sklearn时,python中fit,transform和fit_transform有什么区别?

时间:2017-05-30 06:51:40

标签: python machine-learning scikit-learn

from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values='NaN', strategy='mean',axis=0)
imputer = imputer.fit(X[:, 1:3])
X[:, 1:3]=imputer.transform(X[:, 1:3]) 

你能帮我知道上面代码的作用吗?我对Imputer一无所知。请帮助!

4 个答案:

答案 0 :(得分:6)

令人困惑的部分适合和变换。

 #here fit method will calculate the required parameters (In this case mean)
 #and store it in the impute object
 imputer = imputer.fit(X[:, 1:3])
 X[:, 1:3]=imputer.transform(X[:, 1:3]) 
 #imputer.transform will actually do the work of replacement of nan with mean.
 #This can be done in one step using fit_transform

答案 1 :(得分:2)

Imputer用于替换缺失值。

# Imports library
from sklearn.preprocessing import Imputer

# Create a new instance of the Imputer object
# Missing values are replaced with NaN
# Missing values are replaced by the mean later on
# The axis determines whether you want to move column or row wise
imputer = Imputer(missing_values='NaN', strategy='mean',axis=0)

# Fit the imputer to X
imputer = imputer.fit(X[:, 1:3])

# Replace in the original matrix X
# with the new values after the transformation of X
X[:, 1:3]=imputer.transform(X[:, 1:3]) 

我为你注释了代码,我希望这会更有意义。您需要将X视为必须转换的矩阵,以便不再有NaN(缺少值)。

请参阅文档了解更多information

答案 2 :(得分:0)

您的评论告诉您与众不同。就是说,如果您不使用imputer.fit,则无法使用某些方法(例如均值或中位数)来替换nan。要应用此过程,您需要在imputer.fit之后使用imputer.transform,然后,您将获得一个没有nan值的新数据集。

答案 3 :(得分:0)

据我所知 从库中导入特定的类

Material(
        color: Colors.grey[300],
              child: ListTile(
                title: Text('Hello')
              )

    );

根据我们的个性化数据创建一个处理数据的类的对象

from sklearn.preprocessing import Imputer

将x应用于矩阵(如对数据应用函数)

例如,让运算符e应用于数据d imputer = Imputer(missing_values='NaN', strategy='mean',axis=0) 返回ed Imputer.fit

现在imputer = imputer.fit(X[:, 1:3])计算ed的值并将其分配给给定的矩阵

Imputer.transform