用javascript进行一个简单的机器学习小实例

摘要: 本篇文章教你如何使用JavaScript在浏览器中完整地定义、训练和部署机器学习算法。

虽然它可能不是机器学习传统选择的开发语言,但是JavaScript正在证明有能力完成这样的工作——即使它目前还不能与主要的机器学习语言Python竞争。在进一步学习之前,让我们做一下机器学习的介绍。

根据Skyhoshi这个有着超过13年开发人员的实际经验,机器学习赋予计算机根据所提供的数据进行学习的能力,并且识别模式,然后得出结论,而不需要明确的人为干预。

从传统上来说,JavaScript在机器学习中不常用,有以下两个主要的原因,包括有限的库支持和实现的复杂性。

虽然如此,JavaScript最近已经颇欢迎了,主要是因为在客户端上有完整的部署机器学习应用的广泛机会。

在这篇文章中,我将演示一个简单的机器学习辅导项目,它展示了JavaScript也能够为机器学习应用提供动力。

对于这个相对简单的项目,我将使用Neal.js程序文件,它是一个简便的开源JavaScript库,它为机器学习提供了预处理的神经网络。

该项目的目的是用一组训练数据来训练一个神经网络,使得它可以预测颜色的对比是亮的还是暗的。

第一步:安装库

让我们使用NoDE.js这个文件,并通过NPM包管理器来安装库。为此,你需要在计算机上预先安装No.js文件。

这里是你可以用在终端上运行的代码。(切记把它安装在你要处理的文件夹上)

 npm install brain.js 

第二步: 导入库

使用以下代码在你的文件上导入库:

 const brain = require("brain.js"); 

第三步:创建一个神经网络

以下是代码:

 const network = new brain.NeuralNetwork(); 

第四步:训练数据

在机器学习之中,训练的数据和收到的结果一样好。更高质量的数据可能比较低质量的数据预测出更好的结果。

该数据是一组示例,它被提供给算法并“指导”算法要搜索什么东西。

在这个例子中,由于我们希望这个机器学习算法学会识别光亮和黑暗之间颜色对比的差异,所以我们将给出这些例子来训练学习模型。

在这之后,该算法将利用所提供的实例来辨别两个组之间的本质特征。

如果在将来提供了未知的数据,那么这个算法将根据从原始训练模型中识别出来的特征进行分类。

对于这个项目,我们将使用内置的brain.js程序文件中的train()函数来使用实例数据的数组来训练神经网络。

每个实例中的训练数据都将有一个输入对象和一个输出对象,它们都应该是一个从0到1的数组。

因为我们正在使用颜色来进行研究,因此我们要去找到它们的RGB值。由于RGB颜色介于0和255之间,所以我们可以将它们转换为被255相除的0到1之间的值。

举个例子,如果颜色的RGB值为(158,183,224),我们通过除以255来转换每个值,它将变成(0.62,0.72,0.88)。

在这之后,我们需要提供RGB值的一些示例数据集,并指定输出将是亮的还是暗的。

以下是代码:

network.train([

  {input: {r:0.62,g:0.72,b:0.88}, output:{light: 1}},

  {input: {r:0.1,g:0.84,b:0.72}, output:{light: 1}},

  {input: {r:0.33,g:0.24,b:0.29}, output:{dark: 1}},

  {input: {r:0.74,g:0.78,b:0.86}, output:{light: 1}},

  ]);

第五步: 查看结果

在用一些实例数据进行训练算法之后,现在是查看预测结果的时候了。

我们只需调用Run()函数,并提供一个颜色色调的参数,目的是想知道它是亮的还是暗的。

以下是代码:

const result = network.run({r:0.0,g:1,b:0.65});

console.log(result);

如果我们在Windows终端上执行以上代码,输出将是这样的:

0defa2ebd7a17727169818f768db78fcb11897cc 

正如你所看到的,我们给初学者的机器学习算法预测到颜色对比度是亮色的,准确度为0.97(97%)。

如果我们希望输出是亮的或者是暗的,那么可以添加下面的代码:

const result = brain.likely({r:0.0,g:1,b:0.65}, network);

console.log(result);

以下终端上的显示结果:

11b1a89c6b0f8cb7fcfcc34745d51985fb547e5c 

结论:

以下是整个项目的代码:

const brain = require("brain.js");

