朴素贝叶斯matlab代码
时间: 2023-05-30 16:04:18 浏览: 402
由于朴素贝叶斯算法有多种应用方式,此处提供两个示例代码:
1. 用于文本分类的朴素贝叶斯算法matlab代码
% 训练集
trainData = {'I love movie', 'I like music', 'I hate sports', 'I dislike movie'};
% 训练集标签
trainLabel = [1, 1, -1, -1];
% 测试集
testData = {'I love music', 'I dislike sports'};
% 将文本转化为词袋模型
bag = bagOfWords(trainData);
% 根据词袋模型统计概率
model = fitcnb(bag, trainLabel);
% 测试
testBag = bagOfWords(testData);
predictLabel = predict(model, testBag)
2. 用于图像分类的朴素贝叶斯算法matlab代码
% 加载mnist数据集
load('mnistData.mat');
% 将训练集和测试集转化为二维矩阵
trainData = reshape(trainData, 28*28, 60000)';
testData = reshape(testData, 28*28, 10000)';
% 训练集标签转化为分类器需要的格式
trainLabel = zeros(60000, 10);
for i = 1:60000
trainLabel(i, trainLabels(i)+1) = 1;
end
% 创建朴素贝叶斯分类器
nb = fitcnb(trainData, trainLabel);
% 测试
predictLabel = predict(nb, testData);
% 将分类结果转化为标签
[~, testLabel] = max(predictLabel, [], 2);
testLabel = testLabel - 1;
% 计算准确率
accuracy = sum(testLabel == testLabels')/length(testLabels)
阅读全文