2015-09-11 2 views
0

Наивное программу Байеса предсказать тип работы для человека со следующими параметрами: возраст: 30, Qualication: MTech, Опыт: 8 ..байесовский классификатор программы предсказать класс дать информацию в Java, используя JTable

WorkType  Age  Qualication  Experience 

    Consultancy  30  Ph.D.    9 
    Service  21  MTech.   1 
    Research  26  MTech.   2 
    Service  28  BTech.   10 
    Consultancy 40  MTech.   14 
    Research  35  Ph.D.    10 
    Research  27  BTech.    6 
    Service  32  MTech.    9 
    Consultancy 45  Btech.   17 
    Research  36  Ph.D.    7 

    package try2; 
    import java.awt.BorderLayout; 

    import javax.swing.*; 

    public class bayes 
    { 
     JFrame frame; 
     JTable table; 
     JPanel panel; 
     JScrollPane tableContainer; 

     int i,j; 
     int countC=0,countR=0,countS=0; 
     int count=0; 
     int[] CAge=new int[3]; 


     public bayes() 
     { 
       frame = new JFrame("JTable Test Display"); 

       panel = new JPanel(); 
       panel.setLayout(new BorderLayout()); 
      String row[][]={{"consultancy","30","phd","9"}, 
        {"service","21","mtech","1"}    , 
       {"research","26","mtech","2"},{"service","28","btech","10"}, 
       {"consultancy","40","mtech","14"},{"research","35","phd","10"}, 
       {"research","27","btech","6"},{"service","32","mtech","9"}, 
       {"consultancy","45","btech","17"},{"research","36","phd","7"}}; 

     String column[]={"job","age","qualification","experience"}; 
     table=new JTable(row,column); 

     tableContainer = new JScrollPane(table); 

     panel.add(tableContainer, BorderLayout.CENTER); 
     frame.getContentPane().add(panel); 

     frame.pack(); 
     frame.setVisible(true); 



     //work type count 
     for(i=0;i<10;i++) 
     { 
      if(table.getValueAt(i,0)=="consultancy") 
      { 
       countC++; 
      } 
      if(table.getValueAt(i,0)=="research") 
      { 
       countR++; 
      } 
      if(table.getValueAt(i,0)=="service") 
      { 
       countS++; 
      } 
     } 


     //consultancy age count 
     for(i=0;i<10;i++) 

     { 
    ***if(((table.getValueAt(i, 0))=="consultancy") && ((Integer.parseInt((String)table.getValueAt(i, 1))>=20) || (Integer.parseInt((String)table.getValueAt(i, 1))<=30)))*** 
      { 
       count++; 
      } 

Проблема с приведенным выше кодом заключается в том, что я не могу сравнить значения столбца возраста с числами. Я попытался преобразовать значения в int с помощью функции intparse(), но все же его не работает. Строка отмечена знаком *** в приведенном выше кодексе code.please help me.it дает ошибку, что он не может преобразовать тип объекта в целое число

+0

извините на самом деле я запутался с типажами т.е. между toint() и inparse() .... но когда я запускаю код сейчас, и он дает неверный счет, он дает 3, но он должен дать 1 ;;; т.е. работник с консультационным типом и возрастом между 20 и 30 –

ответ

1

Возможно, проблема в том, что проблема:

((Integer.parseInt((String) table.getValueAt(i, 1)) >= 20) || (Integer.parseInt((String) table.getValueAt(i, 1)) <= 30)) 

Это всегда значение true, поэтому счетчик неверен. Если вы хотите, чтобы рассчитывать только человек с возрастом от 20 до 30 лет, вы должны использовать оператор И:

((Integer.parseInt((String) table.getValueAt(i, 1)) >= 20) && (Integer.parseInt((String) table.getValueAt(i, 1)) <= 30)) 
+0

Да .. верно. это условие дает истину для всех работников, имеющих консультацию по работе ... как это сделать ?? –

+0

да..и сравнивает все строки для возрастного столбца ... только переменная i итерирует значение столбца постоянное, то есть 1. –

+0

получил это .... глупая ошибка ... спасибо человеку. –

Смежные вопросы