算法小白的第一次尝试---朴素贝叶斯

朴素贝叶斯分类:原理 贝叶斯原理是英国数学家托马斯·贝叶斯提出的。贝叶斯是个很神奇的人,他的经历类似梵高。生前没有得到重视,死后,他写的一篇关于归纳推理的论文被朋友翻了出来,并发表了。这一发表不要紧,结果这篇论文的思想直接影响了接下来两个多世纪的统计学,是科学史上著名的论文之一。 贝叶斯原理 贝叶斯为了解决一个叫“逆向概率”问题写了一篇文章,尝试解答在没有太多可靠证据的情况下,怎样做出更符合数学逻辑的推测。 什么是“逆... 阅读详情
package Bayes
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import scala.collection.mutable.ArrayBuffer
import org.apache.spark.ml.feature.LabeledPoint
import org.apache.spark.ml.linalg.Vectors
/**
 * 简单实现统计学习方法上的朴素贝叶斯算法案例
 */
object Naive {
  def main(args: Array[String]): Unit = {
    val conf=new SparkConf().setMaster("local").setAppName("ML")
    val sc=new SparkContext(conf)
    //train数据源
    val X1=Array(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3)
    val X2=Array("S","M","M","S","S","S","M","M","L","L","L","M","M","L","L")
    val label=Array(-1,-1,1,1,-1,-1,-1,1,1,1,1,1,1,1,-1)
    val mEresult=maxLikelihoodEstimate(X1, X2, label, sc)
    
    val lamda=1
    val K=sc.parallelize(label).map { x =>(x,1)}.reduceByKey(_+_).count().toInt
    val s1=sc.parallelize(X1).map { x =>(x,1)}.reduceByKey(_+_).count().toInt
    val s2=sc.parallelize(X2).map { x =>(x,1)}.reduceByKey(_+_).count().toInt
    val sj=Array(s1,s2)
    val bEresult=bayesEstimate(X1, X2, label, sc, lamda, K, sj)
    
    println("极大似然估计:"+mEresult(0))
    println("贝叶斯估计:"+bEresult(0))    
  }
  
  /**极大似然估计
   * @param x1 特征列
   * @param x2 特征列
   * @param label 标签列
   * @return 标签 + 概率
   */
  def maxLikelihoodEstimate(X1:Array[Int],X2:Array[String],label:Array[Int],sc:SparkContext):Array[(Double, Double)]={
    //将Array数据源转为RDD
    val labelCount=sc.parallelize(label).map { x =>(x,1)}.reduceByKey(_+_).collect()
    
    //特征与label数据拼接
    val x1Label=ArrayBuffer[(Int,Int)]()
    val x2Label=ArrayBuffer[(String,Int)]()   
    for(i<-0 until label.length){
      x1Label.append((X1(i),label(i)))
      x2Label.append((X2(i),label(i)))
    } 
    val x1LabelCount=sc.parallelize(x1Label).map(x=>(x,1)).reduceByKey(_+_).collect()
    val x2LabelCount=sc.parallelize(x2Label).map(x=>(x,1)).reduceByKey(_+_).collect()
    
    //总记录数
    val totalRecords=label.length    
    //计算先验概率
    val proProb=ArrayBuffer[LabeledPoint]() 
    for(lb<-labelCount)  proProb.append(LabeledPoint(lb._1,Vectors.dense(lb._2/totalRecords.toDouble)))
    
    //计算条件概率
    val x1conProb=ArrayBuffer[LabeledPoint]() 
    val x2conProb=ArrayBuffer[(Double,(String,Int))]()
    
    for(lab<-labelCount){
      //针对每一个lab,计算特征X1的条件概率
      for(t1<-x1LabelCount){
        if(lab._1==t1._1._2) x1conProb.append(LabeledPoint((t1._2/lab._2.toDouble).formatted("%.3f").toDouble,Vectors.dense(t1._1._1,t1._1._2)))
      }
      //针对每一个lab,计算特征X2的条件概率
      for(t2<-x2LabelCount){
        if(lab._1==t2._1._2) x2conProb.append(((t2._2/lab._2.toDouble).formatted("%.3f").toDouble,(t2._1._1,t2._1._2)))
      }
    }
    //对于给定的测试数据,确定实例x的类
    val testData=Array(2,"S")
    //计算该数据对应的所有可能label的概率
    val testProb=ArrayBuffer[LabeledPoint]()
    for(lab<-proProb){
      val tx1=testData(0).toString().toDouble
      val tx2=testData(1).toString()
      var resultx1con=0.0
      var resultx2con=0.0
      for(xlcon<-x1conProb){
        if(lab.label == xlcon.features(1) && xlcon.features(0)==tx1) resultx1con=xlcon.label
      }
      
      for(x2con<-x2conProb){
        if(lab.label == x2con._2._2.toDouble && x2con._2._1.equals(tx2.toString())) resultx2con=x2con._1
      }
      testProb.append(LabeledPoint(lab.label,Vectors.dense(lab.features(0)*resultx1con*resultx2con)))
    }
    //取概率最大值的label作为最终的label
    val resultLabel=sc.parallelize(testProb).map { x =>(x.label,x.features(0))}.map{case(k,v)=>(v,k)}.sortByKey(false).collect().take(1)
    resultLabel
  }

  /**
   * 贝叶斯估计   
   * 贝叶斯估计在求先验概率和条件概率的时候,分别加上了lamda、K、lamda,避免了极大似然估计概率值为0的情况
   * @param x1 特征列
   * @param x2 特征列
   * @param label 标签列
   * @param lamda 贝叶斯估计参数(lamda=0时,极大似然估计 ;lamda=1时,拉普拉斯平滑估计)
   * @param K label种类数
   * @param sj sj(i)表示第i特征可能取值的个数
   * @return 标签 + 概率
   */
   def bayesEstimate(X1:Array[Int],X2:Array[String],label:Array[Int],sc:SparkContext,lamda:Int,K:Int,Sj:Array[Int]):Array[(Double, Double)]={
      //将Array数据源转为RDD
      val labelCount=sc.parallelize(label).map { x =>(x,1)}.reduceByKey(_+_).collect()
      
      //特征与label数据拼接
      val x1Label=ArrayBuffer[(Int,Int)]()
      val x2Label=ArrayBuffer[(String,Int)]()   
      for(i<-0 until label.length){
        x1Label.append((X1(i),label(i)))
        x2Label.append((X2(i),label(i)))
      } 
      val x1LabelCount=sc.parallelize(x1Label).map(x=>(x,1)).reduceByKey(_+_).collect()
      val x2LabelCount=sc.parallelize(x2Label).map(x=>(x,1)).reduceByKey(_+_).collect()

      //总记录数
      val totalRecords=label.length    
      //计算先验概率
      val proProb=ArrayBuffer[LabeledPoint]() 
      for(lb<-labelCount) proProb.append(LabeledPoint(lb._1,Vectors.dense((lb._2+lamda)/(totalRecords.toDouble+K*lamda))))
          
      //计算条件概率
      val x1conProb=ArrayBuffer[LabeledPoint]() 
      val x2conProb=ArrayBuffer[(Double,(String,Int))]()
      
      for(lab<-labelCount){
        //针对每一个lab,计算特征X1的条件概率
        for(t1<-x1LabelCount){
          if(lab._1==t1._1._2) x1conProb.append(LabeledPoint(((t1._2+lamda)/(lab._2.toDouble+lamda*Sj(0))).formatted("%.3f").toDouble,Vectors.dense(t1._1._1,t1._1._2)))
        }
        //针对每一个lab,计算特征X2的条件概率
        for(t2<-x2LabelCount){
          if(lab._1==t2._1._2) x2conProb.append((((t2._2+lamda)/(lab._2.toDouble+lamda*Sj(1))).formatted("%.3f").toDouble,(t2._1._1,t2._1._2)))
        }
      }
      //对于给定的测试数据,确定实例x的类
      val testData=Array(2,"S")
      //计算该数据对应的所有可能label的概率
      val testProb=ArrayBuffer[LabeledPoint]()
      for(lab<-proProb){
        val tx1=testData(0).toString().toDouble
        val tx2=testData(1).toString()
        var resultx1con=0.0
        var resultx2con=0.0
        for(xlcon<-x1conProb){
          if(lab.label == xlcon.features(1) && xlcon.features(0)==tx1) resultx1con=xlcon.label
        }
        
        for(x2con<-x2conProb){
          if(lab.label == x2con._2._2.toDouble && x2con._2._1.equals(tx2.toString())) resultx2con=x2con._1
        }
        testProb.append(LabeledPoint(lab.label,Vectors.dense(lab.features(0)*resultx1con*resultx2con)))
      }
      //取概率最大值的label作为最终的label
      val resultLabel=sc.parallelize(testProb).map { x =>(x.label,x.features(0))}.map{case(k,v)=>(v,k)}.sortByKey(false).collect().take(1)
      resultLabel       
   }
}
最终结果:
极大似然估计:(0.0666,-1.0)
贝叶斯估计:(0.06088023529411765,-1.0)
【机器学习】十大算法之一 “朴素贝叶斯” 朴素贝叶斯算法是一种监督学习的算法,通过计算条件概率来预测或分类数据。它的核心思想是贝叶斯定理,即后验概率等于先验概率与似然函数的乘积除以证据因子。在文本分类的应用中,假设我们有一个文档和一个文档分类,我们想要判断这个文档属于哪个分类。我们可以将文档中的每个词都看作一个特征,每个特征的值为 0 或 1,0 表示该词不在文档中,1 表示该词在文档中。这样,我们就可以将每个文档表示为一个特征向量。然后,我们可以使用朴素贝叶斯算法来计算每个分类的条件概率,并选择条件概率最大的分类作为文档所属的分类。 阅读详情

