朴素贝叶斯分类算法是一种常见的机器学习算法,可以用于文本分类、垃圾邮件过滤等任务。在Java中,可以使用第三方库实现朴素贝叶斯分类算法,例如Apache Mahout、Weka等。以下是使用Weka实现朴素贝叶斯分类算法的示例代码:
import weka.classifiers.bayes.NaiveBayes;
import weka.core.Instance;
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
public class NaiveBayesClassifier {
public static void main(String[] args) throws Exception {
// 加载数据集
DataSource source = new DataSource("path/to/data.arff");
Instances dataset = source.getDataSet();
dataset.setClassIndex(dataset.numAttributes() - 1);
// 初始化朴素贝叶斯分类器
NaiveBayes nb = new NaiveBayes();
nb.buildClassifier(dataset);
// 预测新实例的类别
Instance instance = new Instance(2);
instance.setValue(dataset.attribute(0), "sunny");
instance.setValue(dataset.attribute(1), "hot");
instance.setDataset(dataset);
double[] probabilities = nb.distributionForInstance(instance);
double maxProb = 0.0;
int maxIndex = 0;
for (int i = 0; i < probabilities.length; i++) {
if (probabilities[i] > maxProb) {
maxProb = probabilities[i];
maxIndex = i;
}
}
System.out.println("Predicted class: " + dataset.classAttribute().value(maxIndex));
}
}
其中,"path/to/data.arff" 是指数据集的路径,示例代码中使用了一个简单的天气预测数据集。该代码首先加载数据集,然后使用NaiveBayes类构建朴素贝叶斯分类器,并将新实例的属性值设置为"sunny"和"hot",最后使用distributionForInstance方法预测新实例的类别。