Mat*_*ser 6 python regression machine-learning scikit-learn
最近几周,我一直在研究多输出回归。我正在使用scikit学习包。我的机器学习问题的输入为3,需要预测两个输出变量。sklearn软件包中的某些ML模型可以自然地支持多输出回归。如果模型不支持此功能,则可以使用sklearn多输出回归算法进行转换。多输出类适合每个目标一个回归器。
1)对于你的第一个问题,我将其分为两部分。
第一部分的答案写在您链接的文档和本用户指南主题中,其中明确指出:
由于 MultiOutputRegressor 为每个目标拟合一个回归量,因此无法利用目标之间的相关性。
第一个问题的第二部分询问支持这一点的其他算法。为此,您可以查看用户指南中的“固有多类”部分。固有的多类意味着他们不使用 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”)
...
...
...
Run Code Online (Sandbox Code Playgroud)
尝试将末尾的“分类器”替换为“回归器”并查看fit()那里的方法文档。例如,让我们以DecisionTreeRegressor.fit()为例:
Run Code Online (Sandbox Code Playgroud)y : array-like, shape = [n_samples] or [n_samples, n_outputs] The target values (real numbers). Use dtype=np.float64 and order='C' for maximum efficiency.
您会看到它支持目标 ( y)的二维数组。因此它可能能够使用目标的相关性和潜在关系。
2)现在关于是否使用神经网络的第二个问题,这取决于个人喜好,问题的类型,您拥有的数据量和类型,您想要进行的训练迭代。也许您可以尝试多种算法并选择为您的数据和问题提供最佳输出的算法。
| 归档时间: |
|
| 查看次数: |
5211 次 |
| 最近记录: |