统计学习方法——第四章朴素贝叶斯及c++实现
1、名词解释
贝叶斯定理,自己看书,没啥说的,翻译成人话就是,条件A下的bi出现的概率等于A和bi一起出现的概率除以A出现的概率。
记忆方式就是变后验概率为先验概率,或者说,将条件与结果转换。
先验概率:某件事情发生概率
后验概率:某件事情发生后,由于某个原因引起的概率大小。
2、朴素贝叶斯代码
#include <cstdio> #include <Windows.h> #include "LBayesClassifier.h" const int NUM = 14; const int Dim = 4; int main() { int dataList[NUM*Dim] = { 20, 3, 0, 0, 20, 3, 0, 1, 30, 3, 0, 0, 40, 2, 0, 0, 40, 1, 1, 0, 40, 1, 1, 1, 30, 1, 1, 1, 20, 2, 0, 0, 20, 1, 1, 0, 40, 2, 1, 0, 20, 2, 1, 1, 30, 2, 0, 1, 30, 3, 1, 0, 40, 2, 0, 1 }; LBayesMatrix sampleMatrix(NUM, Dim, dataList); int classList[NUM] = { 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0 }; LBayesMatrix classVector(NUM, 1, classList); LBayesProblem problem(sampleMatrix, classVector, BAYES_FEATURE_CONTINUS); LBayesClassifier classifier; classifier.TrainModel(problem); LBayesMatrix newSample(1, Dim); newSample[0][0] = 20; newSample[0][1] = 2; newSample[0][2] = 0; newSample[0][3] = 0; int predictValue; classifier.Predict(newSample, &predictValue); printf("%d\n", predictValue); system("pause"); return 0; }
3、这一张后面的题
以第一道题为例,第一题第二问差不多,第二题就是上面加个k,下面加个所有k之和,总的来说他们想加之后为1的。没啥说的,加班撸代码了。
posted on 2018-07-18 20:01 maxwell_tesla 阅读(868) 评论(1) 编辑 收藏 举报