JavaScript中的简单机器学习项目

  |   0 评论   |   0 浏览   |   给我丶鼓励

Web 浏览器中可以实现机器学习吗?

是的,可以使用 JavaScript 在浏览器中完全定义,训练和部署机器学习算法。

尽管它可能不是机器学习的常规选择,但事实证明 JavaScript 能够完成这样的任务-即使它不能与主要的机器学习语言 Python 竞争。

在继续之前,让我们对机器学习进行一些介绍。

机器学习使计算机具有从提供的数据中学习,识别模式并得出结论的能力,而无需明确的人工干预。

传统上,由于多种原因,JavaScript 在机器学习中并不常用,包括有限的库支持和实现复杂性。

尽管如此,JavaScript 最近变得流行起来,主要是因为在完全在客户端上部署机器学习应用程序时有大量机会。

在本文中,我将说明一个简单的机器学习教程项目,该项目演示了 JavaScript 也能够为机器学习应用程序提供支持。

让我们开始吧

对于这个简单的项目,我将使用 brain.js,这是一个方便的开源 JavaScript 库,带有用于机器学习的预制神经网络。

该项目的目的是使用一组训练数据来训练神经网络,从而可以预测颜色对比是浅色还是深色。

步骤 1:安装库

让我们使用 Node.js 通过 npm 软件包管理器安装该库。为此,您需要在计算机上预安装 Node.js。

这是您可以在终端上运行的代码。(请记住将其安装在您要使用的文件夹中)。

npm install brain.js

步骤 2:导入库

使用以下代码将库导入文件中:

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

步骤 3:建立神经网络

这是代码:

const network = new brain.NeuralNetwork();

步骤 4:训练资料

在机器学习中,训练数据与将要接收的结果一样好。与较低质量的数据相比,较高质量的数据可能会预测更好的结果。

此数据是提供给算法的一组示例,以“指示”搜索内容。

在这种情况下,由于我们希望我们的机器学习算法学习识别明暗对比之间的差异,因此我们将提供这些示例来训练模型。

此后,该算法将使用所提供的示例来区分两组之间的基本特征。

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

对于这个项目,我们将使用内置的 brain.js **train()**函数来使用一系列示例数据来训练我们的神经网络。

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

由于我们正在处理颜色,因此我们将选择其 RGB 值。由于 RGB 颜色在 0 到 255 之间,因此我们可以将它们除以 255,从而将其值转换为 0 到 1 之间的值。

例如,如果颜色的 RGB 值为(158,183,224)。如果我们将每个值除以 255,则将变为(0.62,0.72,0.88)。

此后,我们需要提供一些示例 RBG 值的数据集,并指定输出是亮还是暗。

这是代码:

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}},
  ]);

步骤 5:查看结果

在使用一些示例数据对算法进行了训练之后,现在该查看预测结果了。

你兴奋吗?

我们只需要调用**run()**函数并提供一个我们想知道是浅色还是深色的色相参数即可。

这是代码:

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

如您所见,我们的初学者机器学习算法预测颜色对比度为浅色,准确度为 0.97(97%)。

如果我们希望输出为亮或暗,则可以添加以下代码:

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

结论

这是整个项目的代码:

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中的简单机器学习项目
作者:给我丶鼓励
地址:https://blog.doiduoyi.com/articles/1592319585109.html

评论

发表评论