使用 J48 分类器构建机器学习模型
什么是 J48 分级机?
J48 是一种基于 Iterative Dichotomiser 3 的机器学习决策树分类算法。它非常有助于分类和连续检查数据。
Note: To build our J48 machine learning model we’ll use the weka tool.
什么是维卡?
Weka 是由新西兰怀卡托大学开发的开源工具,在 GNU 公共许可证下获得许可。您可以在任何操作系统上下载 weka。 Weka 有可用的 GUI 和 API。
要遵循的步骤:
步骤 1:使用 GUI 创建模型
第 2 步:打开 Weka 后,单击“资源管理器”选项卡
第 3 步:在“预处理”选项卡中单击“打开文件”并选择“breast-cancer.arff”文件,该文件将位于安装路径中的数据文件夹中。
In this tab, you can view all the attributes and play with them.
第 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.