📄 readtest.java
字号:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class ReadTest {
private String filePath = "E:/data_set_ALL_AML_test.txt";
private String dataString;
private int[][] temp = new int[2][34];
public void Read_in_train(){
try{
FileInputStream fis = new FileInputStream(filePath);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
int j = 0;
//从第二行开始
br.readLine();
while((dataString = br.readLine()) != null){
StringTokenizer column = new StringTokenizer(dataString," ");
//从第三列开始
column.nextToken();
column.nextToken();
int i = 0;
while(column.hasMoreTokens()){
DecisionTree.test[i][j] = Integer.parseInt(column.nextToken());
i++;
}
j++;
}
}catch(Exception e){
System.out.println(e);
}
//创建目标属性,0代表ALL,1代表AML
for(int i = 0;i< 34;i++){
if(i<20)
DecisionTree.test[i][7129] = 0;
else
DecisionTree.test[i][7129] = 1;
}
}
//*******************************************
public void Make_boolean(){
/*
ReadTrain readtrain = new ReadTrain();
double last_entropy = readtrain.comput_entropy(10,14,34.0);
for( int j=0;j<7129;j++){
for(int i = 0;i<34;i++){
temp[0][i] = DecisionTree.test[i][j];
temp[1][i] = DecisionTree.test[i][7129];
}
//定义交换临时空间
int a;
int b;
//对temp第一行进行冒泡排序
for(int i = 0;i < 33;i++)
for(int k = 0;k < 33-i;k++){
if(temp[0][k] > temp[0][k+1]){
a = temp[0][k+1];
b = temp[1][k+1];
temp[0][k+1] = temp[0][k];
temp[1][k+1] = temp[1][k];
temp[0][k] = a;
temp[1][k] = b;
}
}
//求阈值
//记录最大阈值
double max_value = 0.0;
double current = 0.0;
//定义阈值
double yuzhi = 0.0;
int positive = 0; //目标属性1的数量
int minus = 0;//目标属性0的数量
double entropy_1;
double entropy_2;
for(int i = 0;i<33;i++){
if(temp[1][i] == 1)
positive++;
else
minus++;
if( temp[1][i] != temp[1][i+1]){
entropy_1 = readtrain.comput_entropy(positive,minus,(double)(i+1));
entropy_2 = readtrain.comput_entropy(11-positive,27-minus,(double)(37-i));
current = last_entropy - entropy_1*(i+1)/38 - entropy_2*(37-i)/38;
//System.out.println(current);
if(current > max_value){
max_value = current;
yuzhi = ( temp[0][i] + temp[0][i+1] )/2;
if(max_value > max_max_value){
//记录不同属性最大的信息增益,记住他的位置即可
max_max_value = max_value;
root = j;
}
}
}
}
for(int i= 0;i<34;i++){
if(DecisionTree.test[i][j] < yuzhi)
DecisionTree.test[i][j] = 0;
else
DecisionTree.test[i][j] = 1;
}
}//总的for
for(int i= 0;i<34;i++)
System.out.println(DecisionTree.test[i][4846]+" "+DecisionTree.test[i][7129]);
*/
for(int i = 0 ;i<7128;i++)
for(int j = 0;j<34;j++)
if(DecisionTree.test[j][i] > DecisionTree.middle[i])
DecisionTree.test[j][i] = 1;
else
DecisionTree.test[j][i] = 0;
}//Make_boolean
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -