spyder里不能将数据集直接导入转换器类吗

spyder里不能将数据集直接导入转换器类吗

from sklearn.datasets import load_iris
iris = load_iris()

#%%
from sklearn.preprocessing import StandardScaler  # 引入归一化功能
transfer = StandardScaler()  # 实例化一个转化器
data01 = transfer.fit_transform(iris.feature)  # 将数据进行归一化处理

提示如下:

Traceback (most recent call last):
  File "D:\APP\pypy\lib\site-packages\sklearn\utils\__init__.py", line 117, in __getattr__
    return self[key]
KeyError: 'feature'

During handling of the above exception, another exception occurred:
Traceback (most recent call last):

  File "C:\Users\87224\Desktop\Python-ELM-master\未命名1.py", line 14, in 
    data01 = transfer.fit_transform(iris.feature)  # 将数据进行归一化处理

  File "D:\APP\pypy\lib\site-packages\sklearn\utils\__init__.py", line 119, in __getattr__
    raise AttributeError(key)

AttributeError: feature

为什么在pycharm上可以直接使用这个转换器类

在使用转换器类时,需要将数据集传递给转换器类的fit_transform()方法。根据你提供的代码,可能是因为在使用iris数据集的特征时出现了错误。在iris数据集中,特征存储在iris.data中,而不是iris.feature。

因此,下面的代码应该可以解决问题:

from sklearn.datasets import load_iris
iris = load_iris()
 
from sklearn.preprocessing import StandardScaler
transfer = StandardScaler()
data01 = transfer.fit_transform(iris.data)

load_iris() 函数返回一个包含 iris 数据集的对象,它有四个属性: data,target,target_names 和 DESCR。因此,在使用 StandardScaler() 转换器对数据进行归一化处理时,您需要将 iris.data 作为输入,而不是 iris.feature。在 PyCharm 上可以使用 iris.feature 可能是因为您的环境中存在一个名为 feature 的变量,从而导致程序意外地使用了它而没有抛出异常。

因此,建议使用以下代码进行数据归一化:

data01 = transfer.fit_transform(iris.data)

这样就可以在 Spyder 和 PyCharm 上都正常运行了。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^