具有预定义权重的随机梯度下降分类器

时间:2017-05-23 18:36:20

标签: python machine-learning scikit-learn

我已经获得了一组测试数据,这些测试数据被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不存在。

我做错了什么?

1 个答案:

答案 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)