怎么自己做彩票网站吗,石狮网站开发,wordpress 博客 主题,软件开发工程师绩效考核文章目录1. 朴素贝叶斯2. NB 与 逻辑回归对比本文为
scikit-learn机器学习#xff08;第2版#xff09;学习笔记相关知识参考#xff1a;《统计学习方法》朴素贝叶斯法#xff08;Naive Bayes#xff0c;NB#xff09;
1. 朴素贝叶斯
通过最大概率来预测类#xff1a…
文章目录1. 朴素贝叶斯2. NB 与 逻辑回归对比本文为
scikit-learn机器学习第2版学习笔记相关知识参考《统计学习方法》朴素贝叶斯法Naive BayesNB
1. 朴素贝叶斯
通过最大概率来预测类
yarg maxckP(Yck)∏jP(X(j)x(j)∣Yck)\color{red} y\argmax\limits_{c_k} P(Yc_k) \prod\limits_{j} P(X^{(j)}x^{(j)}|Yc_k)yckargmaxP(Yck)j∏P(X(j)x(j)∣Yck)
模型假设 样本独立同分布 条件独立性 X(j)X^{(j)}X(j) 之间条件独立 P(Xx∣Yck)P(X(1)x(1),...,X(n)x(n)∣Yck)∏j1nP(X(j)x(j)∣Yck)P(Xx|Yc_k)P(X^{(1)}x^{(1)},...,X^{(n)}x^{(n)}|Yc_k)\prod_{j1}^nP(X^{(j)}x^{(j)}|Yc_k)P(Xx∣Yck)P(X(1)x(1),...,X(n)x(n)∣Yck)∏j1nP(X(j)x(j)∣Yck)
模型变体
多项式NB适合于类别特征高斯NB适合连续特征假设每个特征对每个类都符合正态分布伯努利NB适合所有特征为二元值的情况
朴素贝叶斯的假设很少为真但是NB模型可以有效地判别线性可分类
当训练数据缺乏时性能通常优于判别模型模型简单运行速度快易于实现
2. NB 与 逻辑回归对比
%matplotlib inline
import pandas as pd
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as pltX, y load_breast_cancer(return_X_yTrue)
X_train, X_test, y_train, y_test train_test_split(X, y, stratifyy, random_state11)
# stratifyy, 对标签进行分层抽样确保数据集之间的样本占比一致lr LogisticRegression()
nb GaussianNB()lr_scores []
nb_scores []train_sizes range(10, len(X_train), 10)for train_size in train_sizes:X_slice, _, y_slice, _ train_test_split(X_train, y_train, train_sizetrain_size, stratifyy_train, random_state11)nb.fit(X_slice, y_slice)nb_scores.append(nb.score(X_test, y_test))lr.fit(X_slice, y_slice)lr_scores.append(lr.score(X_test, y_test))plt.plot(train_sizes, nb_scores, labelNaive Bayes)
plt.plot(train_sizes, lr_scores, linestyle--, labelLogistic Regression)
plt.rcParams[font.sans-serif] SimHei # 消除乱码
plt.title(NB vs LogRg 对比)
plt.xlabel(训练样本数)
plt.ylabel(测试集预测准确率)
plt.legend()在小型数据集上NB模型性能优于逻辑回归当训练样本数增多以后逻辑回归模型性能逐渐提升