为了账号安全,请及时绑定邮箱和手机立即绑定

sklearn:你需要为每组数据创建一个新的转换器实例吗?

sklearn:你需要为每组数据创建一个新的转换器实例吗?

鸿蒙传说 2023-05-09 09:51:23
我是数据科学和 scikit-learn 的新手,所以如果这是一个基本问题,我深表歉意。当我们想在新数据集上训练时,是否需要创建 sklearn 类的新实例?例如,我目前正在做:transformer = PowerTransformer()transformed1 = transformer.fit_transform(data1.to_numpy())transformer = PowerTransformer()transformed2 = transformer.fit_transform(data2.to_numpy()) ...我要转换多组数据以便运行KNNImputer(再次使用这种重复声明方法)。我读到该.fit方法在内部存储它用于适应传入数据的 lambda,但是存储的 lambda 是否会在每次调用时被覆盖,.fit或者它们是否会受到适合新数据的影响?这样做是错误的吗:transformer = PowerTransformer()transformed1 = transformer.fit_transform(data1.to_numpy())transformed2 = transformer.fit_transform(data2.to_numpy())...先感谢您!
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

不,那不会错,在这两种情况下,您首先要适应数据而不是转换数据。每次使用 fit 时,它都会覆盖现有的。这是一个例子:


a = np.array([[1, 3], 

              [np.nan, 2], 

              [5, 9]])


c = np.array([[3, 4], 

              [6, 12], 

              [8, np.nan]])


imp = SimpleImputer(strategy="mean")

a1 = imp.fit_transform(a)

c1 = imp.fit_transform(c)

现在让我们看看输出:


a1: array([[1., 3.],

           [3., 2.],

           [5., 9.]])


c1: array([[ 3.,  4.],

           [ 6., 12.],

           [ 8.,  8.]])

取两列的平均值(如 sklearn doc. 所说)并估算平均值。这在 KNNImputer 中也应该同样有效。


查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信