贝叶斯公式
朴素:假设特征与特征之间相互独立
朴素贝叶斯算法:朴素+贝叶斯
应用场景:文本分类(单词作为特征)
拉普拉斯平滑系数
Ni:F1词在C类别所有文档中出现的次数
N:所属类别C下的文档所有词出现的次数和
a:指定的系数一般为1
m:训练文档中统计出的特征词个数
不懂没关系,会用API就行!!!!!
API:
sklearn.naive_bayes.MultinomialNB(alpha = 1.0)
- 朴素贝叶斯分类
- alpha:拉普拉斯平滑系数
案例:
1、获取数据
2、划分数据集
3、特征工程——文本特征抽取
4、朴素贝叶斯算法的
5、模型评估
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
#用朴素贝叶斯算法对新闻进行分类
#获取数据
news = fetch_20newsgroups(subset = 'all')
#数据集划分
x_train,x_test,y_train,y_test = train_test_split(news.data,news.target)
print(x_train)
#特征工程——文本特征抽取
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)