【发布时间】:2018-10-25 15:14:32
【问题描述】:
如果我有一个二元分类问题,我想使用 sklearn 或 matlab 构建模型。标签文件是否应该包含 0 和 1 或者它可以包含类的名称,例如“R”(下雨)和“S”(晴天)?我应该将其转换为 0 和 1 吗?
【问题讨论】:
-
我不确定这个问题在这里是否合适,至少目前的形式是这样。不过,要以评论的形式回答它,这取决于。一些包允许您将标签作为字符串输入并“在内部”进行某种类型的转换,但最常见的是您将标签转换为某种二进制大小写(即 {0,1}),例如在 sklearn 中,您' 最好将标签转换为二进制数字大小写。
-
我都试过了,它没有改变,但正如你所说,我认为最好转换为 0 和 1
-
@atomsmasher,我不同意转换会更好。 Scikit-learn 会自动处理(转换)它们。如果您有字符串,只需将它们作为字符串传递。不要做任何事。它应该(也不会)改变结果。
-
@Vivek:你认为多分类在没有标签编码的情况下也能得到相同的结果吗?
-
正如我所说,scikit 本身会在内部进行编码,所以你不需要。它适用于所有二进制和多类。在任何其他情况下,scikit 都会给出适当的错误,所以不用担心训练错误。
标签: python matlab machine-learning scikit-learn classification