#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
using namespace cv::ml;
int main(int argc, char** argv)
{
float trainingData[10][3] = { {34, 1, 1}, {35, 2, 2}, {36, 3,3},{37,8,4},{38,9,5},
{39,10,6},{40,7,7},{41,4,8},{42,5,9},{43,6,10} };
Mat trainingDataMat(10, 3, CV_32FC1, trainingData);
int responses[10] = { 1,1,1,2,2,2,3,3,3 };
Mat responsesMat(10, 1, CV_32SC1, responses);
//集成数据
Ptr<TrainData> traind = TrainData::create(trainingDataMat,ROW_SAMPLE,responsesMat);
//创建分类器
Ptr<NormalBayesClassifier> nbc=NormalBayesClassifier::create();
nbc->train(traind);
float myData[3] = { 40, 8, 10 }; //病人发烧、咳嗽、流涕数据
Mat myDataMat(1, 3, CV_32FC1, myData);
float r = nbc->predict(myDataMat);
int result = r;
string output;
switch (result)
{
case 1:
output = "冷感冒";
break;
case 2:
output = "肺炎";
break;
case 3:
output = "热感冒";
break;
default:
output = "健康";
break;
}
cout << endl << "该病人诊断为: " << output << endl << endl;
system("pause");
return 0;
}
机器学习:朴素贝叶斯分类器(NormalBayesClassifier)
最新推荐文章于 2023-02-12 11:54:53 发布