📜  使用 J48 分类器构建机器学习模型

📅  最后修改于: 2022-05-13 01:54:42.031000             🧑  作者: Mango

使用 J48 分类器构建机器学习模型

什么是 J48 分级机?

J48 是一种基于 Iterative Dichotomiser 3 的机器学习决策树分类算法。它非常有助于分类和连续检查数据。

什么是维卡?

Weka 是由新西兰怀卡托大学开发的开源工具,在 GNU 公共许可证下获得许可。您可以在任何操作系统上下载 weka。 Weka 有可用的 GUI 和 API。



要遵循的步骤:

步骤 1:使用 GUI 创建模型

第 2 步:打开 Weka 后,单击“资源管理器”选项卡

第 3 步:在“预处理”选项卡中单击“打开文件”并选择“breast-cancer.arff”文件,该文件将位于安装路径中的数据文件夹中。

第 4 步:在“分类”选项卡中单击选择按钮。现在在 weka/classifiers/trees/ 下选择 J48



第 5 步:现在可以单击 J48 分类器选项并进行操作,例如更改批次大小、置信因子等。在“测试选项”下,我们将使用默认的交叉验证选项作为折叠 10,然后单击开始.

执行:

现在我们已经讨论完了 Weka 有可以用来创建机器学习模型的Java API,所以现在让我们使用 API 创建模型

例子

Java
// Java Program for Creating a Model Based on J48 Classifier
  
// Importing required classes
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Random;
import weka.classifiers.Evaluation;
import weka.classifiers.trees.J48;
import weka.core.Instances;
  
// Main class
public class BreastCancer {
  
    // Main driver method
    public static void main(String args[])
    {
  
        // Try bloc kto check for exceptions
        try {
  
            // Creating J48 classifier
            J48 j48Classifier = new J48();
  
            // Dataset path
            String breastCancerDataset
                = "/home/droid/Tools/weka-3-8-5/data/breast-cancer.arff";
  
            // Create bufferedreader to read the dataset
            BufferedReader bufferedReader
                = new BufferedReader(
                    new FileReader(breastCancerDataset));
  
            // Create dataset instances
            Instances datasetInstances
                = new Instances(bufferedReader);
  
            // Set Target Class
            datasetInstances.setClassIndex(
                datasetInstances.numAttributes() - 1);
  
            // Evaluation
            Evaluation evaluation
                = new Evaluation(datasetInstances);
  
            // Cross Validate Model with 10 folds
            evaluation.crossValidateModel(
                j48Classifier, datasetInstances, 10,
                new Random(1));
            System.out.println(evaluation.toSummaryString(
                "\nResults", false));
        }
  
        // Catch block to check fo rexceptions
        catch (Exception e) {
  
            // Print and display the display message
            // using getMessage() method
            System.out.println("Error Occured!!!! \n"
                               + e.getMessage());
        }
  
        // Display message to be printed ion console
        // when program is successfully executed
        System.out.print("Successfully executed.");
    }
}


输出:

Successfully executed.