如何获取数据的要素名称?

问题描述

我对python环境中包含的虹膜数据集使用了以下说明

iris_data=load_iris()
feature_names = iris_data.feature_names 
k= tree.export_text(model.estimators_[i],feature_names)

我通过这种形状得到规则

"""\
|--- petal length (cm) <= 2.35
|   |--- class: 0.0
|--- petal length (cm) >  2.35
|   |--- petal width (cm) <= 1.65
|   |   |--- class: 1.0
|   |--- petal width (cm) >  1.65
|   |   |--- petal width (cm) <= 1.75
|   |   |   |--- sepal length (cm) <= 5.80
|   |   |   |   |--- class: 2.0"

但是当我尝试对外部数据集使用相同的指令时,出现此错误 AttributeError:'DataFrame'对象没有属性'feature_names'
当我尝试通过此指令获取功能名称

fnm = list(dataset.columns.values.tolist())
k= tree.export_text(model.estimators_[i],fnm)

并使用同一行到expert_text,我得到以下错误文件“ C:\ Anaconda3 \ lib \ site-packages \ sklearn \ tree_export.py”,第886行,位于export_textlen(feature_names))) ValueError:feature_names必须包含3个元素,得到53

解决方法

方法sklearn.datasets.load_iris返回具有sklearn.utils.Bunch属性的feature_names对象。

您的新数据集是具有columns属性的pandas.DataFrame对象。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...