2014-10-28 69 views
0

我的样本可以属于0类或1类,但对于我的一些样本,我只有一个概率可用于他们属于第1类。到目前为止,我已通过应用阈值将我的目标变量离散化,即所有y> = t我被分配到类1,并且我放弃了所有属于类1的具有非零概率的样本。然后,我使用scitkit-learn将一个线性SVM拟合到数据中。如何预测表示目标类别概率的连续因变量?

因此我通过了相当多的训练数据。我的一个想法是省略离散化并使用回归来代替,但通常不是通过回归进行分类的好主意,例如它不能保证预测值位于区间[0,1]中。

顺便说一下,我的特征x的性质与其中一些类似,我也只有相应特征出现的概率。对于这个错误,如果我用与离散化因变量相同的方式对我的特征进行离散化,那么它并没有太大的区别。

回答

0

您可能可以使用样本加权近似这一点 - 将样本分配给具有最高概率的类别,但是根据样本实际归属的概率将样本加权。许多scikit-learn估算器允许这样做。

实施例:

X = [1,2,3,4] - >类0的概率为0.7将成为X = [1,2,3,4] Y = [0]与样品重量.7。您也可以进行归一化处理,以便样本权重介于0和1之间(因为您的概率和样本权重只会在此方案中从0.5到1)。您还可以纳入非线性惩罚来“强化”高概率样本的影响。

+2

我总是复制训练集,然后使用概率作为正样本权重和(1-概率)作为样本权重的负数。 – 2014-10-28 20:28:10

+0

这有多接近用概率而不是硬0/1目标写交叉熵函数? (我现在没有一张纸写出来,但会尽快尝试) – eickenberg 2014-10-28 21:46:15

+1

@larsmans如果我不是完全幻觉,复制训练集,将第一个副本的目标变量设置为1第二个副本为-1,然后按照您指示的方式对样本进行加权,可以精确地优化两个目标和软分配的交叉熵。 – eickenberg 2014-10-29 12:40:04