我已经获得了一组测试数据,这些测试数据被3个人分类是真是假。我也有信心 - 例如,有时2/3同意一个方向。如何将其合并到我的分类器模型中。我查看过具有class_weight
参数的SGDClassifier,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不存在。
我做错了什么?
答案 0 :(得分:1)
数据点的置信度应表示为sample_weight
而不是class_weight
。
某些分类器的.fit
方法采用sample_weight
参数。
有example in the scikit-learn documentation显示如何使用支持向量分类器执行此操作。相关摘录:
# fit the model
clf_weights = svm.SVC()
clf_weights.fit(X, y, sample_weight=sample_weight_last_ten)