这是我的问题的模型:
我从数据点列表
开始X = ['Apple','Peach','Orange','Dog','Elephant','Fox','Cat','Mango']
然后我得到了一个监督分类器的输出,它引导我学习如下课程:
Y = clf.predict(X) # 'FRUIT','FRUIT','FRUIT','ANIMAL','0','ANIMAL','ANIMAL','FRUIT'
即使在我的分类器没有FN的完美世界中,我也希望能够将我的课程分组到更高阶的课程
Z = cluster(Y) # 'LIST_OF_FRUITS','LIST_OF_ANIMALS','LIST_OF_FRUITS'
我正在努力寻找可以做这样的事情,有或没有带标签的例子,因为没有定义我不知道如何做到这一点有多大。
这也是我实际想要解决的问题的扩展,如果所需的分组包含几个不同类型的类别,而不仅仅是“FRUIT”的并发列表,而是经常说“晚餐”将是0+“MEATS”,0 +“VEG”等理想的解决方案将是一个知道非典型晚餐,可以推断/纠正假阴性并从分类数据中找到晚餐分组,即:
Y = ['MEAT','0','0','0','0','MEAT','0','VEG','MEAT'] -> ['DINNER'] (1 instance)
问题的一些单词编码应该可以工作,但是我不知道如何对分类器1的输出进行分区,这样分区就不会被强制为一定的大小
有什么我可以用的吗?
答案 0 :(得分:0)
听起来你只需要使用具有多个输出尺寸的分类器。这在低级别受支持,但您将无法使用许多便利功能。
例如,我有一个模型,它是一个Bag-Of-Words,可以同时输出4个向量 - 分类 - 用于Bag-Of-Words vecor列表(句子)。它们都是线性独立的输出。
另一种方法是为每个输出维度创建多个模型。
答案 1 :(得分:0)
我不会在这里看到聚类。
如果我理解正确,你想分区
[Fruit, Meat, Fruit]
分为两组
[Fruit, Fruit] and [Meat]
此时您可能会使用基数?然后只需使用字典进行计数。即将此汇总成
{ Fruit: 2, Meat: 1 }
此外,许多语言都有一些语法来迭代唯一值和子集运算符,以便您可以编写
for x in unique(classification):
subsets[x] = inputdata[classification == x]
无论哪种方式,都不要为此考虑群集。这里没有进行高级统计分析。它只是计算和选择?