首页 文章

多输出回归

提问于
浏览
1

我一直在寻找多输出回归的最后几周 . 我正在使用scikit学习包 . 我的机器学习问题有3个功能的输入,需要预测两个输出变量 . sklearn包中的一些ML模型支持多输出回归 . 如果模型不支持此功能,则可以使用sklearn多输出回归算法对其进行转换 . multioutput类适合每个目标的一个回归量 .

  • mulioutput回归类或支持的多输出回归算法是否将输入变量的基础关系考虑在内?

  • 我应该使用神经网络而不是多输出回归算法吗?

1 回答

  • 1

    1)关于你的第一个问题,我将其分为两部分 .

    • 第一部分的答案写在你链接的文档中,也在user guide topic中,它明确指出:

    由于MultiOutputRegressor每个目标适合一个回归量,因此无法利用目标之间的相关性 .

    • 第一个问题的第二部分询问支持此问题的其他算法 . 为此,您可以查看用户指南中的"inherently multiclass"部分 . 本质上多类意味着它们不使用One-vs-Rest或One-vs-One策略来处理多类(OvO和OvR使用多个模型来适应多个类,因此可能不会使用它们之间的关系目标) . 本质上是多类意味着他们可以将多类设置构建为单个模型 . 这列出了以下内容:
    sklearn.naive_bayes.BernoulliNB
    sklearn.tree.DecisionTreeClassifier
    sklearn.tree.ExtraTreeClassifier
    sklearn.ensemble.ExtraTreesClassifier
    sklearn.naive_bayes.GaussianNB
    sklearn.neighbors.KNeighborsClassifier
    sklearn.semi_supervised.LabelPropagation
    sklearn.semi_supervised.LabelSpreading
    sklearn.discriminant_analysis.LinearDiscriminantAnalysis
    sklearn.svm.LinearSVC (setting multi_class=”crammer_singer”)
    sklearn.linear_model.LogisticRegression (setting multi_class=”multinomial”)
    ...
    ...
    ...
    

    尝试用'Regressor'替换'Classifier',并在那里查看 fit() 方法的文档 . 例如,让我们采取DecisionTreeRegressor.fit()

    y:类似数组,shape = [n_samples]或[n_samples,n_outputs]

    目标值(实数) .
    使用dtype = np.float64和order ='C'可以获得最大效率 .

    您看到它支持目标的二维数组( y ) . 因此它可以使用目标的相关性和潜在关系 .

    2)现在关于使用神经网络的第二个问题,它取决于个人偏好,问题类型,数据的数量和类型,以及您想要进行的训练迭代 . 也许您可以尝试多种算法,并选择能为您的数据和问题提供最佳输出的算法 .

相关问题