Я программирую Байесовскую сеть, которая позволит мне диагностировать (основываясь на наиболее вероятном диагнозе) опухоль как доброкачественную или злокачественную. Сеть будет учиться на большом наборе образцов, которые включают результаты набора из 10 медицинских тестов плюс диагноз. Эти результаты будут дискретными, в диапазоне от 0 до максимального значения.
В этом случае, учитывая, что мне придется запрограммировать счетчик (int[]
выборочные тесты, int[]
значения), чтобы посчитать случаи values[i]
в выборках tests[i]
, что является наиболее эффективную реализацию выбрать для класса «образец»?
В настоящее время я реализовал ArrayList<int[]>()
. Так я его запрограммировал. Однако, учитывая, что я ожидаю получить около 300 наборов образцов (результаты 10 различных тестов + диагностика), я искал наиболее эффективный способ реализации класса «Образец» (я назвал его «амостра»).
public class Amostra implements AmostraInt {
private ArrayList<int []> dados;
public Amostra() {
this.dados = new ArrayList<int []>();
}
public int[] count (int[] var, int []val) {
int i=0;
int[]ocorre = new int[var.length] ;
while (i< dados.size()) {
int j=0;
while (j<var.length) {
if (dados.get(i)[var[j]]==val[j])
ocorre[j]+=1;
j++;
}
i++;
}
return ocorre;