资源简介
weka java 局部加权朴素贝叶斯 数据挖掘 机器学习
代码片段和文件信息
package weka.classifiers.xy;
import weka.classifiers.Classifier;
import weka.core.Instance;
import weka.core.Instances;
import weka.core.Utils;
public class LWNB extends Classifier{
int K=30;
public String[] getOptions() {
String [] options = new String [1];
options[0]=“K-number“;
return options;
}
public int getNumber(){
return K;
}
public void setNumber(int number){
K=number;
}
Instances train_set;
private int m_NumClasses;
private int m_numInstances;
private int m_numAttribute;
public void buildClassifier(Instances instances) throws Exception {
train_set=new Instances(instances);
m_NumClasses=instances.numClasses();
m_numInstances=instances.numInstances();
m_numAttribute=instances.numAttributes();
}
public double [] distributionForInstance(Instance instance)throws Exception {
double weight[]=new double[K];
double[]distances=calculateDistance(instancetrain_set);
double temp=0;
for(int i=0;i for(int j=i+1;j if(distances[i]>distances[j]){
temp=distances[i];
distances[i]=distances[j];
distances[j]=temp;
train_set.swap(i j);
}
}
}
Instances newinstances=new Instances(train_set0);
for(int i=0;i newinstances.add(train_set.instance(i));
}
double total_weight=0;
for(int i=0;i distances[i]/=distances[K-1];
distances[i]=1-distances[i];
total_weight+=distances[i];
}
for(int i=0;i weight[i]=(distances[i]*K)/total_weight;
}
m_numInstances=newinstances.numInstances();
m_NumClasses=newinstances.numClasses();
double [] probs=new double[m_NumClasses];//p(c|a)
double prob_c[]=new double[m_NumClasses];//p(c)
for(int i=0;i double t_same=0;
double t_weight=0;
for(int j=0;j if((int)newinstances.instance(j).classValue()==i){
t_same+=weight[j];
}
t_weight+=weight[j];
}
prob_c[i]=((1+t_same)/(m_NumClasses+t_weight));
}
// for(int i=0;i// prob_c[i]/=m_NumClasses;
// }
double[][]class_attri=new double[m_numAttribute-1][m_NumClasses];//p(a|c)
for(int i=0;i int num_attri=newinstances.attribute(i).numValues();
double t_same=0;
double t_weight=0;
for(int j=0;j for(int k=0;k if((int)instance.value(i)==(int)newinstances.instance(k).value(i)&&(int)newinstances.instance(k).classValue()==j){
t_same+=weight[k];
}
if((int)newinstances.instance(k).classValue()==j){
t_weight+=weight[k];
}
}
class
- 上一篇:本科毕业论文java外文翻译
- 下一篇:广工JAVA作业报告
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论