ndarray‘ object has no attribute ‘fit‘"/>
AttributeError: ‘numpy.ndarray‘ object has no attribute ‘fit‘
AttributeError: ‘numpy.ndarray’ object has no attribute ‘fit’
源代码运行如下:
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScalernum_pipeline = Pipeline([('imputer',SimpleImputer(strategy="median")),('attribs_adder',CombinedAttributesAdder()),('std_scaler',StandardScaler)
])housing_num_tr = num_pipeline.fit_transform(housing_num)
以上代码实现的目的和过程为:
1.许多数据转换的步骤需要以正确的顺序来执行,pipeline支持这样的操作;
2.pipeline构造函数会通过一系列名称/估算器的配对来定义步骤的序列,必须是转换器,必须有fit_transform()方法;
3.调用流水线fit方法时,会在所有转换器上按照顺序依次调用fit_transform(),将一个调用输出作为参数传递给下一个调用方法,直到传递到最终;
4.估算器只会调用fit()方法。
运行结果:
AttributeError Traceback (most recent call last)
<ipython-input-277-2330a4b94434> in <module>13 ])14
---> 15 housing_num_tr = num_pipeline.fit_transform(housing_num)d:\python3.8.5\lib\site-packages\sklearn\pipeline.py in fit_transform(self, X, y, **fit_params)374 fit_params_last_step = fit_params_steps[self.steps[-1][0]]375 if hasattr(last_step, 'fit_transform'):
--> 376 return last_step.fit_transform(Xt, y, **fit_params_last_step)377 else:378 return last_step.fit(Xt, y,d:\python3.8.5\lib\site-packages\sklearn\base.py in fit_transform(self, X, y, **fit_params)688 if y is None:689 # fit method of arity 1 (unsupervised transformation)
--> 690 return self.fit(X, **fit_params).transform(X)691 else:692 # fit method of arity 2 (supervised transformation)AttributeError: 'numpy.ndarray' object has no attribute 'fit'
明显的错误提示:AttributeError: ‘numpy.ndarray’ object has no attribute ‘fit’
仔细检查后发现原来是,StandarScaler,没有调用,加上小括号后StandarScaler() 才会被调用,
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScalernum_pipeline = Pipeline([('imputer',SimpleImputer(strategy="median")),('attribs_adder',CombinedAttributesAdder()),('std_scaler',StandardScaler())
])housing_num_tr = num_pipeline.fit_transform(housing_num)
重新运行,OK。
心得体会:学习,练习代码的过程,是一个不断磨练心性的过程,足够的耐心去敲,足够细心去发现些微的差异。
更多推荐
AttributeError: ‘numpy.ndarray‘ object has no attribute ‘fit‘
发布评论