机器学习之高斯贝叶斯分类器gaussianNB

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mr_muli/article/details/84479667
  • 机器学习之高斯贝叶斯分类器gaussianNB
# -*- coding: utf-8 -*-
"""
Created on Sun Nov 25 10:55:17 2018

@author: muli
"""

from sklearn import naive_bayes,datasets,cross_validation


def load_data():
    '''
    加载用于分类问题的数据集。这里使用 scikit-learn 自带的 digits 数据集

    :return: 一个元组,用于分类问题。元组元素依次为:训练样本集、测试样本集、训练样本集对应的标记、测试样本集对应的标记
    '''
    # 加载 scikit-learn 自带的 digits 数据集
    digits=datasets.load_digits() 
    #分层采样拆分成训练集和测试集,测试集大小为原始数据集大小的 1/4
    return cross_validation.train_test_split(digits.data,digits.target,
		test_size=0.25,random_state=0,stratify=digits.target) 


def test_GaussianNB(*data):
    '''
    测试 GaussianNB 的用法

    :param data: 可变参数。
    它是一个元组,这里要求其元素依次为:训练样本集、测试样本集、训练样本的标记、测试样本的标记
    :return: None
    '''
    X_train,X_test,y_train,y_test=data
    cls=naive_bayes.GaussianNB()
    cls.fit(X_train,y_train)
    print('Training Score: %.2f' % cls.score(X_train,y_train))
    print('Testing Score: %.2f' % cls.score(X_test, y_test))
    print("--------------")
#    print(X_test)    # 打印训练集
#    print(np.shape(X_test))  # 训练集维度(450, 64)
    # 测试集对应的预测概率
    # predict_proba返回的是一个 n 行 k 列的数组, 
    # 第 i 行 第 j 列上的数值是模型预测 第 i 个预测样本为某个标签的概率,
    # 并且每一行的概率和为1
    print(cls.predict_proba(X_test))


if __name__=='__main__':
    # 产生用于分类问题的数据集
    X_train,X_test,y_train,y_test=load_data() 
    # 调用 test_GaussianNB
    test_GaussianNB(X_train,X_test,y_train,y_test) 

猜你喜欢

转载自blog.csdn.net/mr_muli/article/details/84479667