sklearn学习笔记5:朴素贝叶斯

sklearn为我们提供了四个朴素贝叶斯的分类器

  • naive_bayes.BernoulliNB:伯努利分布下的朴素贝叶斯
  • naive_bayes.GaussianNB:高斯分布下的朴素贝叶斯
  • naive_bayes.MultinomialNB:多项式分布下的朴素贝叶斯
  • naive_bayes.ComplementNB:补集朴素贝叶斯

1.高斯朴素贝叶斯GaussianNB

  • 这个类包含两个参数
  • prior:可输入任何类数组结构,表示类的先验概率。如果指定,则不根据数据调整先验,如果不指定,则自行根据数据计算先验概率P(Y)
  • var_smoothing:浮点数,可不填。在估计方差时,为了追求估计的稳定性,将所有特征的方差中最大的方差以某个比例添加到估计的方差中,这个比例,由var_smoothing参数控制
  • 因为过于简单也意味着贝叶斯没有太多的参数可以调整,因此贝叶斯算法的成长空间并不大,如果贝叶斯算法的效果不是很理想,我们一般会考虑换模型

2.概率类模型的评估指标

布里尔分数Brier Score

  • 范围是从0到1,分数越高则预测结果越差劲,校准程度越差,因此布里尔分数越接近0越好

对数似然函数Log Loss

  • 由于是损失,因此对数似然函数的取值越小,则证明概率估计越准确,模型越理想,值得注意的是,对数损失只能用于评估分类型模型

那什么时候用对数似然,什么时候使用布里尔分数?

  • 优先使用对数似然:要对比多个模型,或者衡量模型的不同变化
  • 优先使用布里尔分数:衡量单一模型的表现

可靠性曲线Reliability Curve

  • 这是一条以预测概率为横坐标,真实标签为纵坐标的曲线。我们希望预测概率和真实值越接近越好,最好两者相等,因此一个模型/算法的概率校准曲线越靠近对角线越好
  • 通常来说,曲线用于二分类的情况最多

预测概率的直方图

  • 以样本的预测概率分箱后的结果为横坐标,每个箱中的样本数量为纵坐标的一个图像,这里的分箱是将预测概率均匀分为一个个区间

校准可靠性曲线

CalibratedClassifierCV:没有接口decision_function,要查看这个类下校准过后的模型生成的概率,必须调用predict_proba接口

  • base_estimator:需要校准其输出决策功能的分类器,必须存在predict_proba或decision_function接口。如果参数cv=prefit,分类器必须已经拟合数据完毕
  • cv:整数,确定交叉验证的策略
  • method:进行概率校准的方法,可输入sigmoid或isotonic

3.多项式朴素贝叶斯

  • alpha:浮点数,可不填。如果设置为0表示完全没有平滑选项。但是需要注意的是,平滑相当于认为给概率加上一些噪音,因此α设置得越大,多项式朴素贝叶斯的精确性会越低(虽然影响不是非常大),布里尔分数也会逐渐升高
  • fit_prior:布尔值,可不填。如果设置为False,则不使用先验概率,而使用统一先验概率
  • class_prior:形似数组的结构,可不填。如果没有给出具体的先验概率则自动根据数据来进行计算

4.伯努利朴素贝叶斯

  • 伯努利朴素贝叶斯与多项式朴素贝叶斯非常相似,都常用于处理文本分类数据。但由于伯努利朴素贝叶斯是处理二项分布,所以它更在意的是“存在与否”,而不是“出现多少次”这样的次数或频率
  • 在文本分类的情况下,伯努利朴素贝叶斯可以使用单词出现向量来训练分类器,文档较短的数据集上,伯努利朴素贝叶斯效果会更好,如果时间允许,两种模型建议都试试看

5.补集朴素贝叶斯

  • 补集朴素贝叶斯是标准多项式朴素贝叶斯算法的改进,比普通多项式朴素贝叶斯更稳定,并且它特别适合于样本不平衡的数据集

你可能感兴趣的:(sklearn,sklearn,学习)