【发布时间】:2018-04-19 01:57:31
【问题描述】:
到目前为止,我已经为 another post 和 sklearn documentation 提供了资源
所以总的来说,我想生成以下示例:
X = np.matrix([[1,2],[2,3],[3,4],[4,5]])
y = np.array(['A', 'B', 'B', 'C', 'D'])
Xt = np.matrix([[11,22],[22,33],[33,44],[44,55]])
model = model.fit(X, y)
pred = model.predict(Xt)
但是对于输出,我希望看到每个观察 3 列作为来自 pred 的输出:
A | B | C
.5 | .2 | .3
.25 | .25 | .5
...
我的预测中出现的每个类别都有不同的概率。
我相信最好的方法是我上面提供的第二个链接中的Multilabel classification。此外,我认为跳入下面列出的multi-label 或multi-output 模型之一可能是个好主意:
Support multilabel:
sklearn.tree.DecisionTreeClassifier
sklearn.tree.ExtraTreeClassifier
sklearn.ensemble.ExtraTreesClassifier
sklearn.neighbors.KNeighborsClassifier
sklearn.neural_network.MLPClassifier
sklearn.neighbors.RadiusNeighborsClassifier
sklearn.ensemble.RandomForestClassifier
sklearn.linear_model.RidgeClassifierCV
Support multiclass-multioutput:
sklearn.tree.DecisionTreeClassifier
sklearn.tree.ExtraTreeClassifier
sklearn.ensemble.ExtraTreesClassifier
sklearn.neighbors.KNeighborsClassifier
sklearn.neighbors.RadiusNeighborsClassifier
sklearn.ensemble.RandomForestClassifier
但是,我正在寻找有更多信心和经验以正确方式做这件事的人。感谢所有反馈。
-bmc
【问题讨论】:
-
你能澄清一下你到底想要什么作为答案吗?基本上 multilable 是关于将 >= 0 个标签从预定义的标签集中附加到输入示例。它可能没有标签、一个标签或一堆标签。至于多类案例的概率输出 - 大多数情况下,您可以使用 predict_proba 函数为各种分类器获取它。
-
"但是对于输出,我希望看到每个观察 3 列作为 pred 的输出:A | B | C .5 | .2 | .3 .25 | .25 | .5 .. ." 是我要排除的输出。 predict_proba 是否返回每个可能标签的概率?
-
是的,它基本上是 sklearn 尝试为每个多类分类器实现的功能。但是,对于某些算法(例如 svm,它自然不会提供概率估计),您需要首先向分类器传递一条指令,让其在训练期间估计类概率。例如,对于 svm,它是 svc(probability = True)。然后 predict_proba 会给你每个类的概率。
标签: machine-learning probability multilabel-classification predictive