- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
sklearn提供了transform()
方法来应用one-hot编码器。
要使用transform()
方法,在调用transform()
方法之前需要fit_transform()
,否则
np.array([[1, 1], [2, 1], [3, 2], [np.nan, 2]])
from sklearn.impute import SimpleImputer
my_imputer = SimpleImputer()
my_imputer.transform(df)
出现错误
NotFittedError: This SimpleImputer instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.
在transform()
之前调用fit_transform()
my_imputer.fit_transform(df)
my_imputer.transform(df)
修复此错误。
问题是,为什么transform()
需要fit_transform()
?
最佳答案
在 fit()
期间,输入器了解数据的平均值、中位数等,然后在 transform()
期间将其应用于缺失值。
fit_transform()
只是组合这两种方法的简写。所以本质上是:
fit(X, y)
:- 了解所提供数据的所需方面,并返回具有学习参数的新对象。它不会以任何方式更改提供的数据。
transform()
:- 实际上将提供的数据转换为新形式。
fit_transform(df)
不需要在转换之前调用。只需要调用fit()
。一般来说,您描述的序列是通过数据的训练和测试分割来完成的。像这样的东西:
# Combining the learning of parameters from training data and transforming into a single step.
X_train_new = my_imputer.fit_transform(X_train)
# We dont want to learn about test data, only change it according to previously learnt information
X_test_new = my_imputer.transform(X_test)
上面的代码片段可以分解为:
# It learns about the data and does nothing else
my_imputer.fit(X_train)
# Calling transform to apply the learnt information on supplied data
X_train_new = my_imputer.transform(X_train)
X_test_new = my_imputer.transform(X_test)
关于python - sklearn.impute SimpleImputer : why does transform() need fit_transform() first?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56036248/
我正在使用 scikit 库迈出第一步,发现自己仅需要回填数据框中的一些列。 我仔细阅读了 documentation但我仍然不知道如何实现这一目标。 为了更具体,假设我有: A = [[7,2,3]
我有一个 Pandas 数据框,它在特定列中有一些 NaN 值: 1291 NaN 1841 NaN 2049 NaN Name: some column, dtype: float64
我尝试: from sklearn.preprocessing import SimpleImputer imp = SimpleImputer() imputed = pd.DataFrame()
我正在关注 Aurelion Geron 的机器学习书籍。 我正在试验 ColumnTransformer 类。当我包含 SimplerImputer 时,会创建一个额外的列。我知道 SimplerI
我面临着创建管道来估算 (SI) 类别变量(例如颜色)然后 onehotencode (OHE) 2 个变量(例如颜色和星期几)的挑战。颜色用于 2 个步骤。 我想将 SI 和 OHE 放在 1 个
我无法理解流水线在 Sklearn 中的工作方式。以下是使用 titanic 数据集的示例。 data = pd.read_csv('datasets/train.csv') cat_attribs
我正在使用 PyCaret 并收到错误消息。 AttributeError: 'SimpleImputer' object has no attribute '_validate_data' 尝试创建
我使用 sklearn 来估算一些包含 NaN 值的时间序列。目前,我使用以下内容: from sklearn.preprocessing import Imputer imp = Imputer(m
在 python 的 sklearn 库中有两个类,它们做的事情大致相同:sklearn.preprocessing.Imputer 和 sklearn.impute.SimpleImputer 我发
我有一只 Pandas DataFrame包括一列文本,我想矢量化文本 使用 scikit-learn 的 CountVectorizer .但是,文本包含缺失值,因此我想 在矢量化之前输入一个常数值
sklearn提供了transform()方法来应用one-hot编码器。 要使用transform()方法,在调用transform()方法之前需要fit_transform(),否则 np.arr
在下面的笔记本中,使用 SimpleImputer 插入缺失值后,数据帧被转换为 numpy 数组,如何确保它的类型保持为数据帧本身? import pandas as pd df1 = pd.rea
我是一名优秀的程序员,十分优秀!