假设有一组学生数据,其中包含了学生的家庭收入、父母受教育程度、学生是否参加过社会福利项目等信息,以及对应的贫困等级(1-5分)。我们可以使用朴素贝叶斯模型来预测学生的贫困等级。
```matlab
% 准备数据
load student_data;
X = [income, education, welfare];
Y = categorical(poverty_level);
% 划分训练集和测试集
cvp = cvpartition(Y, 'HoldOut', 0.3);
X_train = X(cvp.training,:);
Y_train = Y(cvp.training);
X_test = X(cvp.test,:);
Y_test = Y(cvp.test);
% 训练朴素贝叶斯模型
nb = fitcnb(X_train, Y_train);
% 对测试集进行预测
Y_pred = predict(nb, X_test);
% 计算准确率
accuracy = sum(Y_pred == Y_test) / numel(Y_test);
fprintf('Accuracy: %.2f%%\n', accuracy * 100);
```
上述代码中,`student_data`是一个包含了学生数据的MATLAB数据文件。首先将学生数据转换为特征矩阵`X`和标签向量`Y`,然后使用`cvpartition`函数将数据集划分为训练集和测试集。接着使用`fitcnb`函数训练朴素贝叶斯模型,并使用`predict`函数对测试集进行预测。最后计算准确率并输出结果。
需要注意的是,特征矩阵中的各个特征应该进行归一化处理,以避免某些特征对模型的影响过大。此外,在数据预处理阶段也需要注意去除缺失值、异常值等操作,以提高模型的准确率。