朴素贝叶斯算法的基本理解
1. 朴素:就是假设特征和特征之间相互独立
2. 贝叶斯:就是贝叶斯公式
3. 通常用来作为文本的分类问题
4. 感兴趣同志们可以学习以下贝叶斯公式和拉普拉斯平滑式
朴素贝叶斯的优点:
1. 有稳定的分类效率
2. 对缺失值不敏感,算法简单
3. 分类准确率不低,而且速度快
朴素贝叶斯的缺点:
由于样本特征之间做了相互独立的假设,因此如果特征之间关联性较强时,效果不好
# 例子20新闻分类
# 1. 数据的获取
from sklearn.datasets import fetch_20newsgroups
news = fetch_20newsgroups(data_home=r'E:\Desktop\应用\专业课学习笔记\python\机器学习\算法模型', subset='all')
# 2. 数据预处理
# 数据train—test分离
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(news.data, news.target, test_size=0.2, random_state=600)
# 3. 文本特征抽取,采用tfidf
from sklearn.feature_extraction.text import TfidfVectorizer
tranfer = TfidfVectorizer()
x_train = tranfer.fit_transform(x_train)
x_test = tranfer.transform(x_test)
# 4. 朴素贝叶斯算法
from sklearn.naive_bayes import MultinomialNB
estimator = MultinomialNB()
estimator.fit(x_train, y_train)
print('直接比较\n', estimator.predict(x_test) == y_test)
estimator.score(x_test, y_test)
结果输出:
直接比较 [ True True True ... True False True]0.8580901856763926
学习地址: