Day15 单纯贝氏分类器实作

https://github.com/PacktPublishing/Machine-Learning-Algorithms

单纯贝氏有三种版本白努力、多项式、高斯,今天先学白努力。
白努力:是二元分布,适用於特徵存在或不存在时。
多项式:是离散分布,适用於特徵为整数时(NLP中单辞出现频率)。
高斯:是连续分布。

白努力单纯贝氏

一样先导入套件,上面的是用来算数学的;下面的是用来画画的,并且帮它们取绰号(np & plt)。

import numpy as np
import matplotlib.pyplot as plt

再来,用seed()随机产生整数的乱数後,设定样本数300,建立资料集。

np.random.seed(1000)
nb_samples = 300
from sklearn.datasets import make_classification
def show_dataset(X, Y):
    fig, ax = plt.subplots(1, 1, figsize=(30, 25))
    ax.grid()
    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    for i in range(nb_samples):
        if Y[i] == 0:
            ax.scatter(X[i, 0], X[i, 1], marker='o', color='r')
        else:
            ax.scatter(X[i, 0], X[i, 1], marker='^', color='b')
    plt.show()
X, Y = make_classification(n_samples=nb_samples, n_features=2, n_informative=2, n_redundant=0)

https://ithelp.ithome.com.tw/upload/images/20210918/20137546HUwNXislsR.png

接着,把资料分成训练用跟测试用,跟之前一样。不同的是BernoulliNB里面有binarize功能,用来内部转换特徵,需要自行设定二元门槛,这里是设定0.0,建模後得到准确率。

from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.naive_bayes import BernoulliNB
bnb = BernoulliNB(binarize=0.0)
bnb.fit(X_train, Y_train)
print('Bernoulli Naive Bayes score: %.3f' % bnb.score(X_test, Y_test)) // Bernoulli Naive Bayes score: 0.840
bnb_scores = cross_val_score(bnb, X, Y, scoring='accuracy', cv=10)
print('Bernoulli Naive Bayes CV average score: %.3f' % bnb_scores.mean()) // Bernoulli Naive Bayes CV average score: 0.853

最後,试试看模型准不准确就完工了。

data = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
Yp = bnb.predict(data)
print(Yp)

最近,小弟有看到一篇资料科学家写的很浅显易懂的贝氏定理,在此跟各位分享/images/emoticon/emoticon37.gif

https://leemeng.tw/intuitive-understandind-of-bayes-rules-and-learn-from-experience.html


<<:  Day6 Let's ODOO: Model(3) Decorators & Environment

>>:  【Day06】Dataflow Level

摊平摊平,愈摊愈平

这也是很多输家最爱用的手段之一,进场时说是「成长型」投资,被套牢了,改口说是「价值型」投资,你真的懂...

Android学习笔记06

kotlin+mvvm+databinding+recyclerview 今天在跟朋友讨论程序码的时...

网路是怎样连接的(一) 网路是甚麽

思考重点 网路是怎样连接起来的? 网路可以解决甚麽问题? 网路的本质是什麽? 核心知识 甚麽是网路 ...

大共享时代系列_008_共享居家照护

照顾...是谁的工作? 当我病痛衰弱时,谁可以照顾我? 家人?朋友?爱人? 但照顾者不需要休息跟喘息...

Day5 process 的生命周期

前言 昨天讲了process 怎麽来的,今天来讲讲process 的生命周期。 process 的生...