何谓朴素?特征与特征之间相互独立
应用场景
优点
缺点
联合概率、条件概率与相互独立
- 联合概率:包含多个条件,且所有条件同时成立
- 条件概率:事件A在另一个事件B已经发生的条件下的发生概率
- 相互独立:P(A,B)=P(A)P(B)
贝叶斯公式
基本公式
扩展公式
具体计算方式详见概率论知识
拉普拉斯平滑系数
防止计算出的分类概率为0
其中为指定的系数一般为1,m为训练文档中出现统计词的个数
贝叶斯算法的API
sklearn.naive_bayes.MultinomailNB(alpha=1.0)
具体应用
- 获取数据
- 划分数据集
- 特征工程 文本特征抽取
- 朴素贝叶斯预估器流程
- 模型评估
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| from sklearn.datasets import fetch_20newsgroups from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.naive_bayes import MultinomialNB def nb_news(): """ 用朴素贝叶斯算法对新闻进行分类 :return: """ news = fetch_20newsgroups(subset="all")
x_train, x_test, y_train, y_test = train_test_split(news.data, news.target)
transfer = TfidfVectorizer() x_train = transfer.fit_transform(x_train) x_test = transfer.transform(x_test)
estimator = MultinomialNB() estimator.fit(x_train, y_train)
y_predict = estimator.predict(x_test) print("y_predict:\n", y_predict) print("直接比对真实值和预测值:\n", y_test == y_predict)
score = estimator.score(x_test, y_test) print("准确率为:\n", score)
return None
|