sklearn类方法的参数

2024-09-28 01:28:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个小问题。因此,在浏览了大量sklearn的文档之后,我注意到许多sklearn预处理类(如标准scaler)都有一个.transform方法,它接受X值并对其进行缩放。但是,为了确保可以在管道中执行此操作,该方法还确保y值也作为输入(尽管在需要时忽略)

问题1:这些方法的文档如下所示:

拟合_变换(self,X[,y])

为什么括号中的y前面有一个逗号。是否表示该值不需要作为输入

问题2:如果我对问题1的想法是正确的,SelectKBest的fit_transform文档如下所示:

拟合变换(self,X[,y])

在这种情况下,如果没有y值作为目标,无法选择K个特征,y如何成为可选输入


Tags: 方法文档self目标标准管道情况transform
1条回答
网友
1楼 · 发布于 2024-09-28 01:28:32

如果您检查文档的explanation,请执行以下操作:

def fit_transform(self, X, y=None, **fit_params):
        """
        Fit to data, then transform it.
        Fits transformer to X and y with optional parameters fit_params
        and returns a transformed version of X.
        Parameters
             
        X : {array-like, sparse matrix, dataframe} of shape \
                (n_samples, n_features)
        y : ndarray of shape (n_samples,), default=None
            Target values.
        **fit_params : dict
            Additional fit parameters.
        Returns
           -
        X_new : ndarray array of shape (n_samples, n_features_new)
            Transformed array.
        """
        # non-optimized default implementation; override when a better
        # method is possible for a given clustering algorithm
        if y is None:
            # fit method of arity 1 (unsupervised transformation)
            return self.fit(X, **fit_params).transform(X)
        else:
            # fit method of arity 2 (supervised transformation)
            return self.fit(X, y, **fit_params).transform(X)

1和2的答案在最后几行:if y is none,因此它基本上用于无监督的转换,例如,如果在没有目标值y的情况下运行“k-means”

相关问题 更多 >

    热门问题