【发布时间】:2017-10-23 20:45:30
【问题描述】:
我收到了一组测试数据,由 3 个人进行分类,无论是真还是假。我也获得了信心——例如,有时 2/3 同意一个方向。我怎样才能将它合并到我的分类器模型中。我研究了SGDClassifier,它具有class_weight 参数,SVM 也是如此。然后,我将迭代每个置信水平,并为每一行数据分配 3 或 2 的权重,具体取决于所有三个是否被分类为相同:
x=0
weights = {}
for d in confidence:
val = int(d[1])
if(val == 1):
weight = 3
else: # d=0.66
weight = 2
x = x+1
weights[x] = weight
不幸的是,在运行时:
SGDClassifier(class_weight=weights)
我得到错误:
类标签 2 不存在。
我做错了什么?
【问题讨论】:
-
confidence的格式是什么?另外,您是否检查过您的字典是否正确?字典中有多少个键?print weights.keys()?当您的class_weight字典没有至少两个权重(即只有一个权重)时,通常会发生该错误。 -
信心是
1.0或0.66 -
这并没有完全回答我的问题。
confidence是数字列表吗?您的代码目前无法重现您遇到的错误,主要是因为没有指定confidence是什么。 -
抱歉,我的笔记本电脑没电了!
weights.keys()=[1, 2, 3, 4, 5, 6, 7, 8, 9,...] -
您只需要样本权重进行训练。它只是告诉训练算法它应该信任每个数据点的程度。对于测试,您不需要它 - 分类器并不关心您对测试样本的信任程度。
标签: python machine-learning scikit-learn