




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上简单朴素贝叶斯分类器的思想与算法分析在数据仓库和数据挖掘应用中,分类是一种非常重要的方法分类的概念是在已有数据的基础上学会一个分类函数或构造出一个分类模型,即我们通常所说的分类器(Classifier)该函数或模型能够把数据集合中的数据记录映射到给定类别中的某一个值,从而可以应用于数据预测目前,分类的主要算法有贝叶斯算法、决策树算法(如ID3、C4.5等)、规则推导、人工神经网络、最近邻算法、支持向量机等等这些算法在许多现实数据集合上具有较好的预测精度其中朴素贝叶斯算法具有良好的可解释性等,在实践中的应用最为广泛朴素贝叶斯算法是基于统计理论的方法,它能够预测所属类别的
2、概率简单朴素贝叶斯分类器假设一个指定类别中各属性的取值是相互独立的这一假设称为给定类别条件下的独立性(Class Conditional Independence)假设,它可以有效减少在构造分类器时所需要的计算量简单朴素贝叶斯算法的分类模型是基于Bayes定理的,下面就简单介绍一下Bayes定理设X为一个类别未知的数据样本,H为某个假设,C表示类别集合,若数据样本X属于一个特定的类别c,那么分类问题就是决定P(H/X),即在获得数据样本X时,H假设成立的概率由于P(H) , P(X), P(X/H)的概率值可以从(供学习使用的)数据集合中得到,Bayes定理描述了如何根据P(H) , P(X)
3、, P(X/H)计算获得的P(H/X),有关的具体公式定义描述如下:(1)简单朴素贝叶斯分类器进行分类操作的步骤说明如下:1每个数据样本均是由一个n维特征向量X=x1,x2, , xn来描述其n个属性(A1, A2, , An)的具体取值2假设共有m个不同类别,C1, C2, , Cn给定一个未知类别的数据样本X,分类器在已知样本X的情况下,预测X属于事后概率最大的那个类别也就是说,朴素贝叶斯分类器将未知类别的样本X归属到类别Ci,当且仅当:P(Ci/X)> P(Cj/X) 其中1jm,ji也就是P(Ci/X)最大其中的类别Ci就称为最大事后概率的假设,根据Bayes定理可知,(2)3由
4、于P(X)对于所有的类别均是相同的,所以,要使公式(2)取得最大值,只需要P(X/Ci)P(Ci)取最大即可类别的事前概率P(Ci)可以通过公式P(Ci)=si/s进行估算,其中si为训练样本集合类别Ci的个数,s为整个训练样本集合的大小4根据所给定包含多个属性的数据集,直接计算P(X/Ci)的运算量是非常大的为实现对P(X/Ci)的有效估算,朴素贝叶斯分类器通常都是假设各类别是相互独立的即各属性的取值是相互独立的即:(3)可以根据训练数据样本估算P(X1/Ci),P(X2/Ci),P(Xn/Ci)的值,具体处理方法说明如下:若Ak是名称型属性,就有P(Xk/Ci)=sik/si,这里sik为
5、训练样本中类别为Ci且属性Ak的取值为vk的样本数,si为训练样本中类别为Ci的样本数若Ak是数值型属性,那么假设属性具有高斯分布,概率P(Xk/Ci)就用概率密度f(Xk/Ci)代替,即(4)其中, g(xk,ci,ci)为属性Ak的高斯规范密度函数,ci,ci为训练样本中类别为Ci的属性为Ak的均值和方差数值型属性的均值计算公式为: xmean=(x1+x2+xn)/n,其中x1, x2, , xn表示数值型属性的值,n表示实例个数数值型属性的方差计算公式为:(5)其中x1, x2, , xn表示数值型属性的值,xmean表示方差,n表示实例个数5为预测一个样本X的类别,可对每个类别Ci估
6、算相应的P(X/Ci)P(Ci),样本X归属到类别Ci,当且仅当:P(Ci/X)> P(Cj/X) 其中1jm, ji也可通过求百分比percent(Ci)= P(Ci/X)/P(Ck/X),百分比最大值对应的类标就位样本X的类别下面就以有关天气问题的数据为例仔细介绍一下朴素贝叶斯分类器进行分类的过程有关天气的数据如下表所示: outlook(类型)temperature(温度)humidity(湿度)windy(风)play(玩)sunny8585FalseNosunny8090TrueNoovercast8386FalseYesrainy7096FalseYesrainy6880Fa
7、lseYesrainy6570TrueNoovercast6465TrueYessunny7295FalseNosunny6970Falseyesrainy7580Falseyessunny7570Trueyesovercast7290Trueyesovercast8175Falseyesrainy7191Trueno概率的表示方法:P(yes/sunny,80,76,false)=0.25就表示在outlook=sunny, temperature=80, humidity=76,windy=false的条件下paly=yes条件概率为0.251求得名称型属性的后验概率以P(sunny/ye
8、s)为例进行详细说明首先,计算类标为yes的实例个数为9个,然后计算类标为yes并且outlook属性为sunny的实例个数为2,所以P(sunny/yes)=2/9,这是很自然的事情,为了避免有时该概率值为0,需要对该概率值进行标准化:即分子加上属性outlook值的个数,也就是3(因为outlook的值有sunny, rainy, overcast三个),分母加上1,标准化后的条件概率P(sunny/yes)=(2+1)/(9+3)=3/12重复上述步骤,可得属性outlook的后验概率为:P(sunny/yes)=3/12P(overcast/yes)=5/12P(rainy/yes)=
9、4/12P(sunny/no)=4/8P(overcast/no)=1/8P(rainy/no)=3/8属性windy的后验概率为:P(false/yes)=7/11P(false /yes)=4/11P(false/no)=3/7P(false /no)=4/72求得数值型属性的均值数值型属性的均值计算公式为:xmean=(x1+x2+xn)/n,其中x1, x2, , xn表示数值型属性的值,n表示实例个数下面就以求在play=yes的条件下数值型属性temperature的均值为例详细说明求解过程:mean- temperature(yes)=(83+70+68+64+69+75+75+
10、72+81)/9=73同理:mean- temperature(no)=(85+80+65+72+71)/5=74.6mean- humidity(yes)=(86+96+80+65+70+80+70+90+75)/9=79.1mean- humidity(no)=(85+90+70+95+91/5=86.23求得数值型属性的方差数值型属性的方差计算公式为:(6)其中x1, x2, , xn表示数值型属性的值,xmean表示方差,n表示实例个数下面就以求在play=yes的条件下数值型属性temperature的方差为例详细说明求解过程Devs-temperature(yes)=(83-73)
11、2+(70-73)2+(68-73)2+(64-73)2+(69-73)2+(75-73)2+(75-73)2+(72-73)2+(81-73)2)/9=6.2同理,可求得Devs-temperature(no)=7.9Devs-humidity(no)=10.2Devs-humidity(no)=9.74求得类属性的先验概率以P(yes)为例进行详细说明首先计算数据集的实例总数为14,然后计算类标为yes的实例总数为9,所以P(yes)=9/14,为避免有时该概率值为0,需要对该概率值进行标准化:即分子加上类属性play值的个数,也就是2(因为play的值有yes, no二个),分母加上1,
12、标准化后的条件概率P(yes)=(9+1)/(14+2)=10/16,同理可求得P(no)=(5+1)/(14+2)=6/165根据上述参数计算待分类实例属于每个类的概率,选择概率值最大的类作为待分类实例的类标下面以实例(sunny,66,90,true)为例说明一下其分类过程:首先求P(yes/sunny,66,90,true),根据bayes定理和条件独立性假设,P(yes/sunny,66,90,true)=(P(yes)P(sunny/yes)P(true/yes)f(66/yes)f(90/yes)/P(sunny,66,90,true)由于P(sunny,66,90,true)为常
13、数,最后求类的百分比的时候可以抵消,可以不加考虑,而P(66/yes)可用概率密度f(66/yes)来代替,这对最后的求类的百分比也没有影响,所以我们只需求P(yes)P(sunny/yes)P(true/yes) f(66/yes) f(90/yes)而P(yes),P(sunny/yes),P(true/yes)已经求得,根据正态分布假设,f(66/yes), f(90/yes) 也很容易求得(6)同理可求得f(90/yes)=0.0221,所以:P(yes)P(sunny/yes)P(true/yes) f(66/yes) f(90/yes)=10/16×3/12×0
14、.034×0.0221×4/11=0.重复上述步骤可得:f(66/no)=0.0291,f(90/no)=0.0380,因而有:P(no)P(sunny/no)P(true/no) f(66/no) f(90/no)=6/16×4/8×4/7×0.0291×0.0380=0.00018所以,待分类实例属于类yes的百分比为probability-of-yes=0./(0.+0.)=26.7%probability-of-no=0./(0.+0.)=73.3%因此,待分类实例的类属性值为no基于本文所述ID3的基本思想,ID3的具体算法
15、是:下面我们介绍一下其算法实现的有关细节我们所介绍的ID3程序是在weka系统下利用java语言编写的分类器程序该程序主要包括以下几个方法:globalInfo()返回该分类器的描述字符串BuildClassifier(Instances instances)BuildClassifier()方法从一个训练数据集合instances构造一个分类器求出所有名称型属性的后验概率,类属性的先验概率,数值属性的均值和方差,为后来的分类工作做准备distributionForInstance (Instance instance)该方法计算待分类实例instance属于各个类标的百分比,并且将各个百分比
16、数值存于一个数组中,最后返回该数组toString()把分类器的参数(均值,方差,各先验概率,各后验概率)以字符串的形式返回normalDens(double x, double mean, double stdDev)该方法用于根据正态分布(均值为mean,方差为stdDev)计算数值型属性当属性值为x时的概率密度Main()当类从命令行被执行时,就会调用main()方法它只是用所给的命令行选项告诉Weka的Evaluation类来评估朴素贝叶斯,并且打印所得到的数组完成这个功能的一行表达式包括在try-catch声明中try-catch声明用于发现Weka例程或其它Java方法中抛出的各种
17、异常附一:朴素贝叶斯源程序及其注解:/* This program is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.* This program is distributed in the
18、hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the* GNU General Public License for more details.* You should have received a copy of the GNU General Public License* along with this program; if not
19、, write to the Free Software* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA./* 本程序为免费软件;你可以通过免费软件中心的发布的GNU公共许可的任何版本下下重写或者修改它.* 开发本程序的目的是是希望它是有用的,但没有任何授权,甚至没有潜在的商用或其它特殊目的的授权.* 想要了解更多细节,请参阅GNU公共许可.*在拿到程序的同时,你应该收到GNU公共许可;假如没有的话,请致函免费软件中心Inc., 675 MassAve, Cambridge, MA 02139, USA./* NaiveBay
20、esSimple.java* Copyright (C) 1999 Eibe Frank*/package weka.classifiers.bayes;import weka.classifiers.Classifier; import weka.classifiers.Evaluation; import java.io.*;import java.util.*;import weka.core.*;/* Class for building and using a simple Naive Bayes classifier.* Numeric attributes are modelle
21、d by a normal distribution. For more* information, see<p>* Richard Duda and Peter Hart (1973).<i>Pattern* Classification and Scene Analysis</i>. Wiley, New York.* author Eibe Frank (eibecs.waikato.ac.nz)* version $Revision: 1.15 $*/*创建和使用Naive Bayes分类器的类*数值型属性均符合正态分布*/public class
22、NaiveBayesSimple eXtends Classifier /分类器的构造函数 public NaiveBayesSimple() try jbInit(); /分类器初始化 catch (EXception eX) eX.printStackTrace(); /创建分类器对象时若出现异常则输出堆栈信息 /* All the counts for nominal attributes. 所有名称型属性的计数数组*/protected double m_Counts; /*属于每个类每个名称型属性的每个取值的个数数组,其中第一维表示类名,第二维表示属性名,第三维表示属性值,比如m_C
23、ountsyesoutlooksunny*/* The means for numeric attributes. 数值型属性的均值数组*/protected double m_Means; /*数值型属性的均值数组,其中第一维表示类名, 第二维表示属性名,比如m_Meansnotemperature, 公式为:(7)*/* The standard deviations for numeric attributes.数值型属性的标准差数组 */protected double m_Devs; /*数值型属性的标准差数组,其中第一维表示类名,第二维表示属性名,比如m_Devsnotempera
24、ture,公式为:(8)*/* The prior probabilities of the classes. 每个类的先验概率数组 */protected double m_Priors; /每个类的先验概率,第一维表示类名,比如m_Prioryes/* The instances used for training. 用于训练的实例*/protected Instances m_Instances; /定义用于训练的实例/* Constant for normal distribution. 正态分布常量*/protected static double NORM_CONST = Math
25、.sqrt(2 * Math.PI); /正态分布常量/* Returns a string describing this classifier* return a description of the classifier suitable for* displaying in the eXplorer/eXperimenter gui*/*返回该分类器的描述字符串*返回适合于图形界面用户的分类器的描述*/方法一:public String globalInfo() /返回该分类器的描述字符串 return "Class for building and using a simp
26、le Naive Bayes classifier." +"Numeric attributes are modelled by a normal distribution. For more " +"information, seenn" +"Richard Duda and Peter Hart (1973). Pattern " +"Classification and Scene Analysis. Wiley, New York."/* Generates the classifier.* pa
27、ram instances set of instances serving as training data* eXception EXception if the classifier has not been generated successfully*/* 构造分类器* 参数instances表示训练例集合* 若分类器不正正常构造,则出现异常提示*/方法二:public void buildClassifier(Instances instances) throws EXception / 构造分类器 int attIndeX = 0; /属性索引 double sum; /属于每个
28、类的每个名称型属性的总个数 if (instances.checkForStringAttributes() throw new UnsupportedAttributeTypeEXception("Cannot handle string attributes!"); /若实例集合为string型则提示异常 if (instances.classAttribute().isNumeric() throw new UnsupportedClassTypeEXception("Naive Bayes: Class is numeric!"); /若实例集合
29、的类属性为数值型则提示异常 m_Instances = new Instances(instances, 0); /空实例 / Reserve space为数组m_Counts,m_Means,m_Devs,m_Priors分配空间 m_Counts = new doubleinstances.numClasses() instances.numAttributes() - 10; /*属于每个类每个名称型属性的每个取值的个数数组,其中第一维表示类名,第二维表示属性名,第三维表示属性值,instances.numClasses()返回实例集的类值的个数,instances.numAttribu
30、tes()返回实例集的属性个数,包括类属性,这也是第二维减一的原因,第三维之所以为零是 因为后续分配空间的方便*/ m_Means = new doubleinstances.numClasses() instances.numAttributes() - 1;/*数值型属性的均值数组,其中第一维表示类名, 第二维表示属性名,instances.numClasses()返回实例集的类值的个数, instances.numAttributes()返回实例集的 属性个数,包括类属性,这也是第二维减一的原因, */ m_Devs = new doubleinstances.numClasses()i
31、nstances.numAttributes() - 1;/*数值型属性的标准差数组,其中第一维表示类名, 第二维表示属性名,instances.numClasses()返回实例集的类值的个数, instances.numAttributes()返回实例集的 属性个数,包括类属性,这也是第二维减一的原因, */ m_Priors = new doubleinstances.numClasses(); /*每个类的先验概率数组,第一维表示类名,instances.numClasses()返回实例集的类值的个数, */第一步: Enumeration enu = instances.enumera
32、teAttributes(); /返回一个实例集的属性集 while (enu.hasMoreElements() /遍历实例集的每个属性,为 m_Counts分配空间 Attribute attribute = (Attribute) enu.neXtElement(); /循环从属性集中取每个属性 if (attribute.isNominal() /属性若为名称型属性for (int j = 0; j < instances.numClasses(); j+) /遍历类 m_CountsjattIndeX = new doubleattribute.numValues();/*为属
33、于每个类的每个名称型属性的每个取值的个数数组m_Counts预留空间,attribute.numValues()返回属性attibute的值的个数. */ else /属性若为数值型属性for (int j = 0; j < instances.numClasses(); j+) /遍历类 m_CountsjattIndeX = new double1; /若该属性不为名称型属性,则数组初始化为长度为1的一维数组 attIndeX+; /属性索引加一,执行下一个属性 第二步: Enumeration enu = instances.enumerateAttributes(); /返回一个
34、实例集的属性集 while (enu.hasMoreElements() /遍历实例集的每个属性,为 m_Counts分配空间 Attribute attribute = (Attribute) enu.neXtElement(); /循环从属性集中取每个属性 if (attribute.isNominal() /属性若为名称型属性for (int j = 0; j < instances.numClasses(); j+) /遍历类 m_CountsjattIndeX = new doubleattribute.numValues(); /*为属于每个类的每个名称型属性的每个取值的个数
35、数组m_Counts预留空间,attribute.numValues()返回属性attibute的值的个数. */ else /属性若为数值型属性for (int j = 0; j < instances.numClasses(); j+) /遍历类 m_CountsjattIndeX = new double1; /若该属性不为名称型属性,则数组初始化为长度为1的一维数组 attIndeX+; /属性索引加一,执行下一个属性 /*Compute means 计算数值型属性的均值,公式为: (9)*/第三步: Enumeration enumAtts = instances.enumer
36、ateAttributes(); /返回实例集对应的属性的集合 attIndeX = 0; /属性索引,用于循环遍历属性 while (enumAtts.hasMoreElements() /遍历属性,计算数组 m_Means Attribute attribute = (Attribute) enumAtts.neXtElement(); /取得一个属性 if (attribute.isNumeric() /该属性为数值型属性则继续执行for (int j = 0; j < instances.numClasses(); j+) /遍历类标,计算数组 m_Meansif (m_Coun
37、tsjattIndeX0 < 2) /若该类值对应的数值型属性值个数小于2,则抛出异常 throw new EXception("attribute " + () +": less than two values for class " +instances.classAttribute().value(j); m_MeansjattIndeX /= m_CountsjattIndeX0; /求得该数值型属性的每个类标对应的均值 attIndeX+; /属性索引加1,继续执行下一属性 第四步: /* Compute st
38、andard deviations 计算数值型属性的标准差,公式为:(10)*/ enumInsts = instances.enumerateInstances(); /取得实例集合 while (enumInsts.hasMoreElements() /*遍历实例集合,计算数值型属性的m_Devs,本循环的结果是在m_Devs存放方差计算公式中的分子,即偏移量的平方和*/ Instance instance = (Instance) enumInsts.neXtElement(); /从实例集合中取出一个实例 if (!instance.classIsMissing() /若该实例类信息完
39、整的话则继续执行enumAtts = instances.enumerateAttributes(); /取得实例集对应的的属性集attIndeX = 0; /属性索引,用于遍历属性while (enumAtts.hasMoreElements() /遍历属性,计算数值型属性的m_DevsAttribute attribute = (Attribute) enumAtts.neXtElement(); /从属性集合中取得一个属性if (!instance.isMissing(attribute) / 若该实例的该属性没有缺损则继续执行 if (attribute.isNumeric() /若该
40、属性为数值型属性则继续执行 m_Devs(int)instance.classValue()attIndeX +=(m_Means(int)instance.classValue()attIndeX- instance.value(attribute)*(m_Means(int)instance.classValue()attIndeX- instance.value(attribute); /求得偏移量的平方和,即方差就算公式中的分子 attIndeX+; /属性索引加1,继续执行下一属性 enumAtts = instances.enumerateAttributes(); /取得实例集对
41、应的属性集合 attIndeX = 0; /属性索引,用于遍历属性 while (enumAtts.hasMoreElements() /遍历属性,计算每个数值型属性的方差,结果存于 m_Devs Attribute attribute = (Attribute) enumAtts.neXtElement(); /从属性集合中取得一个属性 if (attribute.isNumeric() /若该属性为数值型则继续执行for (int j = 0; j < instances.numClasses(); j+) /遍历类,求得该数值型的每个类值的标准差 if (m_DevsjattInd
42、eX <= 0) /若偏移量的平方和为0,则抛出异常,否则计算m_Devs throw new EXception("attribute " + () +": standard deviation is 0 for class " +instances.classAttribute().value(j); else / 为什么(_CountsjattIndeX0 - 1) m_DevsjattIndeX /= m_CountsjattIndeX0 - 1; /*利用偏移量的平方和除以数值型属性的个数减1求得标准差的平方*
43、/ m_DevsjattIndeX = Math.sqrt(m_DevsjattIndeX); /对上一步的结果开方求得标准差 attIndeX+; /属性索引值加上1,继续执行下一属性 第五步: / Normalize counts 标准化数组m_Counts,即把原来个数数组m_Counts中的个数转化为概率数组m_Counts enumAtts = instances.enumerateAttributes(); /取得属性集合 attIndeX = 0; /属性索引,用于遍历属性 while (enumAtts.hasMoreElements() /遍历属性,求得概率数组m_Count
44、s Attribute attribute = (Attribute) enumAtts.neXtElement(); /从属性集合中取得一个属性 if (attribute.isNominal() /若属性为名称型属性则继续执行for (int j = 0; j < instances.numClasses(); j+) /遍历类,求得概率数组m_Counts sum = Utils.sum(m_CountsjattIndeX); /*计算该类对应的实例的总数,函数Utils.sum(m_CountsyesOutlook)返回属于"yes"类的实例个数*/ for
45、(int i = 0; i < attribute.numValues(); i+) /遍历该属性对应的属性值 m_CountsjattIndeXi = (m_CountsjattIndeXi + 1) / (sum + (double)attribute.numValues(); /*计算该类值对应的该属性值的概率(分子为 m_Counts+1,分母为该类值对应的实例的总数加上属性值的个数),比如m_CountsyesOutlooksunny=(m_CountsyesOutlooksunny+1)/(sum + 属性值的个数) */ attIndeX+; /属性索引加1,继续执行下一属
46、性 第六步: / Normalize priors 标准化先验概率 sum = Utils.sum(m_Priors); /计算实例的总数 for (int j = 0; j < instances.numClasses(); j+) /遍历类 m_Priorsj = (m_Priorsj + 1) / (sum + (double)instances.numClasses(); /*计算每个类的先验概率(分子为每个类的实例个数加1,分母为实例集的实例总数加上类标的个数) */ /* * Calculates the class membership probabilities for
47、the given test instance. * * param instance the instance to be classified * return predicted class probability distribution * eXception EXception if distribution can't be computed */ /* *计算给定测试例的类概率分布 * *参数instance表示待分类的实例 *返回预测概率分布表 *若预测概率分布不能计算的话返回异常 */方法三:public double distributionForInstance
48、(Instance instance) throws EXception double probs = new doubleinstance.numClasses(); /预测概率百分比数组,该数组将要存放的是待定实例属于每个类的概率所占的百分比 int attIndeX; /属性标记,用于遍历属性 for (int j = 0; j < instance.numClasses(); j+) /遍历每个类,计算probs probsj = 1; /对数组probs进行初始化 Enumeration enumAtts = instance.enumerateAttributes(); /取
49、得待定实例的属性集合 attIndeX = 0; /属性标记置0,将要开始遍历 while (enumAtts.hasMoreElements() /属性遍历Attribute attribute = (Attribute) enumAtts.neXtElement(); /从属性集合中取得一个属性if (!instance.isMissing(attribute) /若给定实例的属性没有缺损则继续执行 if (attribute.isNominal() /若该属性为名称型属性则继续执行 probsj *= m_CountsjattIndeX(int)instance.value(attrib
50、ute); /该属性为名称型属性就直接乘以该类该属性值的概率m_Counts(上面已经计算) else probsj *= normalDens(instance.value(attribute), m_MeansjattIndeX, m_DevsjattIndeX); /该属性为数值型属性就乘以该类该属性值对应的概率密度(利用正态分布概率密度公式求出)attIndeX+; /属性值加1,继续遍历下一属性 probsj *= m_Priorsj; /用probsj乘以先验概率m_Priorsj,结果表示bayias公式的分子 / Normalize probabilities 标准化待定实例属
51、于每个类的概率所占的百分比 Utils.normalize(probs); /*求得待定实例属于每个类的概率所占的百分比,即probsj=probsj/(probs0+probs1+probs2+.+) */ return probs; /返回 /* * Returns a description of the classifier. * * return a description of the classifier as a string. */ /* *返回分类器的描述 * * */方法四:public String toString() if (m_Instances = null)
52、return "Naive Bayes (simple): No model built yet." /*若实例集为空,则返回"Naive Bayes (simple): No model built yet." */ try StringBuffer teXt = new StringBuffer("Naive Bayes (simple)"); /建立字符串缓冲区,用于描述分类器 int attIndeX; /建立属性索引索引 for (int i = 0; i < m_Instances.numClasses(); i+) /遍历类teXt.append("nnClass " + m_Instances.classAttribute().value(i) + ": P(C) = " + Utils.doubleToString(m_Priorsi, 10, 8) + "nn"); /在字符串缓冲区存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中小学班级管理经验交流汇编
- 小学语文词语造句训练题库
- 数据中心运维管理规范汇编
- 幼儿园观察记录与分析模板
- 建筑节能设计方案示范文本
- 小学二年级数学长度单位教学练习
- 班级课程进度安排表模板下载
- 水电工程施工交底标准文档
- 中医药学专业生药学复习题库
- 公立学校教师绩效考核操作指南
- 统编语文四年级上册第六单元教材解读及集体备课
- 《学习指导与练习 语文 基础模块 上册》参考答案
- 马工程《文学理论》
- 统编版(2024新版)七年级上册道德与法治各单元教材分析 讲义
- 课程纲要(知识清单)人教版美术五年级上册
- 医学信息集成标准与技术 课件 第六章 医疗健康信息集成规范IHE
- (正式版)QC∕T 1207-2024 燃料电池发动机用空气压缩机
- 2024年辽宁沈阳市近海控股集团招聘24人公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 【幼儿角色游戏中教师的有效介入的方法及实施效果探析11000字(论文)】
- 事业单位工作人员调动申报表
- 《审计实务》第6讲 函证程序(下)
评论
0/150
提交评论