相关推荐

带你搞懂朴素贝叶斯算法原理

一、朴素贝叶斯是什么,怎么用? 贝叶斯定理:朴素贝叶斯定理体现了后验概率 P(y|x)P(y|x)P(y|x) 、先验概率 P(y)P(y)P(y) 、条件概率 P(x|y)P(x|y)P(x|y) 之间的关系: P(y|x)=P(x,y)P(x)=P(x|y)⋅P(y)P(x)P(y|x)=P(x,y)P(x)=P(x|y)⋅P(y)P(x)P(y|x)=\frac{P(x...

akira 4399

MLlib中的数据类型

http://spark.apache.org/docs/1.6.3/mllib-data-types.html Local Vector 有两种:dense、sparse For example, a vector (1.0, 0.0, 3.0) can be represented in dense format as [1.0, 0.0, 3.0] or in sparse f

u010745111的专栏 745

SQL Server 数据挖掘系列(二) - 微软朴素贝叶斯算法

从本系列的这篇开始我们来研究SQL Server所有内置算法的功能,我们按照它们的复杂性由浅入深地介绍,对于每一个算法,我们都将讨论它的功能、常见配置以及一些高级的可配置属性。今天先来介绍这几个算法当中最为简单的一个,微软朴素贝叶斯算法。 微软朴素贝叶斯算法是SAS中最简单的算法,通常用作理解数据基本分组的起点,说的简单一点就是处理数据的分类。这个算法之所以称为“朴素”,是因为所有属性的重要

徐悦 Tech Blog 8099

《Spark机器学习》笔记——Spark分类模型(线性回归、朴素贝叶斯、决策树、支持向量机)

一、分类模型的种类 1.1、线性模型 1.1.1、逻辑回归 1.2.3、线性支持向量机 1.2、朴素贝叶斯模型 1.3、决策树模型 二、从数据中抽取合适的特征 MLlib中的分类模型通过LabeledPoint(label: Double, features: Vector)对象操作,其中封装了目标变量(标签)和特征向量 从Kaggle/StumbleUpon evergreen分

陈杰 3038

机器学习分类算法之朴素贝叶斯

目录 朴素贝叶斯 背景介绍 概念及原理 贝叶斯算法 贝叶斯分类器 朴素贝叶斯应用场景 多项式贝叶斯 代码实现 高斯贝叶斯 其他模型尝试 优点缺点、参数总结 每文一语 朴素贝叶斯 背景介绍 20世纪80年代发展起来,最早由Judea Pearl于1986年提出,多用于专家系统,是处理不确定性 知识和推理问题的最流行的方法。 贝叶斯算法基于贝叶斯统计分析的数学原理,是概率论和图论相结合的产物。 朴素贝叶斯模型的泛化能力要比线性分类器(如LogisticRegress...

迷茫与徘徊只会让你陷入绝境,欢迎私信博主,带你开始提升变现价值! 1万+

白话机器学习算法理论+实战之朴素贝叶斯

1. 写在前面 如果想从事数据挖掘和数据分析的工作,掌握常用的机器学习算法是非常有必要的,比如我之前写过的一篇十大机器学习算法的小总结,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Adaboost等 无监督算法:聚类,降维,关联规则, PageRank等 为了详细的理解这些,曾经看过西瓜书,统计学习方法,机器学习...

Miracle8070 3435

Spark(十一) -- Mllib API编程 线性回归、KMeans、协同过滤演示

本文测试的Spark版本是1.3.1 在使用Spark的机器学习算法库之前,需要先了解Mllib中几个基础的概念和专门用于机器学习的数据类型 特征向量Vector: Vector的概念是和数学中的向量是一样的,通俗的看其实就是一个装着Double数据的数组 Vector分为两种,分别是密集型和稀疏型 创建方式如下: val array:Array[Double]...

weixin_30384217的博客 201

朴素贝叶斯算法原理详解

朴素贝叶斯的英文全称为NativeBayesian,Native的中文解释包括简单、朴素、天真、天然、天赋,所以我们也可以管它叫”天真贝叶斯”。开个玩笑啦。。。上一篇我们已经介绍过贝叶斯定理了,怎么又来了一个朴素贝叶斯呢,难道是说贝叶斯他老人家朴实无华,天天过着”竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生”的悠哉日子么?非也。。。那是苏轼的专属惬意,贝叶斯同志可没那境界。光看他这一连串的Title(英国神学家、数学家、数理统计学家和哲学家,还做过神甫),就感觉这货挺能折腾。 01朴素贝叶斯概述朴素贝叶斯法其实是指

白话机器学习 1445

Spark MLlib数据类型

MLlib支持几种数据类型:本地向量(local vectors),和存储在本地或者基于RDD的分布式矩阵(matrices)。底层的线性代数转换操作是基于Breeze和jblas实现的。在MLlib中有监督学习算法使用的训练样本数据类型被称为“带标签的点(labeled point)”。一、本地向量(Local Vector)   一个本地向量是由从0开始的整型下标和double型数值组成的,存储

dabokele的博客 4222

数据挖掘实战-基于朴素贝叶斯算法构建真假新闻分类模型

本实验数据集来源于Kaggle,合并后的数据集共有44898条,5个变量。关于数据集数据集分为两个文件:Fake.csv(23502 条假新闻文章)True.csv(21417 篇真实新闻文章)数据集列:标题:新闻文章的标题文本:新闻文章的正文主题:新闻文章的主题日期:新闻文章的发布日期。

m0_64336780的博客 1万+

FPGA以太网开发实战:YT8511 PHY芯片MDIO接口配置全流程(附Verilog代码)

本文详细介绍了FPGA以太网开发中YT8511 PHY芯片MDIO接口的配置全流程,包括MDIO接口技术解析、Verilog状态机设计、核心代码实现细节及实战调试经验。通过提供经过验证的Verilog代码和优化策略,帮助开发者快速掌握以太网PHY芯片配置技术,提升通信系统性能。

weixin_29184371的博客 233

算法小白的第一次尝试--LinearRegression

import org.apache.log4j.{Level, Logger} import org.apache.spark.ml.feature.VectorAssembler import org.apache.spark.ml.regression.{LinearRegression, LinearRegressionModel} import org.apache.spark.sql.{...

Java_Man_China的博客 9811

MatLab:数字图像处理实验

图像处理基本处理实验目的实验环境实验内容题目一代码结果题目二平移平移代码平移结果水平镜像水平镜像代码水平镜像结果垂直镜像垂直镜像代码垂直镜像结果放大放大代码放大结果缩小缩小代码缩小结果旋转旋转代码旋转结果双线性旋转旋转代码旋转结果 实验目的 1、熟悉并掌握MATLAB工具的使用;  2、实现图像的读取、显示、存储、平移、镜像、放大、缩小及旋转操作; 3、掌握常用的插值方法,并了解其优缺点。 实验环境 MatLab2016 实验内容 题目一 读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分别显

luoyao_的博客 9697

经典分类器——朴素贝叶斯算法

1. 算法原理 1.1 朴素贝叶斯算法原理 朴素贝叶斯算法(Naive Bayes) 是应用最为广泛的分类算法之一。它是基于贝叶斯定义和特征条件独立假设的分类器方法。由于朴素贝叶斯法基于贝叶斯公式计算得到,有着坚实的数学基础,以及稳定的分类效率。NB模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。朴素贝叶斯算法假设所有特征的出现相互独立互不影响,每一特征同等重要,又因为其简单,而且具有很好的可解释性一般。相对于其他精心设计的更复杂的分类算法,朴素贝叶斯分类算法是学习效率和分类效果较好的分类器

wc842809936的博客 1026

STM32 bootloader程序跳转到APP卡死在B_ENDP_ALIGN,原因:有未处理的中断。解决方法:重启系统

Bootloader和App中都用到了串口,定时器等,所以从Bootloader跳转App后未卡死。 后来写的另一个App里没有用到这几个外设,然后就是无限的卡死。 现在Bootloader中跳转App之前将已打开的外设关掉,再跳转至App就不再出现卡死。  if(((*(vu32*)(APPLICATION_ADDRESS+4))&0xFF000000)==0x08000000) {

jingzhixingyun的博客 7921

逆向实战:从x-mini签名到RPC调用,Frida动态分析小红书加密协议

本文通过实战案例,详细拆解了小红书App的加密协议逆向分析过程。从识别x-mini签名等关键参数入手,结合静态分析与Frida动态Hook技术,追踪到核心的RPC调用入口,并最终封装成可独立调用的RPC函数,为安全研究和协议理解提供了完整的技术路径。

moss5的博客 1035

R机器学习:朴素贝叶斯算法的理解与实操

那么这个时候算法就会告诉我们这个水果就是香蕉。上面就是算法的整个过程,细心的同学估计会有疑问橘子的概率为0,只是因为所有训练数据中结局为橘子的个案long这个特征没有出现真(某一个证据似然概率为0),朴素贝叶斯算法涉及到相乘的话造成了结果为0。在这个只有3个特征的数据集中看起来这个结果无可厚非,长橘子本身好像现实中也不存在。

Codewar的博客 1168

C语言试题一之计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和

1、题目 计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和 2、源代码实现 #include <stdio.h> #include <math.h> double fun1(int n) { if (n <= 0) return 0; int i; double sum = 0.0; for (i = 1; i <= n;...

码莎拉蒂 1万+

02-分类算法:knn、朴素贝叶斯、决策树和随机森林

sklearn数据集 一、数据集划分 机器学习一般的数据集会划分为两个部分: 训练数据:用于训练,构建模型 测试数据:在模型检验时使用,用于评估模型是否有效 语法:sklearn.model_selection.train_test_split x:数据集的特征值 y:数据集的标签值 test_size:测试集的大小,一般为float random_state:随机数种子,不同的种子会造成不同的随机 采样结果。相同的种子采样结果相同。 return:训练集特征值,测试集特征值,训练标签,测

weixin_46309026的博客 3666

未连接互联网的银河麒麟v10安装g++,各种报错,如何处理?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1805

IEC 60747-8 是由国际电工委员会(IEC)制定的标准,标题为《半导体器件 - 分立器件 - 第8部分:场效应晶体管》

IEC 60747-8 是由国际电工委员会(IEC)制定的标准,标题为《半导体器件 - 分立器件 - 第8部分:场效应晶体管》(Semiconductor devices - Discrete devices - Part 8: Field-effect transistors)。该标准详细规定了场效应晶体管(FETs)的测试方法,涵盖静态和动态特性测试,适用于多种类型的FET,包括结型场效应晶体管(JFETs)、绝缘栅场效应晶体管(MOSFETs,增强型和耗尽型)等。3. 标准其他部分(简要概述)

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 577

朴素贝叶斯算法总结

第一种:给定 x, 可通过直接建模 P(c |x) 来预测 c,这样得到的是"判别式模型" (discriminative models);第二种:也可先对联合概率分布 P(x,c) 建模,然后再由此获得 P(c |x), 这样得到的是"生成式模型" (generative models);显然,前面介绍的逻辑回归、决策树、都可归入判别式模型的范畴,还有后面学到的BP神经网络支持向量机等;在计算条件概率分布P(X=x∣Y=c_k)时,NB引入了一个很强的条件独立假设,解决这一问题的方法是采用贝叶斯估计。

qq_28309121的博客 385

2.1 amdgpu BO的类型和用途

AMDGPU驱动中,amdgpu_bo_create_user和amdgpu_bo_create_kernel分别用于创建用户空间和内核空间的buffer对象(BO)。用户空间BO支持元数据、tiling flags等属性,由GEM handle管理生命周期;内核BO则用于驱动内部资源如ringbuffer,自动pin并可选CPU映射。二者在返回类型、生命周期管理和使用场景上存在根本差异,前者面向图形渲染/AI等应用,后者服务于驱动内部任务。

图形/计算GPU的驱动与虚拟化技术分享园地 2213

朴素贝叶斯算法实现分类以及Matlab实现

开始 其实在学习机器学习的一些算法,最近也一直在看这方面的东西,并且尝试着使用Matlab进行一些算法的实现。这几天一直在看得就是贝叶斯算法实现一个分类问题。大概经过了一下这个过程:看书→\rightarrow算法公式推演→\rightarrow网上查询资料→\rightarrow进一步理解→\rightarrow搜集数据集开始尝试→\rightarrow写代码→\rightarrow调试→\rig

艾勇-sjtu的blog 5万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

朴素贝叶斯分类算法

1.分类算法:分类算法的内容是根据给定特征,求出它所属类别。 2.先验概率:就是根据以往的数据分析所得到的概率。 后验概率:是得到信息之后重新加以修正得到的概率。 3.贝叶斯决策:贝叶斯决策理论中,我们希望选择那个最小化总体期望损失的决策。决策损失的期望值通过对所有可能状态的加权平均来计算,其中权重是先验概率。

到山顶去看看! 1175

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

机器学习朴素贝叶斯算法

比如“敲声=清脆”测试例,训练集中没有该样例,因此连乘式计算的概率值为0,无论其他属性上明显像好瓜,分类结果都是“好瓜=否”,这显然不合理。之所以称之为“朴素”,是因为贝叶斯分类只做最原始、最简单的假设:所有的特征之间是相对独立的。其核心思想是通过考虑各个特征的概率来预测分类(即对于给出的待分类样本,计算该样本在每个类别下出现的概率,最大的就被认为是该分类样本所属于的类别。此文件负责模型的训练和预测工作,接收预处理后的数据和标签编码器,创建高斯朴素贝叶斯分类器,进行训练和预测,并将预测结果解码输出。

xiaoli2327的博客 1426

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: 算法小白的第一次尝试---KNN
下一篇: 算法小白的第一次尝试---ID3(Decision Tree)
小糖宝
博客等级 码龄9年 47粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值