gpt4 book ai didi

python - 如何在 scikit-learn 中找到所有稀疏数据回归量?

转载 作者:行者123 更新时间:2023-11-30 09:05:14 25 4
gpt4 key购买 nike

您可以find all regressors在 scikit-learn 中:

from sklearn.utils.testing import all_estimators
regressors = all_estimators(type_filter='regressor')

但是,我的数据很稀疏,而且我发现其中许多不支持稀疏数据。我可以对所有这些进行强力评估并排除那些失败的,但是有没有一种更简单的方法可以提前判断哪些不支持稀疏性?

最佳答案

没有简单的方法可以做到这一点。您最好检查此问题中指定的 fit() 文档:

或者使用try catch block 来处理这个问题。

大多数估计器(回归器或分类器)将通过调用check_X_y来检查输入的有效性。具有适当的参数。我们感兴趣的参数是**'accept_sparse'**,默认情况下是False。因此,如果估计器在没有任何 'accept_sparse' 值的情况下调用此方法,则可以安全地假定不支持稀疏矩阵。

您可以使用以下代码来解决部分问题。

import inspect 
from sklearn.utils.testing import all_estimators
regressors = all_estimators(type_filter='regressor')

for regressor in regressors:
print(regressor[0], end=" - ")
ff = getattr(regressor[1], 'fit')
if 'accept_sparse' in inspect.getsource(ff):
print('Accepts Sparse')
else:
print("Does not")
  • 如果输出具有“接受稀疏”,那么您可以确定它可以处理稀疏数据。
  • 但是如果输出有“Does not”,那么这只意味着fit()的源代码:-

    • 不包含check_X_y:这并不意味着不支持稀疏数据。也许当前的估计器正在调用具有该检查的不同父类的 fit() 。一些最终具有 CV 的估计器是交叉验证器,它们再次将数据传递给基本估计器,因此可能不会执行检查。
    • 它可能不明确包含参数“accept_sparse”:源代码可能有类似 check_X_y(X, y, ['csr', 'csc', 'coo' ],...)。根据 accept_sparse 可能接受的值,可能不容易找到。

    所以在这种情况下,您可以使用 try-catch 来查找实际状态。

关于python - 如何在 scikit-learn 中找到所有稀疏数据回归量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53752194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com