【问题标题】:Run all regressors against the data in scikit对 scikit 中的数据运行所有回归器
【发布时间】:2018-09-11 06:09:40
【问题描述】:

我正在创建一个框架,我可以在其中调用 scikit-learn 中可用的所有回归器。与此相关,我有两个问题-

  1. 如何以编程方式获取所有回归器的列表?
  2. 目标是针对数据集运行回归器并获取 RMSE、R-Sq、Adjusted R-Sq 等指标用于模型比较,然后应用超参数调整并重新运行。

我正在尝试在 Python 中复制此功能-

https://github.com/tobigithub/caret-machine-learning/blob/master/caret-regression/caret-all-regression-models.R

我确信这可以在 scikit 中完成。任何起点都将不胜感激。

提前致谢。

【问题讨论】:

标签: python machine-learning scikit-learn data-science


【解决方案1】:

我找不到列出 sklearn 中所有回归器的编程方式,我已经导入了所有回归器,然后循环遍历它们

from sklearn.ensemble.forest import RandomForestRegressor
from sklearn.ensemble.forest import ExtraTreesRegressor
from sklearn.ensemble.bagging import BaggingRegressor
from sklearn.ensemble.gradient_boosting import GradientBoostingRegressor
from sklearn.ensemble.weight_boosting import AdaBoostRegressor
from sklearn.gaussian_process.gpr import GaussianProcessRegressor
from  sklearn.isotonic import IsotonicRegression
from sklearn.linear_model.bayes import ARDRegression
from sklearn.linear_model.huber import HuberRegressor
from sklearn.linear_model.base import LinearRegression
from sklearn.linear_model.passive_aggressive import PassiveAggressiveRegressor 
from sklearn.linear_model.randomized_l1 import RandomizedLogisticRegression
from sklearn.linear_model.stochastic_gradient import SGDRegressor
from sklearn.linear_model.theil_sen import TheilSenRegressor
from sklearn.linear_model.ransac import RANSACRegressor
from sklearn.multioutput import MultiOutputRegressor
from sklearn.neighbors.regression import KNeighborsRegressor
from sklearn.neighbors.regression import RadiusNeighborsRegressor
from sklearn.neural_network.multilayer_perceptron import MLPRegressor
from sklearn.tree.tree import DecisionTreeRegressor
from sklearn.tree.tree import ExtraTreeRegressor
from sklearn.svm.classes import SVR
from sklearn.linear_model import BayesianRidge
from sklearn.cross_decomposition import CCA
from sklearn.linear_model import ElasticNet
from sklearn.linear_model import ElasticNetCV
from sklearn.kernel_ridge import KernelRidge
from sklearn.linear_model import Lars
from sklearn.linear_model import LarsCV
from sklearn.linear_model import Lasso
from sklearn.linear_model import LassoCV
from sklearn.linear_model import LassoLars
from sklearn.linear_model import LassoLarsIC
from sklearn.linear_model import LassoLarsCV
from sklearn.linear_model import MultiTaskElasticNet
from sklearn.linear_model import MultiTaskElasticNetCV
from sklearn.linear_model import MultiTaskLasso
from sklearn.linear_model import MultiTaskLassoCV
from sklearn.svm import NuSVR
from sklearn.linear_model import OrthogonalMatchingPursuit
from sklearn.linear_model import OrthogonalMatchingPursuitCV
from sklearn.cross_decomposition import PLSCanonical
from sklearn.cross_decomposition import PLSRegression
from sklearn.linear_model import Ridge
from sklearn.linear_model import RidgeCV
from sklearn.svm import LinearSVR

然后你可以遍历它们 准确度 = []

for i in range(len(Name)):
    regressor = globals()[Name[i]]

    Regressor = regressor(**param[i])
    Regressor.fit(X_train, y_train)
    y_pred = Regressor.predict(X_test)
    from sklearn.metrics import mean_squared_error
    import numpy as np
    Nans = np.isnan(y_pred)
    y_pred[Nans] = 0
    accuracy.append(np.sqrt(mean_squared_error(y_pred,y_test)))

您需要将回归变量的名称放入名称列表中,例如:

Name=[
'ExtraTreesRegressor',
'RandomForestRegressor']

【讨论】:

    猜你喜欢
    • 2019-05-14
    • 1970-01-01
    • 2013-03-07
    • 2016-07-24
    • 2021-05-28
    • 2018-12-26
    • 2019-09-16
    • 2019-05-12
    • 2014-10-09
    相关资源
    最近更新 更多