资源简介
该程序实现了基于正域的属性约简方法和基于属性重要度的属性约简算法
代码片段和文件信息
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
import java.io.*;
//决策表DT=(UCUDVf)类声明
public class DecisionTable implements Cloneable
{
public static int iNo;
//缺省构造方法
public DecisionTable()
{
}
//由限定格式文件FileName创建决策表
public DecisionTable(String fileName)
{
try
{
File file = new File(fileName);
Scanner in = new Scanner(file);
String[] temp;
while(in.hasNextLine())
{
temp = in.nextLine().split(“ |“);
if(temp[0].equals( “@conditionAttribute“))
{
for(int i=1; i {
this.conditionSet.add(temp[i].charAt(0));
}
}
else if(temp[0].equals(“@decisionAttribute“))
{
for(int i=1; i {
this.decisionSet.add(temp[i].charAt(0));
}
}
else if(temp[0].equals(“%“) || temp[0].equals(“@data“))
{
continue;
}
else if(temp[0].equals(“@end“))
{
break;
}
else if(Integer.parseInt(temp[0]) < Integer.MAX_VALUE)
{
MyElement e = new MyElement();
int i = 0;
ArrayList C = new ArrayList(0);
ArrayList D = new ArrayList(0);
for(; i< this.conditionSet.size(); i++)
{
C.add(Integer.parseInt(temp[i]));
}
for(int j=0; j {
D.add(Integer.parseInt(temp[i+j]));
}
e.setCondition(C);
e.setDecision(D);
this.addElement(e);
}
else
{
System.out.println(“数据数目有误,请检查“);
break;
}
}
}
catch(IOException e)
{
System.out.print(“不能打开文件“ + fileName + “ “ + e.getMessage());
}
}
//实现克隆功能
public DecisionTable clone() throws CloneNotSupportedException
{
DecisionTable cloned = new DecisionTable();
cloned.conditionSet = (ArrayList)this.conditionSet.clone();
cloned.decisionSet = (ArrayList)this.decisionSet.clone();
ArrayList arrayElements = new ArrayList(0);
MyElement tempElement = new MyElement();
Iterator itElements = this.DT.iterator();
while(itElements.hasNext())
{
tempElement = itElements.next().clone();
arrayElements.add(tempElement);
}
cloned.DT = arrayElements;
return cloned;
}
//设置条件属性集
void setConditionSet(ArrayList condition)
{
this.conditionSet = condition;
}
//设置决策属性集
void setDecisionSet(ArrayList decision)
{
this.decisionSet = decision;
}
//把决策表当前位置为index的样本编号设置为newU
void setU(int index int newU)
{
MyElement temp = DT.get(index);
temp.setU(newU);
DT.set(indextemp);
}
//返回条件属性集
ArrayList getConditionSet()
{
return this.conditionSet;
}
//返回决策属性集
ArrayList getDecisionSet()
{
return this.decisionSet;
}
//返回决策表元素
ArrayList getDT()
{
return DT;
}
//返回编号为u的样本
MyElement getEl
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-01-21 18:33 RoughSet\
文件 232 2009-02-16 09:37 RoughSet\.classpath
文件 384 2009-02-16 09:37 RoughSet\.project
目录 0 2016-01-21 18:33 RoughSet\bin\
文件 10350 2015-12-05 09:19 RoughSet\bin\DecisionTable.class
文件 4420 2015-12-05 09:19 RoughSet\bin\MyElement.class
文件 4823 2015-12-05 09:19 RoughSet\bin\MySet.class
文件 2954 2015-12-05 09:19 RoughSet\bin\Test.class
文件 431 2009-02-24 16:30 RoughSet\bin\testData.dt
文件 40 2009-02-24 16:27 RoughSet\bin\说明
目录 0 2016-01-21 18:33 RoughSet\src\
文件 11798 2009-02-22 15:25 RoughSet\src\DecisionTable.java
文件 3792 2009-02-22 15:24 RoughSet\src\MyElement.java
文件 3973 2009-02-24 12:25 RoughSet\src\MySet.java
文件 1989 2009-02-24 16:34 RoughSet\src\Test.java
文件 431 2009-02-24 16:30 RoughSet\src\testData.dt
文件 40 2009-02-24 16:27 RoughSet\src\说明
评论
共有 条评论