const network = new brain.NeuralNetwork();

network.train([

  {input: {r:0.62,g:0.72,b:0.88}, output:{light: 1}},

  {input: {r:0.1,g:0.84,b:0.72}, output:{light: 1}},

  {input: {r:0.33,g:0.24,b:0.29}, output:{dark: 1}},

  {input: {r:0.74,g:0.78,b:0.86}, output:{light: 1}},

  ]);

//const result = network.run({r:0.0,g:1,b:0.65});

const result = brain.likely({r:0.0,g:1,b:0.65}, network);

console.log(result);

在这篇文章中,我演示了一个简单的关于JavaScript的机器学习项目。为了提高你的机器学习技能,你当然也需要完成类似的项目。

原文链接 

本文为云栖社区原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

梳子刻字刻什么好_校园石阶上被人刻了1700多个字?!这次网友却说好

在公共场合刻字,是不是听上去不太文明?但凡事都有例外!在云南怒江的一个小学,一个支教老师在学校的石砖上刻下了上千个字,他为的不是“到此一游”,而是将汉字知识永远传承下去...△视频来源:看看…

腾讯Blade Team发现云虚拟化平台逃逸漏洞 积极护航云生态安全

随着云技术的快速发展和迭代更新,各行各业都在“云”中快速成长,安全性显得尤为重要。而云时代软硬件的“云交互”,对安全来说也意味着新的挑战。 近日,腾讯Blade Team团队在针对云上虚拟化安全研究中,发现了主流虚拟…

机器学习应用中的UI个性化

摘要: 在这篇文章中,我们看看关于机器学习应用中的UI个性化问题,谈一谈为什么在应用程序开发的过程中交流和沟通是成功的关键。 EdgVerve推出了基于AI的业务应用平台的新一代集成人工智能平台-Infosys Nia使你的企业能够管理特定的业务领域&a…

zookeeper集群部署 精简版本

文章目录1. zookeeper下载2. 解压3. 重命名4. 创建dataDir目录和dataLogDir日志目录5. 更新备份配置文件6. 添加数据目录和日志文件目录7. 添加集群信息7.1. ip配置 方式017.2. 域名配置 方式02(推荐使用)8. 在服务器上分别创建myid,各自写入…

物联网火爆,入门却太难了!

近几年来,物联网发展迅速:据中商产业研究院《2016——2021年中国物联网产业市场研究报告》显示,预计到2020年,中国物联网的整体规模将达2.2万亿元,产业规模比互联网大30倍。我们可以看到,物联网的前景广阔。…

感知器算法的基本原理和步骤_很多情况下,深度学习算法和人脑相似

人脑模拟  深度学习背后的主要原因是人工智能应该从人脑中汲取灵感。此观点引出了“神经网络”这一术语。人 脑中 包含 数 十亿个神经元,它 们 之间有 数 万个 连 接。很多情况下,深度学习算法和人脑相似,因为人脑和深度学习模型都拥有大量…

打印时候复选框勾选不见了_checkbox 选中未显示对号勾选的问题

今天同事 让帮忙调试一个checkbox只选中一个的方法,代码如下:ID平台代码平台名称选项2选项2选项3选项4varEleInput$("[name ptcode]:checkbox")//;$("#table_platform input") ;EleInput.each(function(index, element) {$(element…

工程师如何解决穿衣搭配烦恼?——滴搭平台与算法

摘要: 阿里工程师们推出了一个滴搭平台,基于千万时尚达人的优质搭配,已经学习出了一套比较成熟的算法,帮你找到最合适的穿搭。不信?下面一起来深入了解“滴搭”背后的算法。 作为一名工程师,每天与代码打交…

Linux下搭建 kafka集群 + zookeeper集群部署 安装、启动、停止

文章目录一、环境部署总览1. 软件版本选型2. 服务器软件部署总览二、软件部署手册2.1. JDK2.2. kafka2.3. Kafka Eagle2.4. mysql2.5. zookeeper2.6. maven三、kafka集群部署3.1. 启动zk集群3.2. 启动kafka集群3.3. 启动Kafka Eagle一、环境部署总览 1. 软件版本选型 软件版本…

刷爆了!GitHub标星1.6W,这个 Python 项目太实用!

