机器学习算法的开源可视化工具: MLDemos

MLDemos 是一种用于机器学习算法的开源可视化工具,用于帮助研究和理解多个算法如何运作以及它们的参数如何影响和修改分类,回归,聚类,降维,动态系统和强化学习(奖励最大化)等问题的结果。

MLDemos 是开源的,可供个人和学术用途免费使用。

由 Basilio Noris 博士在 学习算法和系统实验室创建,该计划的开发得到了以下实体,组织和团体的支持和支持。

安装

二进制包:

MLDemos 0.5.2 for Windows

最低要求:XP SP3

MLDemos 0.5.2 for Mac

最低要求:Snow Leopard

MLDemos 0.3.2_CDE

最低要求:内核 2.6.X
感谢 Philip Guo(网站

合法性

这些包包含许多开源库的二进制版本。我将它们包括在这里,并且知道这可能与每个相应库的分发策略不完全兼容。我将尝试联系并从相关方获得必要的许可,在可能的范围内。与此同时,我真诚地分发这个软件,我的目标是让人们能够学习和使用这里实现的不同方法。请参阅下面的确认部分,了解贡献人员的列表。

你可以将此软件用于个人和教育目的,你不得将其用于商业目的。只要你提供此页面的链接,就可以重新分发软件。然后,此页面将始终链接到最新版本的软件,因此你最好还是在这里使用该版本。

源代码:

MLDemos 源代码可以直接通过 git 或公共仓库获取(获取最新版本的 devel 分支)

git clone git://gitorious.org/mldemos/mldemos.git -b devel

public GitHub repository

source_backup (0.3.0)

必要条件

该代码需要 Qt(5.10)和(部分)OpenCV(3.1)和 Boost(1.47)。这些库的早期版本可能也可以正常工作,但你也可以使用较新的版本。请务必调整 include 和 lib 路径以将它们指向正确的目录。

该软件使用 QtCreator 2.1 和 2.6 在 Mac OSX High Sierra,Windows 10,Gentoo,Ubuntu 和 Kubuntu 10.04 上进行编译和测试。

  • Windows

为了在 Windows 中编译 MLDemos,你需要 MinGW(通常安装 QGSDK 自带 MinGW)

  • Debian

Barak A. Pearlmutter 教授创建了一个 debian 软件包,很快就会推出。同时你可以建立它下面的说明:

 git clone git://github.com/barak/mldemos.git
 cd mldemos
 git checkout debian
 dpkg-checkbuilddeps
 fakeroot debian/rules binary
 sudo dpkg --install ../mldemos_*.deb

注意:OpenCV 2.4 不能直接使用(仅 2.1),这将要求你构建 OpenCV2.4。这只是使用 MLP 和 Boosting 所必需的。这是两个重要的算法,所以你最好努力一下:

 git clone git://github.com/barak/opencv.git
 cd opencv
 git checkout master
 dpkg-checkbuilddeps
 fakeroot debian/rules binary
 sudo dpkg --install ../*opencv*.deb

再次,非常感谢 Barak !

** 已知 bug**

  • WINDOWS:在 3D 显示中清除画布会留下占用的部分内存,这可能会在多次完成时累积(仅限 Windows 上的内存错误的一部分)
  • LINUX(CDE 包)加载和保存外部文件不起作用
  • 近似最邻近 KNN 分类在某些机器上创建了并带有一些指标的奇怪空白区域,。
  • 保存在 Linux CDE 包上不起作用
  • 在绘制奖励地图时调整画布大小不会更新基础数据(避免这样做)。
  • 在 Boosting 中,更改数据不会重新计算学习器,如果数据显着改变了边界,则可能导致不良结果

新功能

Changelog

v0.5.0

新的可视化和数据集功能

  • 添加了样本的三维可视化和分类,回归及最大化结果
  • 添加了可视化面板,其中包含各个图,相关性,密度等
  • 添加了编辑工具来拖动 / 磁化数据,更改类,增加或减少数据集的尺寸
  • 添加了分类维度(带有非数值的索引维度)
  • 添加了 “数据集编辑” 面板以交换,删除和重命名维,类或分类值
  • 用于显示,导入 / 导出 ** 数据,分类性能的 ** 几个错误修复

新的算法和方法

  • 添加了 “网格搜索” 面板,用于批量测试一次最多两个参数的值范围

  • 为非多类算法添加了 One-vs-All 多类别分类

  • 现在可以对新数据进行训练和测试(对一个数据集进行训练,对另一个进行测试)

  • 添加了 RBF 内核的 SVM 自动相关性确定(感谢 Ashwini Shukla!)

  • 添加了成长的分层自组织地图(Michael Dittenbach 的原始代码)

  • 添加了随机森林分类

  • 添加 LDA 作为分类器(除投影仪外)

  • 为 GMM 和 SVM 添加了保存 / 加载模型选项

软件截图 (说明在图下方)

MLDemos 图形用户界面

MLDemos 图形用户界面


不同的可视化和参数效果

不同的可视化和参数效果


样本图,密度和相关性的可视化

样本图,密度和相关性的可视化
SVM + RBF 分类

SVM + RBF 分类
稀疏高斯过程回归

稀疏高斯过程回归


具有避障功能的动力系统(SEDS)

具有避障功能的动力系统(SEDS)
核 PCA 等值线

核 PCA 等值线
基于遗传算法的强化学习(奖励最大化)

基于遗传算法的强化学习(奖励最大化
用 RBF 核支持向量回归

用 RBF 核支持向量回归
基于 RBF 核的相关向量机分类

基于 RBF 核的相关向量机分类
随机圈弱学习器的提升

随机圈弱学习器的提升


具有 RBF 内核的多类 SVM

具有 RBF 内核的多类 SVM
用高斯混合模型聚类

用高斯混合模型聚类
越来越多的分层自组织地图

越来越多的分层自组织地图

算法

实现方法

分类

  • 支持向量机(SVM) (C,nu,Pegasos)
  • 相关向量机(RVM)
  • 高斯混合模型(GMM)
  • 多层感知器 + 后向传播
  • 温柔的 AdaBoost + 朴素贝叶斯
  • 近似 K-Nearest Neighbors(KNN)
  • 高斯过程分类(GP)
  • 随机森林

回归

  • 支持向量回归(SVR)
  • 相关向量回归(RVR)
  • 高斯混合回归(GMR)
  • MLP + BackProp
  • 近似 KNN
  • 高斯过程回归(GPR)
  • 稀疏优化高斯过程(SOGP)
  • 局部加权散点图平滑(LOWESS)
  • 局部加权投影回归(LWPR)

动力系统

  • GMM + GMR
  • LWPR
  • SVR
  • SEDS
  • SOGP(慢!)
  • MLP
  • KNN
  • 增强型 SVM(ASVM)

聚类

  • K 均值(K-Means)
  • Soft K-Means
  • Kernel K-Means
  • K-Means++
  • GMM
  • One Class SVM
  • FLAME
  • DBSCAN

预测

  • 主成分分析(PCA)
  • 内核 PCA
  • 独立成分分析(ICA)
  • 典型相关分析(CCA)
  • 线性判别分析(LDA)
  • Fisher 线性判别
  • EigenFaces 到 2D(使用 PCA)

奖励最大化 (强化学习)

  • 随机搜索
  • 随机漫步
  • PoWER
  • 遗传算法(GA)
  • 粒子群优化算法
  • 粒子滤波器
  • Donut(一种基于变分自动编码器的季节性 KPI 的无监督异常检测算法�)
  • 无梯度方法(nlopt)

贡献

如果你正在开发一种适合 MLDemos 框架的新算法,并希望将其集成到软件中,请与我们联系(参见下面的信息)并描述实现 MLDemos 插件所需的帮助类型。

致谢

如果许多人没有投入大量精力来实现这里组合成单个程序的不同算法,那么该程序将不存在。

  • Florent D'Hallouin (GMM + GMR) - LASA
  • Dan Grollman (SOGP) - LASA
  • Mohammad Khansari (SEDS + DSAvoid) - LASA
  • Ashwini Shukla (ASVM, ARD Kernels) - LASA
  • Stephane Magnenat (ESMLR) - website
  • Chih-Chung Chang and Chih-Jen Lin (libSVM) - website
  • David Mount and Sunik Arya (ANN library) - website
  • Davis E. King (DLIB) - website
  • Stefan Klanke and Sethu Vijayakumar (LWPR) - website
  • Robert Davies (Newmat) - website
  • JF Cardoso (ICA) - website
  • Steven G. Johnson (NLOpt) - website
  • The WillowGarage crowd (OpenCV) - website
  • Trolltech/Nokia/Digia (Qt) - website
  • The authors of several of the icons - website
  • 参加 EPFL 2012 年 ML 课程的博士生(Julien Eberle,Pierre-Antoine Sondag,Guillaume deChambrier,Klas Kronander,Renaud Richardet,Raphael Ullman)
    此外,如果没有 LASA 的支持和开发团队的工作,该计划本身的性能将大大降低:Christophe Paccolat,Nicolas Sommer 和 Otpal Vittoz。

还要感谢那些没有贡献代码但直接贡献的人:Aude Billard,作为人们所希望的最佳老板之一,FrançoisFleuret,进行了一系列富有成果的讨论,以及 AML 2010 和 2011 年的课程耐心地给它第一次试驾。

快速开始

启动该软件
通过单击鼠标左键或右键来绘制样本。
单击鼠标左键可生成 0 级样本
右键单击生成工具栏中所选类的样本(默认值:1)
选择 “显示选项” 图标
这将允许你显示模型信息,置信度 / 似然图并隐藏原始样本
鼠标滚轮将允许你放大和缩小
alt + 拖动将允许你平移空间

  • 选择 “算法选项” 图标
  • 选择一个算法图标以打开其各自的选项面板
  • 单击 “分类” 按钮以对当前数据运行算法

导入数据

在 MLDemos 中生成数据有三种不同的方式:手动绘制样本,通过 PCA(通过 PCAFaces 插件)投影图像数据,或通过加载外部数据。
可以将逗号分隔值或其他基于文本文件的值表拖放到界面中。在这种情况下,将出现 “数据加载” 对话框,允许选择应加载哪些列或行,解释为类标签或标题等。

或者,软件使用的本机数据格式是基于 ascii 的,包含:

  1. 样本数量后跟维度#
  2. 对于每个样品,一行包含
    1. 样本值以空格分隔(浮点数,每个维度一个)
    2. 样本类索引(整数 0 ... 255)
    3. 用于终止该行的标志值(整数 0-3)(暂时未使用)

一个简单的例子是

4 3
0.10 0.11 0.12 0 0
0.14 0.91 0.11 0 0
0.43 0.74 0.41 1 0
0.28 0.34 0.33 1 0

它提供 4 个三维样本,两个来自类别 0,1 个来自类别 1 。(原文有问题吧?)

文件保存时从 MLDemos,该软件添加了当前的算法参数(假设选择了算法),这可用于演示目的。如果不存在此类信息,则选择默认算法参数。

手动绘制一些样本,或导入标准数据集并从 MLDemos 中保存它应该为你提供有关文件语法的大量示例。

网站: http://mldemos.b4silio.com/

原文:https://mixlabpro.github.io/2019/04/04/mldemos/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容