java - 使用 Jtable 预测 Java 中给定信息的类别的贝叶斯分类器程序

标签 java jtable naivebayes

朴素贝叶斯程序可预测具有以下参数的人的工作类型:年龄:30,资格:MTech,经验:8..

    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++;  
            }

上面代码的问题是我无法将年龄列值与数字进行比较。我尝试使用 intparse() 函数将值转换为 int,但仍然不起作用。该行标记为 ** * 在上面给出的代码中。请帮助我。它给出错误,它无法将对象类型转换为整数

最佳答案

也许问题出在以下情况:

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

此计算结果始终为 true,因此计数不正确。如果您只想计算年龄在 20 到 30 岁之间的人,您应该使用 AND 运算符:

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

关于java - 使用 Jtable 预测 Java 中给定信息的类别的贝叶斯分类器程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32527042/

相关文章:

java - 如何使用 Java 中另一个对象的属性对对象列表进行排序?

java - 创建具有多个列标题和行标题的自定义 TableModel

python - 我们如何根据不同的数据集预测新数据的目标值? scikit 学习/gaussianNB

python - pymc 的后验概率

algorithm - 朴素贝叶斯分类的简单解释

java - Android (Java) 使用服务器简单发送和接收 - 快速设置挑战

Java - 从HashMap单键多值取键(反向映射)

java - 给定 inDigits 的基础否定

java.lang.illegalargumentexception :cannot set a null TableModel

java - 从数据库中获取数据后 jTable 不显示任何内容