AttributeError: ‘numpy.ndarray‘ object has no attribute ‘fit‘

编程入门 行业动态 更新时间:2024-10-27 16:32:56

AttributeError: ‘numpy.<a href=https://www.elefans.com/category/jswz/34/1749800.html style=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‘

本文发布于:2024-02-12 12:19:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1687775.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:ndarray   numpy   AttributeError   fit   attribute

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!