问题描述
我对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
对象。