fit() 在这里究竟做了什么?

What does fit() exactly does here?

嗯,基本上我想知道 fit() 函数的一般作用,尤其是下面的代码片段。

我参加了机器学习 A-Z 课程,因为我对机器学习还很陌生(我刚刚开始)。我知道一些基本的概念术语,但不知道技术部分。

代码 1:

from sklearn.impute import SimpleImputer

missingvalues = SimpleImputer(missing_values = np.nan, strategy = 'mean', verbose = 0) 

missingvalues = missingvalues.fit(X[:, 1:3])

X[:, 1:3] = missingvalues.transform(X[:, 1:3])

还有一些我还有疑问的例子

代码 2:

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
print(sc_X)
X_train = sc_X.fit_transform(X_train)
print(X_train)
X_test = sc_X.transform(X_test)

我想如果我知道这个函数的一般用途以及一般的具体用途,我就可以开始了。但我当然想知道该代码在做什么

Sklearn 使用 类。参见 Python documentation for more info about Classes in Python. For more info about sklearn in particular, take a look at this sklearn documentation.

以下是您如何在 sklearn 中使用 类 的简短说明。

首先你用 sc_X = StandardScaler()missingvalues = SimpleImputer(...).

实例化你的 sklearn

对象 sc_Xmissingvalues 每个都有方法。您可以使用键入 object_name.method_name(...) 的方法。例如,当您键入 sc_X.fit_transform(...) 时,您使用了 sc_X 实例的 fit_transform() 方法。此方法将获取您的数据和 return 它的缩放版本。它同时 fits(确定缩放参数)和 transforms(应用缩放)到您的数据。 transform() 方法将转换新数据,使用它为您以前的数据学习的相同缩放参数。

在第一个示例中,您将 fittransform 方法分成了两行,但想法是相似的——您首先使用 [=21= 学习插补参数] 方法,然后转换数据。

对了,我觉得missingvalues = missingvalues.fit(X[:, 1:3])可以改成missingvalues.fit(X[:, 1:3])

这也是一个很好的检查可能性:https://scikit-learn.org/stable/tutorial/basic/tutorial.html

fit-方法总是在机器学习中学习一些东西。

您通常有以下步骤:

  1. 将您的数据分成 two/three 个数据集
  2. fit
  3. 选择你的一部分数据到learn/train一些东西(通常是X_train
  4. 使用学习到的算法预测未知数据(通常 X_testpredict

在你的第一个例子中:missingvalues.fit(X[:, 1:3]) 您正在根据您的数据 X 训练 SimpleImputer,其中您仅使用列 1,2,3,通过转换,您使用此训练覆盖此数据。

在您的第二个示例中:您正在使用 X_train 训练 StandardScaler 并且正在对两个数据集 X_train, X_test 使用此训练,StandardScaler 从 X_train 中学习,这意味着如果他了解到 10 必须转换为 2,他将在两个集合中将 10 转换为 2 X_train, X_test