MachineLearning---PNN

引言

这篇将介绍machine learning中另一个较为经典的一个算法。之前介绍的几个算法(Backpropagation、LMS……)这些算法有一个明显的特点就是,它们都需要先训练算法,都会通过训练数据集调整算法的内部参数。

这次介绍的算法就摆脱了这种过程。

一、PNN算法基本介绍

1.算法思想

PNN(ProbabilisticNeural Networks)是一种较为出色的分类算法。

算法利用已分类的数据集,对未分类数据进行计算,得到“激活值”(Activation),在找出利用Winner Take All的原则,找到分类。

对于如何计算激活值下面会进行详细介绍。

2.激活值计算公式

隐藏层节点激活值,这里的隐藏层也便是样本集合(已分类的数据集)。

上诉中是隐藏层第i个节点的激活值, 便是已分类的数据集,F表示带分类的数据。

输出端节点的激活值。

其中便是第j个分类的输出端激活值;N表示样本数据(已分类)的数量;便是上面计算的隐藏层节点的激活值;是光滑参数。

3.算法流程

对于这个算法的流程也是比较好理解:

1.遍历类别;

2.遍历类别中的样本数据;

3.利用公式(1)对隐藏层节点激活值进行计算

4.利用公式(2)对当前分类,计算其激活值;

5.对所有类别激活值,进行比较,找出最大的,并返回类别序号。

二、算法实现

在这里提供这个算法的实现代码:

int pnn_classify()
{double output[CLASSNUM];for(int c = 0 ; c< CLASSNUM ; ++c){output[c]= 0.0;for(int e = 0 ; e< EXAMPLENUM ; ++e){double h = 0.0;for(int d = 0 ; d< DIMENSIONALITY ; ++d){h+= example[d] * dataset[c].example[e].f[d];}output[c]= exp((h-1.0)/pow(sigma,2));}output[c]= output[c] / (double)EXAMPLENUM;}//winner take alldouble maxActivation = 0.0;int iCMax = 0;for (int c = 0 ; c< CLASSNUM ; ++c){if(maxActivation < output[c]){iCMax= c;maxActivation= output[c];}}return iCMax;
}

三、总结

由于笔者不是专门研究人工智能方面,所以在写这些文章的时候,肯定会有一些错误,也请谅解,上面介绍中有什么错误或者不当地方,敬请指出,不甚欢迎。

如果有兴趣的可以留言,一起交流一下算法学习的心得。

声明:本文章是笔者整理资料所得原创文章,如转载需注明出处,谢谢。

Machine Learning---PNN相关推荐

  1. machine learning分类方法的详细总结

    machine learning分类方法的详细总结 有导师学习神经网络的分类 广义回归神经网络(GRNN) 概率神经网络(PNN) 题目及代码 无导师学习神经网络的分类 竞争神经网络 SOFM神经网络 ...

  2. bff v2ex_语音备忘录的BFF-如何通过Machine Learning简化Speech2Text

    bff v2ex by Rafael Belchior 通过拉斐尔·贝尔基奥尔(Rafael Belchior) 语音备忘录的BFF-如何通过Machine Learning简化Speech2Text ...

  3. 吴恩达新书《Machine Learning Yearning》完整中文版 PDF 下载!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale资源 推荐人:GithubDaily,Datawhale伙伴 <Mach ...

  4. 吴恩达《Machine Learning》Jupyter Notebook 版笔记发布!图解、公式、习题都有了

    在我很早之前写过的文章<机器学习如何入门>中,就首推过吴恩达在 Coursera 上开设的<Machine Learning>课程.这门课最大的特点就是基本没有复杂的数学理论和 ...

  5. 吴恩达新书《Machine Learning Yearning》完整中文版开源!

    选自Github 来源:机器学习算法与自然语言处理 吴恩达新书<Machine Learning Yearning>完整中文版开源,整理给大家. <Machine Learning ...

  6. Auto Machine Learning 自动化机器学习笔记

    ⭐适读人群:有机器学习算法基础 1. auto-sklearn 能 auto 到什么地步? 在机器学习中的分类模型中: 常规 ML framework 如下图灰色部分:导入数据-数据清洗-特征工程-分 ...

  7. 机器学习与优化基础(Machine Learning and Optimization)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 引用大佬Pedro Domingos的说法: ...

  8. Machine Learning | (12) 非监督学习-k-means

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

  9. Machine Learning | (11) 回归性能评估与欠拟合、过拟合

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

  10. Machine Learning | (10) 回归算法-岭回归

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

最新文章

  1. Science | 机器学习揭示了构建人造蛋白质的秘诀
  2. 39.原码、反码、补码的转换
  3. 2019~2020年IDC行业发展趋势预测
  4. linux——脚本的练习示例三
  5. OpenCASCADE:调试工具和提示
  6. 阿里云容器服务全面升级,让云的边界拓展至企业需要的每个场景
  7. ngixn+tomcat负载均衡 动静分离配置 (nginx反向代理)
  8. AtCoder-2379 - 连接竹竿 思维 | 数学
  9. python mysql 正则表达式,MySQL之正则表达式(REGEXP)
  10. php iis redis,iis windows phpstudy安装redis扩展
  11. 支付宝回应老年版相互宝质疑:5万、10万互助金额度是合理区间
  12. [转] 网页不需要漂亮 Ⅰ
  13. linux ssh应用
  14. 浙江大学PTA 数据结构 习题2.2 数组循环左移 (20 分)
  15. 使用bat一键修改ip地址(包括静态、动态ip)
  16. 雷达测速仪的原理及激光测速枪的应用
  17. 8.(高级)CSS形状之:菱形图片
  18. 设备维保管理系统对于设备正常运行的重要性!
  19. repo init 下载代码error.GitError: manifests ls-remote: usage: git ls-remote
  20. 一位清华差生9年的北京生活

热门文章

  1. AI智能联系人管理系统(一)
  2. Java Web应用开发简介
  3. 【MFC】使用TabControl创建Tab分页
  4. Mybatis中resultMap和resultType
  5. 什么是梯度爆炸与梯度消失
  6. Eclipse 2020-06 汉化包安装步骤(附汉化包+安装教程)(转载)
  7. getline()详解
  8. texstudio: 无法启动buildview:Xelate: xelatex.exe -synctex=1 -interacion=nonstopmode
  9. 笔记本wifi热点设置
  10. lambda表达式 拉姆达