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

gal*_*007 5 python scikit-learn

我想知道如何将SVN分类器产生的标签与数据集上的标签进行匹配。然后我意识到问题从一开始就开始了:加载数据集时,我得到了一个具有以下属性的数据集:

.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.
Run Code Online (Sandbox Code Playgroud)

但是我想知道不同数据集(具有相同标签但新闻不同)中target_names的顺序是否不同,以及.data元素的顺序是否会影响这一点。

有什么方法可以轻松知道.target矩阵中的数字标签吗?(我的意思是,0或1在这样的矩阵中代表什么)

最好,

rvf*_*rvf 6

一个条目对应的标签i.target可作为.target_names[i]。在您的示例中:.target_names[1]为“负”。

只要标签完全相同,目标名称在不同数据集中的顺序将相同。这是因为sklearn.datasets.load_files()如我们在源代码(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)
[...]
Run Code Online (Sandbox Code Playgroud)

我仍然建议始终从target_names当前数据集中检索标签,以确保安全(实现可能会随时间变化等)。