python - 如何获取数据的特征名称?
问题描述
我对包含在 python 环境中的 iris 数据集使用了以下说明
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' object has no attribute '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
属性的对象。
您的新数据集是一个pandas.DataFrame
具有columns
属性的对象。
推荐阅读
- python - 如何将ajax添加到django网页
- node.js - 在 Node.js 中设置默认 defaultSession.cookie?
- statistics - 我们有一个装有 n 个球的瓮,编号从 1 到 n。恰好在 k-1 平局之后得到 k 号球的机会是多少?
- language-server-protocol - IDE和语言服务器之间可以做代理吗?
- angular - 删除角树中箭头后的边框
- html - 如何停止背景图像的滚动效果
- node.js - 对齐高图甜甜圈中的标签
- c# - Asp.Net Tag Helper type="date" 允许年份超过 4 位
- c# - 在其他项目 dll 中读取 Service Fabric 项目配置
- django - 如何验证登录