scikit-learn - Scikit Learn 中是否有与 caret 的 getmodelinfo() 函数等效的函数?

标签 scikit-learn r-caret

我正在尝试使用 Scikit Learn 中的所有算法以及每个算法的元数据创建一个数据框。在 R 的 Caret 中,有一个名为 getmodelinfo() 的函数可以执行此操作。

Scikit Learn 中有同等功能吗?

最佳答案

您可以使用 sklearn.utilsinspect 获得最接近您想要的结果。例如,您可以获得所有 sklearn 类的列表或只是分类器,例如:

from sklearn.utils.testing import all_estimators
all_est = all_estimators(type_filter=None)
all_classifiers = all_estimators(type_filter="classifier")

然后在inspect的帮助下,您可以检索分类器.fit方法的参数,例如:

import inspect
all_classifiers_fit_args = {}
for name, clf in all_classifiers:
    all_classifiers_fit_args[name] = inspect.signature(clf.fit)

最后你可以将信息放入pandas df中:

df = pd.DataFrame(all_classifiers_fit_args.items(), columns=["fit_classifier", "args"])
df
    fit_classifier  args
0   AdaBoostClassifier  (self, X, y, sample_weight=None)
1   BaggingClassifier   (self, X, y, sample_weight=None)
2   BernoulliNB (self, X, y, sample_weight=None)
3   CalibratedClassifierCV  (self, X, y, sample_weight=None)
4   CategoricalNB   (self, X, y, sample_weight=None)
5   CheckingClassifier  (self, X, y, **fit_params)
6   ClassifierChain (self, X, Y)
7   ComplementNB    (self, X, y, sample_weight=None)
8   DecisionTreeClassifier  (self, X, y, sample_weight=None, check_input=T...
...

或者,您可以访问分类器本身的参数:

for name, clf in all_classifiers:
    all_classifiers_args[name] = inspect.signature(clf)
df = pd.DataFrame(all_classifiers_args.items(), columns=["classifier", "args"])
df
    classifier  args
0   AdaBoostClassifier  (base_estimator=None, n_estimators=50, learnin...
1   BaggingClassifier   (base_estimator=None, n_estimators=10, max_sam...
2   BernoulliNB (alpha=1.0, binarize=0.0, fit_prior=True, clas...
3   CalibratedClassifierCV  (base_estimator=None, method='sigmoid', cv=None)
4   CategoricalNB   (alpha=1.0, fit_prior=True, class_prior=None)
5   CheckingClassifier  (check_y=None, check_X=None, foo_param=0, expe...
6   ClassifierChain (base_estimator, order=None, cv=None, random_s...
7   ComplementNB    (alpha=1.0, fit_prior=True, class_prior=None, ...
8   DecisionTreeClassifier  (criterion='gini', splitter='best', max_depth=...
...

关于scikit-learn - Scikit Learn 中是否有与 caret 的 getmodelinfo() 函数等效的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60531004/

相关文章:

python - sklearn如何根据特征选择来选择分类特征

scikit-learn - 在 GridSearchCV 中使用精度作为评分时如何指定正标签

R - 具有估计标准误差的线性回归的 k 折交叉验证

r - 插入符号中的 AUPRC 和 PRROC 之间的区别

Caret 中每次交叉验证的训练集和测试集的 ROC 曲线

python - 为什么我的 scikit learn 的plot_learning_curve 在 google VM 上运行得不快?

python - scikit-learn 中的多标签分类与超参数搜索 : specifying averaging

python-3.x - 如何绘制 scikit 的 t-sne 输出数组?

r - 使用 terra::predict 和 caret::train ranger 模型生成物种分布的预测栅格

r - 在 `r` 的 `caret` 包中训练测试拆分