额外的树分类器缺少参数 y

Posted

技术标签:

【中文标题】额外的树分类器缺少参数 y【英文标题】:Extra tree classifier missing argument y 【发布时间】:2020-06-10 23:56:12 【问题描述】:

所以我试图实现额外的树分类器,以便在我的数据库中找到参数的重要性,我编写了这个简单的代码,但由于某种原因,我不断收到这个错误。

我的代码:

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

%matplotlib inline


from sklearn.ensemble import ExtraTreesClassifier 



df = pd.read_csv('C:\\Users\\ali97\\Desktop\\Project\\Database\\5-FINAL2\\Final After Simple Filtering.csv')

extra_tree_forest = ExtraTreesClassifier(n_estimators = 5,  criterion ='entropy', max_features = 2) 

extra_tree_forest.fit(df)

feature_importance = extra_tree_forest.feature_importances_ 

feature_importance_normalized = np.std([tree.feature_importances_ for tree in extra_tree_forest.estimators_], axis = 1)

plt.bar(X.columns, feature_importance_normalized) 
plt.xlabel('Lbale') 
plt.ylabel('Feature Importance') 
plt.title('Parameters Importance') 
plt.show() 

错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-7-4aad8882ce6d> in <module>
     16 extra_tree_forest = ExtraTreesClassifier(n_estimators = 5,  criterion ='entropy', max_features = 2)
     17 
---> 18 extra_tree_forest.fit(df)
     19 
     20 feature_importance = extra_tree_forest.feature_importances_

TypeError: fit() missing 1 required positional argument: 'y'


谢谢

【问题讨论】:

【参考方案1】:

通常,对于拟合函数,我们需要同时拥有属性(X)和标签(Y),并且您需要使用extra_tree_forest.fit(X, Y) 来训练这个分类器。 我建议您在导入时拆分标签和属性并将它们作为两个单独的列表导入 Final After Simple Filtering.csv.

【讨论】:

所以我不能一次将它应用于整个数据帧而不是拆分数据库? 您可以在这里执行类似的操作(例如,如果您有 10 列 X,其余为标签): X = data.iloc[:, 0:10] Y= data.iloc[ :, 10:-1] 您不能一次对整个数据应用拟合函数。 我尝试了 iloc,我得到了“ValueError: at least one array or dtype is required” 标签 (Y) 列中可能有空格。请查看 CSV 文件并删除该列中的所有空格。

以上是关于额外的树分类器缺少参数 y的主要内容,如果未能解决你的问题,请参考以下文章

如何在GridSearchCV中使用最佳参数作为分类器的参数?

如何在 Swift 中使用 VisualRecognition 分类器

具有所有自变量作为分类的随机森林回归器

『cs231n』限制性分类器损失函数和最优化

在 CalibratedClassifierCV 内使用管道分类器

python缺少1个必需的位置参数[重复]