朴素贝叶斯
sklearn中根据特取值的不同,对应3种不同的朴素贝叶斯算法,分别是GaussianNB,MultinomialNB和BernoulliNB。其中GaussianNB就是特征服从高斯分布的朴素贝叶斯,MultinomialNB就是特征服从多项式分布的朴素贝叶斯,而BernoulliNB就是特征服从伯努利分布的朴素贝叶斯。
from sklearn.naive_bayes import GaussianNB,MultinomialNB,BernoulliNB
1.GaussianNB
样本特征大部分是连续值时使用较好。几乎不用调参
参数:
①priors:Y的各个类别的先验概率$$P(Y=C_k)$$,默认不给出时,按照$$P(Y=C_k)=m_k/m$$计算。给出时,按所给值计算。
方法:
①predict:常用的预测方法,输出预测类别。后两种算法也有该功能。
②predict_proba:给出在各个类别上预测的概率。后两种算法也有该功能。
③partial_fit:在训练集数据量非常大,一次不能全部载入内存的时候,可以把训练集分成若干等分,重复调用partial_fit来一步步的学习训练集。后两种算法也有该功能。
2.MultinomialNB
样本特征大部分是多元的离散值时使用较好。
参数:
①alpha:平滑时的参数,一般使用默认的1,当拟合不好时,可以调优,选稍小于或稍大于1的数。
②fit_prior:是否考虑先验概率,为False,则所有类别有相同的先验概率;为True时,考虑class_prior的值。
③class_prior:如果不输入,则从训练集计算先验概率$$P(Y=C_k)=m_k/m$$
3.BernoulliNB
样本特征是二元离散值或者很稀疏的多元离散值。
参数:
BernoulliNB一共有4个参数,其中3个参数的名字和意义和MultinomialNB完全相同。唯一增加的一个参数是binarize。如果不输入,则BernoulliNB认为每个数据特征都已经是二元的。否则的话,小于binarize的会归为一类,大于binarize的会归为另外一类。