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 上都正常运行了。
不知道你这个问题是否已经解决, 如果还没有解决的话: