zoukankan      html  css  js  c++  java
  • 统计学习方法——第四章朴素贝叶斯及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
    ", predictValue);
        system("pause");
        return 0;
    }
    View Code

     3、这一张后面的题

    以第一道题为例,第一题第二问差不多,第二题就是上面加个k,下面加个所有k之和,总的来说他们想加之后为1的。没啥说的,加班撸代码了。

  • 相关阅读:
    linux centos 7.5 开启 postgresql 远程访问
    linux centos 7 开启 ftp
    CentOS 7.5 改IP后不生效无法上网解决办法
    Windows Server 2008R2 及上系统安装 Windows 可选功能
    C#只允许运行一个实例
    C# 命令行参数分割
    C# 获取所有已登录系统的用户名
    C#获取进程用户名
    psexec 用法
    检测 Visual C++ Redistributable Package 相应版本是否已安装
  • 原文地址:https://www.cnblogs.com/baochen/p/9332317.html
Copyright © 2011-2022 走看看