[学习记录]sklearn贝叶斯及SVM文本分类

贝叶斯分类首先准备好数据材料

第一次获取20newsgroups时会花费数分钟时间来获取数据,通过获得target_names可以查看其中的类型。

为了进行分类,采用词袋模型的方法,即统计每篇新闻的单词,不考虑单词间的联系,仅仅考虑它们出现的频率。

11314代表有11314篇文章,130107意思为词典中一共有130107个单词,这11314篇文章中所有的单词都来自于此。

我们可以获得列表中每个对象(文章),并通过一些属性获得我们想要的信息

接下来进行贝叶斯分类,这里采用MultinomialNB

模型训练完成后对照测试集检查效果

对于这个模型的改进,可以有以下几种方法

1.词频反转,不过看起来不太明显

2.去除停用词

一下子提高3个百分点

最后是支持向量机

可以通过修改参数进行调整模型,参考http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDClassifier.html

原文地址:https://www.cnblogs.com/trickofjoker/p/9306851.html

时间: 2024-11-08 06:26:42

[学习记录]sklearn贝叶斯及SVM文本分类的相关文章

python实现随机森林、逻辑回归和朴素贝叶斯的新闻文本分类

实现本文的文本数据可以在THUCTC下载也可以自己手动爬虫生成, 本文主要参考:https://blog.csdn.net/hao5335156/article/details/82716923 nb表示朴素贝叶斯 rf表示随机森林 lg表示逻辑回归 初学者(我)通过本程序的学习可以巩固python基础,学会python文本的处理,和分类器的调用.方便接下来的机器学习的学习. 各个参数直观的含义: # -*- coding: utf-8 -*- """ Created on

多种贝叶斯模型构建文本分类

多种贝叶斯模型构建及文本分类的实现 作者:白宁超 2015年9月29日11:10:02 摘要:当前数据挖掘技术使用最为广泛的莫过于文本挖掘领域,包括领域本体构建.短文本实体抽取以及代码的语义级构件方法研究.常用的数据挖掘功能包括分类.聚类.预测和关联四大模型.本文针对四大模型之一的分类进行讨论.分类算法包括回归.决策树.支持向量机.贝叶斯等,显然,不少涉及机器学习的知识(随后会写些机器学习专题).本文重点介绍贝叶斯分类,涉及朴素贝叶斯模型.二项独立模型.多项模型.混合模型等知识.在本人研究贝叶斯

朴素贝叶斯-基于概率的分类方法

决策树.knn算法都是结果确定的分类算法,数据示实例最终被明确的划分到某个分类中 贝叶斯:不能完全确定数据实例应该划分到某个类,湖综合只能给出数据实例属于给定分类的概率 *引入先验概率与逻辑推理来处理不确定命题 *(扩展命题),另一种叫频数概率,从数据本身出发得到结论,不考了逻辑推理及先验知识. 朴素贝叶斯:整个形式化过程中制作最原始,最简单的假设 python文本能力:将文本划分为词向量,利用词向量对文本分类 朴素贝叶斯:选择高概率对应的类别 优点:在数据较少的情况下仍然有效,可以处理多类别问

基于TF-IDF及朴素贝叶斯的短文本分类

概括:朴素贝叶斯分类器(Naïve Bayes classifier)是一种相当简单常见但是又相当有效的分类算法,在监督学习领域有着很重要的应用.朴素贝叶斯是建立在“全概率公式”的基础下的,由已知的尽可能多的事件A.B求得的P(A|B)来推断未知P(B|A),是的有点玄学的意思,敲黑板!!! 优点: 模型训练使用TF-IDF对训练数据做词频及概率统计: 分类使用朴素贝叶斯计算所有类目的概率; 适用于电商的短文本分类,加入部分人工干预,top3准确率可达到95%左右: 分类预测完全可解释,不存在神

基于朴素贝叶斯算法的情感分类

环境 win8, python3.7, jupyter notebook 正文 什么是情感分析?(以下引用百度百科定义) 情感分析(Sentiment analysis),又称倾向性分析,意见抽取(Opinion extraction),意见挖掘(Opinion mining),情感挖掘(Sentiment mining),主观分析(Subjectivity analysis),它是对带有情感色彩的主观性文本进行分析.处理.归纳和推理的过程,如从评论文本中分析用户对"数码相机"的&qu

Bayes 朴素贝叶斯实现垃圾邮件分类

本文选取了25封垃圾邮件和25封正常邮件,随机产生了10组测试集和40组训练集,使用朴素贝叶斯方法实现了垃圾邮件的分类. Bayes公式   遍历每篇文档向量,扫描所有文档的单词,合并集合去重 ,并生成最终的词汇表 # 创建词汇表 # 输入:dataSet已经经过切分处理 # 输出:包含所有文档中出现的不重复词的列表 def createVocabList(dataSet):  # 文本去重,创建词汇表 vocabSet = set([])  # 创建一个空的集合 for document in

朴素贝叶斯和逻辑回归分类

朴素贝叶斯 用p1(x, y)表示(x, y)属于类别1的概率,P2(x, y)表示(x, y)属于类别2的概率: 如果p(c1|x, y) > P(c2|x, y), 那么类别为1 如果p(c1|x, y) < P2(c2|x, y), 那么类别为2 根据贝叶斯公式: p(c|x, y) = (p(x, y|c) * p(c)) / p(x, y) (x, y)表示要分类的特征向量, c表示类别 因为p(x, y),对不同类别的数值是一样的,只需计算p(x, y|c) 和 p(c) p(c)

[学习记录]sklearn线性回归

本文旨在记录colin老师workshop的exercise1讲解,包含入门级的sklearn操作 首先导入库 import numpy as np import pandas as pd import scipy.stas as stats import sklearn 其次导入数据,这里使用的是sklearn中内置的数据集 from sklearn.datasets import load_boston boston=load_boston() 使用pandas整理数据 pandas可以用来

学习日志---朴素贝叶斯算法

import numpy as np #返回样本数据集 def loadDataSet():     postingList=[['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'],                  ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'],                  ['my', 'dalmation', 'is', 's