import  matplotlib.pyplot as plt

from sklearn import datasets,naive_bayes
from sklearn.model_selection import train_test_split

# 加载 scikit-learn 自带的 digits 数据集
def load_data():
    '''
    加载用于分类问题的数据集。这里使用 scikit-learn 自带的 digits 数据集
    '''
    digits=datasets.load_digits()
    return train_test_split(digits.data,digits.target,test_size=0.25,random_state=0,stratify=digits.target)

def show_digits():
    '''
    绘制 digits 数据集。这里只是绘制数据集中前 25 个样本的图片。
    '''
    digits=datasets.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()

#高斯贝叶斯分类器GaussianNB模型
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: %.2f' % cls.score(X_train,y_train))
    print('Testing Score: %.2f' % cls.score(X_test, y_test))

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