day06 |
您所在的位置:网站首页 › 独立样本和配对样本分析举例 › day06 |
朴素贝叶斯算法
一、什么是朴素贝叶斯分类方法二、概率基础知识1,联合概率2,条件概率
三、贝叶斯公式1,公式2,拉普拉斯平滑系数
四、API五、实操案例:20类新闻分类代码
六、总结
一、什么是朴素贝叶斯分类方法
朴素贝叶斯分类方法是一种基于贝叶斯定理的统计学习分类算法。它假设所有特征之间相互独立,且每个特征对于类别的影响是等价的,因此被称为“朴素”。该方法通过先验概率和观测数据的条件概率来计算后验概率,然后将待分类样本分配到具有最大后验概率的类别中。在文本分类、垃圾邮件过滤、情感分析等领域具有广泛应用。 举例:根据以下数据,此时如果一个男生向女生求婚,男生的四个特点分别是不帅,性格不好,身高矮,不上进,请你判断一下女生是嫁还是不嫁? 包含多个条件,且所有条件同时成立的概率 记作:P(A,B) 特性:P(A, B) = P(A)P(B) 2,条件概率事件A在另外一个事件B已经发生条件下的发生概率 记作:P(A|B) 特性:P(A1,A2|B) = P(A1|B)P(A2|B) 注意:此条件概率的成立,是由于A1,A2相互独立的结果(记忆) 三、贝叶斯公式 1,公式
是否为娱乐类别的计算概率为0,这显然不合适,所以用拉普拉斯平滑系数来防止计算概率为0 2,拉普拉斯平滑系数
数据来源于 sklearn,大约有 20000 个新闻组文档,通过 sklearn.datasets.fetch_20newsgroups(subset='all') 来获取。 步骤: 获取数据分割数据集tfidf进行特征抽取朴素贝叶斯预测 代码 from sklearn.datasets import fetch_20newsgroups from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.model_selection import train_test_split 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, test_size=0.3) # 对于文本数据,进行特征抽取 tf = TfidfVectorizer() x_train = tf.fit_transform(x_train) # 不能调用fit_transform x_test = tf.transform(x_test) # estimator估计器流程 mlb = MultinomialNB(alpha=1.0) mlb.fit(x_train, y_train) # 进行预测 y_predict = mlb.predict(x_test) print("预测每篇文章的类别:", y_predict[:100]) print("真实类别为:", y_test[:100]) print("预测准确率为:", mlb.score(x_test, y_test)) 六、总结优点: 朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。对缺失数据不太敏感,算法也比较简单,常用于文本分类。分类准确度高,速度快缺点: 由于使用了样本属性独立性的假设,所以如果特征属性有关联时其效果不好 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |