嗯,基本上,我想知道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)
我认为,如果我知道该功能的一般用法以及确切的用途,我会很好的。但是具体来说,我想知道该代码在做什么
Sklearn使用类。有关Python中类的更多信息,请参见Python documentation。有关特别是sklearn
的更多信息,请查看此sklearn documentation。
这里是您如何在sklearn
中使用类的简短描述。
首先,您要使用sklearn
或sc_X = StandardScaler()
实例化missingvalues = SimpleImputer(...)
类。
sc_X
和missingvalues
对象均具有方法。您可以使用键入object_name.method_name(...)
的方法。例如,当您键入fit_transform()
时,您使用了sc_X
实例的sc_X.fit_transform(...)
方法。此方法将获取您的数据并返回其缩放版本。它既fit
s(确定缩放参数),又transform
s(应用缩放)到您的数据。 transform()
方法将使用与先前数据相同的缩放参数来转换新数据。
[在第一个示例中,您将fit
和transform
方法分成了两行,但是想法很相似-您首先使用fit
方法学习插补参数,然后转换数据。
顺便说一句,我认为可以将missingvalues = missingvalues.fit(X[:, 1:3])
更改为missingvalues.fit(X[:, 1:3])
。
这里也是一种不错的检查方法:https://scikit-learn.org/stable/tutorial/basic/tutorial.html
fit
方法总是在机器学习中学习一些东西。
您通常具有以下步骤:
X_train
(通常为fit
)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,他将在两组X_train, X_test
中将10转换为2。