多项式朴素贝叶斯(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]