我想知道如何将SVN分类器生成的标签与数据集上的标签进行匹配。然后我意识到问题从一开始就开始了:when I load the dataset我得到了一个数据集,该数据集具有以下属性:
.data = the news text
.target_names = label used in the dataset e.g. ["positive", "negative"]
.target = A matrix with a number for each news with a label.
但是,我想知道不同数据集(具有相同标签但新闻不同)中target_names的顺序是否不同,以及.data元素的顺序是否会影响这一点。
有什么方法可以轻松知道.target矩阵中的数字标签吗? (我的意思是,0或1在这样的矩阵中代表什么)
最好
答案 0 :(得分:6)
i
中条目.target
的相应标签可用为.target_names[i]
。在您的示例中:.target_names[1]
是“负”。
在不同的数据集中,目标名称的顺序将相同,只要标签完全相同即可。这是因为sklearn.datasets.load_files()
根据排序后的文件夹名称创建标签,正如我们在source code(v.20.x)中看到的那样:
[...]
folders = [f for f in sorted(listdir(container_path))
if isdir(join(container_path, f))]
if categories is not None:
folders = [f for f in folders if f in categories]
for label, folder in enumerate(folders):
target_names.append(folder)
[...]
我仍然建议始终从当前数据集的target_names
中检索标签,以确保安全(实现可能会随时间变化等)