CDA网校:数据科学、人工智能从业者的在线大学。
数据科学(Python/R/Julia)数据分析、机器学习、深度学习
GaussianNB是高斯贝叶斯分类器,它假设特征的条件分布概率满足高斯分布,其原型为:
class sklearn.naive_bayes.GaussianNB
GaussianNB没有参数,所以不需要调参。
属性说明:
class_prior_:一个数组,形状为n_class,是每个类别的概率P(y=Ck)。
class_count_: 一个数组,形状也为n_class,是每个类别包含的训练样本的数量
theta_:一个数组,形状为(n_class,n_features),是每个类别上每个特征的均值。
sigma: 一个数组,形状为(n_class,n_features),是每个类别上每个特征的标准差。
方法说明:
fit(x, y[,sample_weight):训练模型。
partial_fit(x,y[, classes,sample_weight):` 追加训练模型。该方法主要用于大规模数据集的训练。这个时候可以将大数据集划分成若干个小数据集,然后在这些小数据集上连续调用partial_fit方法来训练模型。
predict(x):用模型进行预测,返回预测值
predict_log_proba(x):返回一个数组,数组的元素依次是x预测为各个类别的概率的对数值。
predict_proba(x):返回一个数值,数组元素依次是x预测为各个类别的概率值。
score(x, y[,sample_weight]):返回测试性能得分(测试分数不超过1,但是可能为负数(当预测效果太差的时候),score值越接近1,说明预测效果越好)。
示例说明:
- from sklearn import cross_validation, naive_bayes
- import numpy as np
- import matplotlib.pyplot as plt
- from sklearn.datasets import load_digits
- def show_digits:
- digits = load_digits
- fig = plt.figure
- print("vector from images 0:", digits.data[0])
- for i in range(25):
- ax = fig.add_subplot(5, 5, i+1)
- ax.imshow(digits.images[i], cmap=plt.cm.gray_r, interpolation='nearest')
- plt.show
- show_digits
运行上述代码后,其结果为:
digits_dataset运行结果
下面我们看看给出加载数据集函数和高斯分类器的函数代码:
- def load_digits_data:
- #使用鸢尾花数据集
- digits = load_digits
- #返回一个元组,元组依次是:训练样本集、测试样本集、训练样本集对应的标签值、测试样本对应的标签值
- #这里采用分层采样,保证了测试样本集中各类别样本的比例与原样本中各类别的比例相同。
- #如果不采用分层采样,那么最后切分的测试集数据就不是无偏的了
- return cross_validation.train_test_split(digits.data, digits.target, test_size=0.3,
- random_state=0)
- def test_GaussianNB(*data):
- x_train, x_test, y_train, y_test = data
- cls = naive_bayes.GaussianNB
- cls.fit(x_train, y_train)
- print("training score set is: {:.3f}".format(cls.score(x_train, y_train)))
- print("test score set is: {:.3f}".format(cls.score(x_test, y_test)))
- x_train, x_test, y_train, y_test = load_digits_data
- test_GaussianNB(x_train, x_test, y_train, y_test)
上述代码运行后其结果为:
training score set is: 0.859
test score set is: 0.824
我们看到高斯贝叶斯分类器对训练集的预测准确率为0.859,对测试机的预测准确率为0.824,两者准确率相差不大,符合预期结果。
关注“AIU人工智能”公众号,回复“白皮书”获取数据分析、大数据、人工智能行业白皮书及更多精选学习资料!