数据挖掘系列(8)朴素贝叶斯分类算法原理与实践

朴素贝叶斯分类器 详细解析 目录 1 贝叶斯决策论 1.1 后验概率 1.2 贝叶斯定理 2. 朴素贝叶斯分类算法详解 3.例题分析 4. 朴素贝叶斯分类的优缺点   1 贝叶斯决策论 贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情况下,贝叶斯决策轮考虑如何基于这些概率和误判损失来选择最优的类别标记。 1.1 后... 阅读详情

一个简单的例子

  朴素贝叶斯算法是一个典型的统计学习方法,主要理论基础就是一个贝叶斯公式,贝叶斯公式的基本定义如下:

  这个公式虽然看上去简单,但它却能总结历史,预知未来。公式的右边是总结历史,公式的左边是预知未来,如果把Y看出类别,X看出特征,P(Yk|X)就是在已知特征X的情况下求Yk类别的概率,而对P(Yk|X)的计算又全部转化到类别Yk的特征分布上来。

  举个例子,大学的时候,某男生经常去图书室晚自习,发现他喜欢的那个女生也常去那个自习室,心中窃喜,于是每天买点好吃点在那个自习室蹲点等她来,可是人家女生不一定每天都来,眼看天气渐渐炎热,图书馆又不开空调,如果那个女生没有去自修室,该男生也就不去,每次男生鼓足勇气说:“嘿,你明天还来不?”,“啊,不知道,看情况”。然后该男生每天就把她去自习室与否以及一些其他情况做一下记录,用Y表示该女生是否去自习室,即Y={去,不去},X是跟去自修室有关联的一系列条件,比如当天上了哪门主课,蹲点统计了一段时间后,该男生打算今天不再蹲点,而是先预测一下她会不会去,现在已经知道了今天上了常微分方法这么主课,于是计算P(Y=去|常微分方程)与P(Y=不去|常微分方程),看哪个概率大,如果P(Y=去|常微分方程) >P(Y=不去|常微分方程),那这个男生不管多热都屁颠屁颠去自习室了,否则不就去自习室受罪了。P(Y=去|常微分方程)的计算可以转为计算以前她去的情况下,那天主课是常微分的概率P(常微分方程|Y=去),注意公式右边的分母对每个类别(去/不去)都是一样的,所以计算的时候忽略掉分母,这样虽然得到的概率值已经不再是0~1之间,但是其大小还是能选择类别。

  后来他发现还有一些其他条件可以挖,比如当天星期几、当天的天气,以及上一次与她在自修室的气氛,统计了一段时间后,该男子一计算,发现不好算了,因为总结历史的公式:

  这里n=3,x(1)表示主课,x(2)表示天气,x(3)表示星期几,x(4)表示气氛,Y仍然是{去,不去},现在主课有8门,天气有晴、雨、阴三种、气氛有A+,A,B+,B,C五种,那么总共需要估计的参数有8*3*7*5*2=1680个,每天只能收集到一条数据,那么等凑齐1680条数据大学都毕业了,男生打呼不妙,于是做了一个独立性假设,假设这些影响她去自习室的原因是独立互不相关的,于是

  有了这个独立假设后,需要估计的参数就变为,(8+3+7+5)*2 = 46个了,而且每天收集的一条数据,可以提供4个参数,这样该男生就预测越来越准了。

朴素贝叶斯分类器

  讲了上面的小故事,我们来朴素贝叶斯分类器的表示形式:

  当特征为为x时,计算所有类别的条件概率,选取条件概率最大的类别作为待分类的类别。由于上公式的分母对每个类别都是一样的,因此计算时可以不考虑分母,即

  朴素贝叶斯的朴素体现在其对各个条件的独立性假设上,加上独立假设后,大大减少了参数假设空间。  

  

在文本分类上的应用

   文本分类的应用很多,比如垃圾邮件和垃圾短信的过滤就是一个2分类问题,新闻分类、文本情感分析等都可以看成是文本分类问题,分类问题由两步组成:训练和预测,要建立一个分类模型,至少需要有一个训练数据集。贝叶斯模型可以很自然地应用到文本分类上:现在有一篇文档d(Document),判断它属于哪个类别ck,只需要计算文档d属于哪一个类别的概率最大:

  在分类问题中,我们并不是把所有的特征都用上,对一篇文档d,我们只用其中的部分特征词项<t1,t2,...,tnd>(nd表示d中的总词条数目),因为很多词项对分类是没有价值的,比如一些停用词“的,是,在”在每个类别中都会出现,这个词项还会模糊分类的决策面,关于特征词的选取,我的这篇文章有介绍。用特征词项表示文档后,计算文档d的类别转化为:

  注意P(Ck|d)只是正比于后面那部分公式,完整的计算还有一个分母,但我们前面讨论了,对每个类别而已分母都是一样的,于是在我们只需要计算分子就能够进行分类了。实际的计算过程中,多个概率值P(tj|ck)的连乘很容易下溢出为0,因此转化为对数计算,连乘就变成了累加:

  我们只需要从训练数据集中,计算每一个类别的出现概率P(ck)和每一个类别中各个特征词项的概率P(tj|ck),而这些概率值的计算都采用最大似然估计,说到底就是统计每个词在各个类别中出现的次数和各个类别的文档的数目:

  其中,Nck表示训练集中ck类文档的数目,N训练集中文档总数;Tjk表示词项tj在类别ck中出现的次数,V是所有类别的词项集合。这里对词的位置作了独立性假设,即两个词只要它们出现的次数一样,那不管它们在文档的出现位置,它们大概率值P(tj|ck)都是一样,这个位置独立性假设与现实很不相符,比如“放马屁”跟“马放屁”表述的是不同的内容,但实践发现,位置独立性假设得到的模型准确率并不低,因为大多数文本分类都是靠词的差异来区分,而不是词的位置,如果考虑词的位置,那么问题将表达相当复杂,以至于我们无从下手。

  然后需要注意的一个问题是ti可能没有出现在ck类别的训练集,却出现在ck类别的测试集合中,这样因为Tik为0,导致连乘概率值都为0,其他特征词出现得再多,该文档也不会被分到ck类别,而且在对数累加的情况下,0值导致计算错误,处理这种问题的方法是采样加1平滑,即认为每个词在各个类别中都至少出现过一次,即

   下面这个例子来自于参考文献1,假设有如下的训练集合测试集:

  现在要计算docID为5的测试文档是否属于China类别,首先计算个各类的概率,P(c=China)=3/4,P(c!=China)=1/4,然后计算各个类中词项的概率:

  注意分母(8+6)中8表示China类的词项出现的总次数是8,+6表示平滑,6是总词项的个数,然后计算测试文档属于各个类别的概率:

  可以看出该测试文档应该属于CHina类别。

文本分类实践

  我找了搜狗的搜狐新闻数据的历史简洁版,总共包括汽车、财经、it、健康等9类新闻,一共16289条新闻,搜狗给的数据是每一篇新闻用一个txt文件保存,我预处理了一下,把所有的新闻文档保存在一个文本文件中,每一行是一篇新闻,同时保留新闻的id,id的首字母表示类标,预处理并分词后的示例如下:

  我用6289条新闻作为训练集,剩余1万条用于测试,采用互信息进行文本特征的提取,总共提取的特征词是700个左右。

  分类的结果如下:

8343 10000 0.8343

  总共10000条新闻,分类正确的8343条,正确率0.8343,这里主要是演示贝叶斯的分类过程,只考虑了正确率也没有考虑其他评价指标,也没有进行优化。贝叶斯分类的效率高,训练时,只需要扫描一遍训练集,记录每个词出现的次数,以及各类文档出现的次数,测试时也只需要扫描一次测试集,从运行效率这个角度而言,朴素贝叶斯的效率是最高的,而准确率也能达到一个理想的效果。

  我的实现代码如下:

复制代码
  1 #!encoding=utf-8
  2 import random
  3 import sys
  4 import math
  5 import collections
  6 import sys
  7 def shuffle():
  8     '''将原来的文本打乱顺序,用于得到训练集和测试集'''
  9     datas = [line.strip() for line in sys.stdin]
 10     random.shuffle(datas)
 11     for line in datas:
 12         print line        
 13 
 14         
 15 lables = ['A','B','C','D','E','F','G','H','I']
 16 def lable2id(lable):
 17     for i in xrange(len(lables)):
 18         if lable == lables[i]:
 19             return i
 20     raise Exception('Error lable %s' % (lable))
 21         
 22 def docdict():
 23     return [0]*len(lables)
 24     
 25 def mutalInfo(N,Nij,Ni_,N_j):
 26     #print N,Nij,Ni_,N_j
 27     return Nij * 1.0 / N * math.log(N * (Nij+1)*1.0/(Ni_*N_j))/ math.log(2)
 28     
 29 def countForMI():
 30     '''基于统计每个词在每个类别出现的次数,以及每类的文档数'''
 31     docCount = [0] * len(lables)#每个类的词数目
 32     wordCount = collections.defaultdict(docdict)    
 33     for line in sys.stdin:
 34         lable,text = line.strip().split(' ',1)
 35         index = lable2id(lable[0])        
 36         words = text.split(' ')
 37         for word in words:
 38             wordCount[word][index] += 1
 39             docCount[index] += 1
 40     
 41     miDict = collections.defaultdict(docdict)#互信息值
 42     N = sum(docCount)
 43     for k,vs in wordCount.items():
 44         for i in xrange(len(vs)):
 45             N11 = vs[i]
 46             N10 = sum(vs) - N11
 47             N01 = docCount[i] - N11
 48             N00 = N - N11 - N10 - N01
 49             mi = mutalInfo(N,N11,N10+N11,N01+N11) + mutalInfo(N,N10,N10+N11,N00+N10)+ mutalInfo(N,N01,N01+N11,N01+N00)+ mutalInfo(N,N00,N00+N10,N00+N01)
 50             miDict[k][i] = mi
 51     fWords = set()
 52     for i in xrange(len(docCount)):
 53         keyf = lambda x:x[1][i]
 54         sortedDict = sorted(miDict.items(),key=keyf,reverse=True)
 55         for j in xrange(100):
 56             fWords.add(sortedDict[j][0])
 57     print docCount#打印各个类的文档数目
 58     for fword in fWords:
 59         print fword
 60             
 61     
 62 def loadFeatureWord():
 63     '''导入特征词'''
 64     f = open('feature.txt')
 65     docCounts = eval(f.readline())
 66     features = set()
 67     for line in f:
 68         features.add(line.strip())
 69     f.close()
 70     return docCounts,features
 71             
 72 def trainBayes():
 73     '''训练贝叶斯模型,实际上计算每个类中特征词的出现次数'''
 74     docCounts,features = loadFeatureWord()
 75     wordCount = collections.defaultdict(docdict)    
 76     tCount = [0]*len(docCounts)#每类文档特征词出现的次数
 77     for line in sys.stdin:
 78         lable,text = line.strip().split(' ',1)
 79         index = lable2id(lable[0])        
 80         words = text.split(' ')
 81         for word in words:
 82             if word in features:
 83                 tCount[index] += 1
 84                 wordCount[word][index] += 1
 85     for k,v in wordCount.items():
 86         scores = [(v[i]+1) * 1.0 / (tCount[i]+len(wordCount)) for i in xrange(len(v))]#加1平滑
 87         print '%s\t%s' % (k,scores)
 88         
 89 def loadModel():
 90     '''导入贝叶斯模型'''
 91     f = open('model.txt')
 92     scores = {}
 93     for line in f:
 94         word,counts = line.strip().rsplit('\t',1)    
 95         scores[word] = eval(counts)
 96     f.close()
 97     return scores
 98     
 99 def predict():
100     '''预测文档的类标,标准输入每一行为一个文档'''
101     docCounts,features = loadFeatureWord()    
102     docscores = [math.log(count * 1.0 /sum(docCounts)) for count in docCounts]
103     scores = loadModel()
104     rCount = 0
105     docCount = 0
106     for line in sys.stdin:
107         lable,text = line.strip().split(' ',1)
108         index = lable2id(lable[0])        
109         words = text.split(' ')
110         preValues = list(docscores)
111         for word in words:
112             if word in features:                
113                 for i in xrange(len(preValues)):
114                     preValues[i]+=math.log(scores[word][i])
115         m = max(preValues)
116         pIndex = preValues.index(m)
117         if pIndex == index:
118             rCount += 1
119         print lable,lables[pIndex],text
120         docCount += 1
121     print rCount,docCount,rCount * 1.0 / docCount            
122         
123         
124 if __name__=="__main__":
125     #shuffle()
126     #countForMI()
127     #trainBayes()
128     predict()
复制代码

  代码里面,计算特征词与训练模型、测试是分开的,需要修改main方法,比如计算特征词:

$cat train.txt | python bayes.py > feature.txt

  训练模型:

$cat train.txt | python bayes.py > model.txt

  预测模型:

$cat test.txt | python bayes.py > predict.out

总结

  本文介绍了朴素贝叶斯分类方法,还以文本分类为例,给出了一个具体应用的例子,朴素贝叶斯的朴素体现在条件变量之间的独立性假设,应用到文本分类上,作了两个假设,一是各个特征词对分类的影响是独立的,另一个是词项在文档中的顺序是无关紧要的。朴素贝叶斯的独立性假设在实际中并不成立,但在分类效上依然不错,加上独立性假设后,对与属于类ck的谋篇文档d,其p(ck|d)往往会估计过高,即本来预期p(ck|d)=0.55,而朴素贝叶斯却计算得到p(ck|d)=0.99,但这并不影响分类结果,这是朴素贝叶斯分类器在文本分类上效果优于预期的原因。

参考文献:

  王斌 译.信息检索导论. 人民邮电出版社

   codemeals. 文本特征选择. cnblogs.

  李航.统计学习方法.清华大学出版社

  陈希孺. 概率论与数理统计.中国科学技术出版社.

 

转载请注明出处:http://www.cnblogs.com/fengfenggirl


04 数据挖掘之朴素贝叶斯算法 04 数据挖掘之朴素贝叶斯算法 原文链接:04 数据挖掘之朴素贝叶斯算法 相关博客 01 数据挖掘之Apriori关联规则算法 02 数据挖掘之k均值聚类算法 03 数据挖掘之ID3决策树算法 前言 照例,数据挖掘迎来了第四次实践作业,此次内容是贝叶斯的一些算法,在学习课程的过程中,觉得这些算法对以后也许会有些许帮助,因此在此作为笔记记录。 贝叶斯 参考博客:Python3 实现朴素贝叶斯分类,朴素贝叶斯分类:原理 贝叶斯原理是英国数学家托马斯·贝叶斯提出的。贝叶斯是个很神奇的人,他的经历类似梵高。生前没有 阅读详情

相关推荐

《数据挖掘与大数据分析》课堂学习笔记-6 7 8 第四章 分类 决策树 KNN算法 朴素贝叶斯

文章目录第四章 分类分类基本概念预测任务模型分类生成模型判别模型经典分类方法决策树引入:高尔夫问题小结 第四章 分类 分类基本概念 分类是一种数据分析形势,它提取刻画重要数据类的模型,这种模型叫分类器。 之后模型会进而预测分类的(离散的、无序的)类标号。 总而言之,分类属于 预测任务 预测任务 所以我们自然而然地引入了 什么是预测任务? 一般一个预测任务分成两个阶段 模型分类 生成模型 希望从数据中心学习/还原出 原始的真实数据生成模型。 常见的方法:学习数据的联合概率分布(一般会假设一下联合概率分布)

一碗菜粥的博客 1712

【机器学习】朴素贝叶斯算法

朴素贝叶斯(Naive Bayes)是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。由于朴素贝叶斯计算联合概率,所以朴素贝叶斯模型属于生成式模型。经典应用案例包括:文本分类、垃圾邮件过滤等。

Dong_ZH的博客 1万+

数据挖掘系列(6)决策树分类算法

  从这篇开始,我将介绍分类问题,主要介绍决策树算法、朴素贝叶斯、支持向量机、BP神经网络、懒惰学习算法、随机森林与自适应增强算法、分类模型选择和结果评价。总共7篇,欢迎关注和交流。   这篇先介绍分类问题的一些基本知识,然后主要讲述决策树算法的原理、实现,最后利用决策树算法做一个泰坦尼克号船员生存预测应用。 一、分类基本介绍   物以类聚,人以群分,分类问题只古以来就出现我们的生活中。分类...

weixin_30687811的博客 3375

机器学习实践(四)——朴素贝叶斯算法解决垃圾邮件过滤问题

基于朴素贝叶斯算法进行垃圾邮件过滤

m0_63169186的博客 2060

51单片机自学笔记(六)数码管动态扫描与消影实战

本文详细解析了51单片机数码管动态扫描原理与视觉暂留效应,通过硬件电路分析和C语言代码实战,重点介绍了三种数码管消影技术(段选清零法、位选屏蔽法、硬件消影法),解决了显示重影问题,并提供了常见问题调试技巧与定时器中断优化方案,帮助开发者掌握稳定的多位数码管显示技术。

y9z0a1b的博客 1104

手把手教你用HarmBench数据集测试大模型安全性(含多模态案例)

本文详细介绍了如何使用HarmBench数据集测试大模型的安全性,包括文本和多模态越狱指令的实战案例。通过环境配置、数据集获取、测试流程及结果分析,帮助开发者全面评估和提升大模型的安全防护能力,特别关注多模态攻击的防御策略。

weixin_26642481的博客 325

朴素贝叶斯分类器(Naive Bayesian Classifier)及简单的算法实践(识别MNIST手写数字)

文章概述 朴素贝叶斯分类器是基于贝叶斯定理所实现的一种对于数据分类的算法,本文章将先对贝叶斯定理和对于机器学习(数据分类)上的作用进行简单介绍,然后通过代码(python)实现朴素贝叶斯分类器识别MNIST数据集的手写数字。 贝叶斯定理 在机器学习中, 通常为数据(feature),为数据预测的模型(label)。 对于贝叶斯定理每一项的解释: : 先验概率,在观测具体数据前预测某种数据标签(label)的概率。 : 似然值,在预测h下数据的概率。 ...

jeremy0621的博客 7713

LeRobot SO-ARM100 学习笔记(2) diffusion module

对 lerobot 中的 diffusion policy 进行基本的代码阅读

mikhailbran的博客 1586

基于朴素贝叶斯的手写数字识别

基于朴素贝叶斯的手写数字识别关于数据集关于SIMD关于python如何改变文本的样式 关于数据集 数据集我使用的是MNIST Handwritten Digits数据集,共有6K的训练集和1K的验证集。数据格式如下 关于SIMD SIMD全称Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。SIMD以同步方...

weixin_42457073的博客 3366

解放双手!利用海康VM全局脚本+通讯管理打造自动化视觉控制系统

本文深入探讨了如何利用海康VisionMaster(VM)的全局脚本和通讯管理功能,打造高效自动化视觉控制系统。通过全局变量实现数据共享与动态调整,结合多协议通讯管理,提升系统响应速度与智能化水平,适用于工业4.0环境下的复杂视觉检测与决策场景。

weixin_28720573的博客 424

高压脉冲发生器的各种电路图

高压脉冲发生器的各种电路图

qq_65102825的博客 5904

数据挖掘领域十大经典算法之—朴素贝叶斯算法(超详细附代码)

相关文章: 数据挖掘领域十大经典算法之—C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之—K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之—SVM算法(超详细附代码) 数据挖掘领域十大经典算法之—Apriori算法 数据挖掘领域十大经典算法之—EM算法 数据挖掘领域十大经典算法之—PageRank算法 数据挖掘领域十大经典算法之—...

fuqiuai的博客 7万+

从零搭建 AI 运维 Agent:告警自动诊断 + 修复的完整技术方案

适合读者:管理 5-50 台服务器的运维/SRE 工程师、技术负责人 技术栈:FastAPI + React + PostgreSQL + Redis + DeepSeek 关键词:AI运维、AIOps、自动化运维、智能告警、告警修复、Runbook自动化、DevOps、SRE、DeepSeek运维

weixin_38359457的博客 1640

【朴素贝叶斯】深入浅出讲解朴素贝叶斯算法(公式、原理)

朴素贝叶斯(Naive Bayes)是一种简单经典的分类算法,它的经典应用案例为人所熟知:文本分类(如垃圾邮件过滤)。条件概率:记事件A发生的概率为P(A),事件B发生的概率为P(B),则在B事件发生的前提下,A事件发生的概率即为条件概率,记为P(A|B)。

程序星空实验室 5万+

Jenkins部署前后端分离项目最全图文教程(手把手教学)

最近Jenkins部署的热度比较高,于是就想出一篇关于我是如何使用Jenkins部署前后端分离项目的,本篇记录了我是如何一步一步去配置、搭建和部署的完整流程,每一行代码都进行了实测和讲解,通过图文的教学写成博客分享给大家!

黄团团的个人博客 4780

CGAL 网格等高线计算

CGAL 网格等高线计算

dayuhaitang1的博客 452

数据挖掘的10大算法我用大白话讲清楚了,新手一看就懂

一个优秀的数据分析师,除了要掌握基本的统计学、数据库、数据分析方法、思维、数据分析工具技能之外,还需要掌握一些数据挖掘的思想,帮助我们挖掘出有价值的数据,这也是数据分析专家和一般数据分析师的差距之一。 数据挖掘主要分为分类算法,聚类算法和关联规则三大类,这三类基本上涵盖了目前商业市场对算法的所有需求。而这三类里又包含许多经典算法。市面上很多关于数据挖掘算法的介绍深奥难懂,今天就给大家用简单的大白话来介绍数据挖掘十大经典算法原理,帮助大家快速理解。 算法分类 连接分析:PageRank 关联.

Leo的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数据挖掘十大算法

数据挖掘十大算法一、C4.5 算法二、K-Means 算法三、朴素贝叶斯算法四、K 最近邻分类算法(KNN)五、EM 最大期望算法六、PageRank 算法七、AdaBoost八、Apriori 算法九、SVM 支持向量机十、CART 分类与回归树 一、C4.5 算法 ID3 算法是以信息论为基础,以信息熵和信息增益度为衡量标准,从而实现对数据的归纳分类。ID3 算法计算每个属性的信息增益,并选取具有最高增益的属性作为给定的测试属性。 C4.5 算法核心思想是ID3 算法,是ID3 算法的改进,改进方面有:

weixin_39484738的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

朴素贝叶斯分类算法

参考资料地址: http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html 我的数据挖掘算法实现源码地址:https://github.com/linyiqun/DataMiningAlgorithm 介绍 要介绍朴素贝叶斯算法(Naive Bayes),那就得先介绍贝叶斯分类算法,贝叶斯分

走在前往架构师的路上 2万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

数据挖掘-朴素贝叶斯分类

数据挖掘-朴素贝叶斯分类 什么是分类? 分类是一种重要的数据分析形式,它提取刻画重要数据类的模型。这种模型称为分类器,预测分类的(离散的,无序的)类标号。例如医生对病人进行诊断是一个典型的分类过程,医生不是一眼就看出病人得了哪种病,而是要根据病人的症状和化验单结果诊断病人得了哪种病,采用哪种治疗方案。再比如,零售业中的销售经理需要分析客户数据,以便帮助他猜测具有某些特征的客户会购买某种商品。 ...

Alvin_hcf的Blog 1518

第11章:数据挖掘算法与实践

本文介绍了数据挖掘领域中的三类核心算法:朴素贝叶斯分类、K-Means聚类和Apriori关联规则挖掘。朴素贝叶斯基于贝叶斯定理,具有特征条件独立性假设;K-Means通过迭代优化簇内距离实现聚类;Apriori算法利用先验原理挖掘频繁项集。文章还包含一个电信用户流失预警的实践项目,展示了数据预处理、特征工程和多模型对比的完整流程,通过标准化、独热编码等处理技术构建分类模型。

983

数据挖掘核心:分类任务详解与经典算法全攻略(原理+流程图+代码+场景)

在数据挖掘的六大核心任务中,分类任务是工业界落地最广泛、应用最成熟的监督学习任务,占据了企业AI应用的半壁江山。从垃圾邮件识别、信用卡风控,到疾病诊断、图像分类,背后都是分类算法在支撑。本文将用通俗定义+标准流程图+核心步骤+10大经典算法+实战代码,带你彻底吃透数据挖掘中的分类任务,零基础也能快速掌握。分类任务:数据挖掘中一种典型的监督学习任务,基于已标注的训练数据,学习输入特征与离散类别标签之间的映射函数,从而对新的未知数据自动预测其所属类别。分类任务定义:有监督学习,预测数据离散类别。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1841

朴素贝叶斯算法及其实战

1.概率: 随机事件发生的可能性 2.定义 贝叶斯方法 贝叶斯方法是以贝叶斯原理为基础,使用概率统计的知识对样本数据集进行分类。由于其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。贝叶斯方法的特点是结合先验概率和后验概率,即避免了只使用先验概率的主观偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的情况下表现出较高的准确率,同时算法本身也比...

郑德帅 1万+

分类算法系列⑤:决策树

本文介绍机器学习的决策树

逐梦苍穹的博客 1万+
上一篇: 数据挖掘系列(7)分类算法评价
下一篇: 数据挖掘系列(9)——BP神经网络算法与实践
youbo_sun
博客等级 码龄12年 20粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值