GitHub上,一份用Python开发的12306 购票助手火了!这个用 Python 开发的 12306 购票助手,已经有 1.6w star,作者也一直在维护。它实现了自动打码,自动登录,捡漏,候补等功能。用 Python 帮你抢票&…

flexcell控件 许可证信息没有找到_报表控件 ActiveReports 全面迎来 .Net Core 时代

报表控件ActiveReports全面迎来 .Net Core 时代!一键创建 .Net Core MVC 项目近期,葡萄城报表控件ActiveReports V14.0 正式发布,全面支持 .NET Core平台。同时,在本次更新中 ActiveReports的桌面报表设计器UI得以全面增强&#x…

彻底卸载acer软件保护卡_宏碁(Acer)传奇 14英寸 新一代7nm六核处理器 真香机 高性能宏基笔记本电脑(R5-4500U 7纳米 16G 512GSSD )...

拜托朋友帮忙推荐的一款4k左右笔记本,要求:简单办公学习,看视频娱乐即可。然后朋友帮忙推荐了两款。一款是荣耀magic。另一款就是这款宏碁传奇预售款。京东标题如下:【宏碁(Acer)传奇 14英寸 新一代7nm六核处理器 真香机 高性能 轻…

图解集成学习中的梯度提升思想

摘要: 本文讲述集成学习中的梯度提升方法的思想,以简单算术及图片的形式展示整个过程,一看就懂! 简介 机器学习(ML)中的一个关键步骤是选择适合数据的最佳算法,根据数据中的一些统计数据和可视…

AI助手智商测评Siri进步最大,无人驾驶打车服务已在美国试行

摘要: 万年老幺Google Assistant稳坐AI助手第一的位置,siri屈居老二可进步倒是不小!无人驾驶打车已经成为现实,就问你敢坐不敢坐!最接地气儿的CEO马斯克,变身快递员送货到家只为卖车......支付宝小程序也来…

Kafka 监控 Kafka Eagle 精简版本

文章目录一、Kafka Eagle 下载、编译流程1. Kafka Eagle下载2. 解压Kafka Eagle3. 进入解压的目录4. 编译项目5. 添加编译环境6. 运行脚本编译项目二、Kafka Eagle 正式配置流程2.1. 进入编译获得web目录2.2. 将编译后的tar解压到/app目录2.3. 在/app目录下面查看2.4. 配置文件…

arcgis python实例_ArcGIS Python编程案例(14)-五个常用Python处理任务

我们将在本章介绍以下案例: 从分隔符文本文件中读取数据 发送电子邮件 访问FTP服务器中的文件 创建ZIP文件 读取XML文件 引言 在本章中,你将学习如何编写Python脚本来执行常用的处理任务。这些任务包括读写分隔符文本文件,发送电子邮件&#…

c 最大子序列和_最大连续子序列

最大连续子序列&#xff1a;是指序列中所有子序列中元素和最大的一个例如{-2,11&#xff0c;-4,13&#xff0c;-5.-2}中最大连续子序列为{11&#xff0c;-4,13}其和为20若所有k个元素都为负数&#xff0c;则定义其最大和为0&#xff0c;输出整个序列的首尾元素#include<iost…

【只有光头才能变强,文末有xx】分享一波Lambda表达式

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | Java3y责编 | 阿秃前言只有光头才能变强。学了一下Java的函数式编程&#xff0c;给大家整理了一下&#xff0c;一起学习&#xff01;一、Lambda用法之前写Optional这个类的时候&#xff0c;简单说了一下Lambda是怎么用的&am…

因为阿里,他们成了“杭漂”

摘要&#xff1a; 这是你吗——有人在回北京的飞机上赶时间写周报&#xff1b;有人全家在美国&#xff0c;孤身从硅谷回杭州工作&#xff1b;有人每周回北京为了赶末班飞机快速过安检&#xff0c;周末从不系皮带。 阿里正在从杭州走向全世界&#xff0c;也有越来越多的人才&am…

如何提高一个研发团队的“代码速度”?

摘要&#xff1a; 蚂蚁金服国际事业群技术风险部研究员南门&#xff0c;将和大家聊聊Code Velocity&#xff0c;希望能在团队效率问题方面&#xff0c;为你带来一些启发。 什么是代码速度&#xff08;Code Velocity&#xff09;&#xff1f; Code Velocity的定义是&#xff1…