使用sklearn.datasets.load_files导入的数据集标签

时间:2019-04-10 16:54:01

标签: python scikit-learn

我想知道如何将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在这样的矩阵中代表什么)

最好

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中检索标签,以确保安全(实现可能会随时间变化等)