我想知道是否有可能在scikit-learn中为Naive Bayes分类器定义一个损失函数。例如,我们假设我们对垃圾邮件与火腿分类感兴趣。在这种情况下,这种损失函数对于降低假阳性率(即将火腿分类为垃圾邮件,比将垃圾邮件分类为火腿更糟糕)更有用。
为简单起见,我有一个使用高斯here的随机数据的例子。
答案 0 :(得分:1)
朴素贝叶斯的损失函数总是负的联合对数似然,-log p ( X , Y )。在朴素贝叶斯假设的特征独立性下,这种损失函数的选择使得朴素贝叶斯快速:最大似然训练可以通过执行一个矩阵乘法和一些总和来完成。我能想到的所有其他损失函数都会带你进入迭代优化领域。
关于您的实际问题:您可以尝试使用scoring='precision'
GridSearchCV
或基于sklearn.metric.fbeta_score
或roc_auc_score
的自定义评分函数调整学习者参数。不过,我不确定天真的贝叶斯会不会有这么多,所以你可能想转向逻辑回归。