fit()在这里到底做什么?

问题描述 投票:0回答:2

嗯,基本上,我想知道fit()函数通常会做什么,但是尤其是在那下面的代码中。

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

CODE1:

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)

我认为,如果我知道该功能的一般用法以及确切的用途,我会很好的。但是具体来说,我想知道该代码在做什么

python machine-learning scikit-learn data-fitting
2个回答
0
投票

Sklearn使用类。有关Python中类的更多信息,请参见Python documentation。有关特别是sklearn的更多信息,请查看此sklearn documentation

这里是您如何在sklearn中使用类的简短描述。

首先,您要使用sklearnsc_X = StandardScaler()实例化missingvalues = SimpleImputer(...)类。

sc_Xmissingvalues对象均具有方法。您可以使用键入object_name.method_name(...)的方法。例如,当您键入fit_transform()时,您使用了sc_X实例的sc_X.fit_transform(...)方法。此方法将获取您的数据并返回其缩放版本。它既fit s(确定缩放参数),又transform s(应用缩放)到您的数据。 transform()方法将使用与先前数据相同的缩放参数来转换新数据。

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

顺便说一句,我认为可以将missingvalues = missingvalues.fit(X[:, 1:3])更改为missingvalues.fit(X[:, 1:3])


0
投票

这里也是一种不错的检查方法:https://scikit-learn.org/stable/tutorial/basic/tutorial.html

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

您通常具有以下步骤:

  1. 将您的数据分成两个/三个数据集
  2. 选择数据的一部分来学习/训练X_train(通常为fit
  3. 使用您学到的算法,您可以预测一些东西以X_test看不到数据(通常是predict)>
  4. 在您的第一个示例中:missingvalues.fit(X[:, 1:3])您正在基于数据SimpleImputer来训练X,其中仅使用列1,2,3,通过转换,您使用了此训练来覆盖此数据。

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

© www.soinside.com 2019 - 2024. All rights reserved.