机器学习之朴树贝叶斯②——调库实现

文章目录

    • 多项式朴素贝叶斯(MultinomialNB)
    • 高斯朴素贝叶斯(GaussianNB)

多项式朴素贝叶斯(MultinomialNB)

sklearn.naive_bayes.MultinomialNB(alpha = 1.0,fit_prior = True,class_prior = None )
参数:

  • alpha : float,optional(默认值= 1.0)
    添加剂(拉普拉斯/ Lidstone)平滑参数(0表示无平滑)。
  • fit_prior : boolean,optional(default = True)
    是否学习班级先验概率。如果为假,则使用统一的先验。
  • class_prior : 类似数组,大小(n_classes,),可选(默认=无)
    类的先验概率。如果指定,则不根据数据调整先验。

属性:

  • class_log_prior_ : 数组,形状(n_classes,)
    每个类的平滑经验对数概率。
  • intercept_ : array,shape(n_classes,)
    class_log_prior_用于将MultinomialNB解释为线性模型的镜子。
  • feature_log_prob_ : 数组,形状(n_classes,n_features)
    给出一个类的特征的经验对数概率,P(x_i|y)。
  • coef_ : 数组,形状(n_classes,n_features)
    feature_log_prob_用于将MultinomialNB解释为线性模型的镜子。
  • class_count_ : 数组,形状(n_classes,)
    在装配期间每个类遇到的样本数。提供时,该值由样品重量加权。
  • feature_count_ : 数组,形状(n_classes,n_features)
    拟合期间每个(类,特征)遇到的样本数。提供时,该值由样品重量加权。

方法:

  • fit(self, X, y[, sample_weight])------------ 根据X,y拟合朴素贝叶斯分类器
  • get_params(self[, deep]) --------------------获取此估算工具的参数。
  • partial_fit(self, X, y[, classes, sample_weight]) 增量拟合一批样品。
  • predict(self, X) ----------------------------------对测试向量X的阵列执行分类。
  • predict_log_proba(self,X) -------------返回测试向量X的对数概率估计值。
  • predict_proba(self,X) --------------------测试向量X的返回概率估计。
  • score(self,X,y [,sample_weight])—返回给定测试数据和标签的平均精度。
  • set_params(self,\ * \ * params) ----------设置此估算器的参数。

代码实现

#朴素贝叶斯实现形式
import pandas as pd
from sklearn.naive_bayes import MultinomialNB

df = pd.DataFrame([[0,1],[1,1],[2,1],[3,-1],[4,-1],
                   [5,-1],[6,1],[7,1],[8,1],[9,-1]])
# 得到X,Y
X = df[[0]]
Y = df[1]

model = MultinomialNB()
model.fit(X,Y)

print(Y.values.T)
print(model.predict(X))

效果展示

[ 1  1  1 -1 -1 -1  1  1  1 -1]
[1 1 1 1 1 1 1 1 1 1]

高斯朴素贝叶斯(GaussianNB)

sklearn.naive_bayes.GaussianNB(priors = None,var_smoothing = 1e-09 )
参数:

  • priors : array-like, shape (n_classes,)
    类的先验概率。如果指定,则不根据数据调整先验。
  • var_smoothing : float,optional(default = 1e-9)
    所有要素的最大方差的部分,添加到计算稳定性的方差中。

属性:

  • class_prior_ : array,shape(n_classes,)
    每个班级的概率。
  • class_count_ : array,shape(n_classes,)
    每个班级观察到的训练样本数量。
  • theta_ : array,shape(n_classes,n_features)
    每个班级每个特征的平均值
  • sigma_ :array,shape(n_classes,n_features)
    每个类的每个特征的方差
  • epsilon_ : float
    方差的绝对附加值

方法:

  • fit(self,X,y [,sample_weight]) ----------------根据X,y拟合高斯朴素贝叶斯
  • get_params(self[, deep]) --------------------------------获取此估算工具的参数。
  • partial_fit(self,X,y [,classes,sample_weight]) 增量拟合一批样品。
  • predict(self,X) ----------------------------------------对测试向量X的阵列执行分类。
  • predict_log_proba(self,X) ------------------------返回测试向量X的对数概率估计值。
  • predict_proba(self,X) -------------------------------测试向量X的返回概率估计。
  • score(self,X,y [,sample_weight]) -------------返回给定测试数据和标签的平均精度。
  • set_params(self,\ * \ * params)--------------------设置此估算器的参数

代码实现

#朴素贝叶斯实现形式
import pandas as pd
from sklearn.naive_bayes import MultinomialNB,GaussianNB

df = pd.DataFrame([[0,1],[1,1],[2,1],[3,-1],[4,-1],
                   [5,-1],[6,1],[7,1],[8,1],[9,-1]])
# 得到X,Y
X = df[[0]]
Y = df[1]

model = GaussianNB()
model.fit(X,Y)

print(Y.values.T)
print(model.predict(X))

效果展示

[ 1  1  1 -1 -1 -1  1  1  1 -1]
[ 1  1  1  1  1  1 -1 -1 -1  1]

你可能感兴趣的:(机器学习,朴素贝叶斯,MultinomialNB,GaussianNB)