【问题标题】:What does fit() exactly does here?fit() 到底在这里做什么?
【发布时间】:2019-10-18 17:13:04
【问题描述】:

嗯,基本上我想知道 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)

我认为,如果我知道此功能的一般用途以及一般的具体用途,我会很高兴。但我当然想知道该代码在做什么

【问题讨论】:

标签: python machine-learning scikit-learn data-fitting


【解决方案1】:

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

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

您通常有以下步骤:

  1. 将您的数据分成两个/三个数据集
  2. 用fit选择一部分数据来学习/训练一些东西(通常是X_train)
  3. 使用学习算法预测看不见的数据(通常是X_test)和predict

在您的第一个示例中:missingvalues.fit(X[:, 1:3]) 您正在训练SimpleImputer,基于您的数据X,而您只使用列1,2,3,您使用此训练覆盖此数据的转换。

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

【讨论】:

  • 谢谢你!真的很酷。顺便说一句,如果您对像我这样的 ML 新手有任何很酷的资源,我将不胜感激。无论如何,非常感谢你
【解决方案2】:

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

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

首先你用sc_X = StandardScaler() 或missingvalues = SimpleImputer(...) 实例化你的sklearn 类。

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

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

顺便说一句,我觉得missingvalues = missingvalues.fit(X[:, 1:3])可以改成missingvalues.fit(X[:, 1:3])。

【讨论】:

  • 这确实帮助我理解了到底发生了什么,谢谢伙计;)
猜你喜欢
  • 2020-12-23
  • 2012-03-07
  • 2018-04-19
  • 2014-12-01
  • 1970-01-01
  • 2011-01-28
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多