如何使用JavaScript构建机器学习模型

简介: 目前,机器学习领域建模的主要语言是 Python 和 R,前不久腾讯推出的机器学习框架 Angel 则支持 Java 和 Scala。本文作者 Abhishek Soni 则用行动告诉我们,开发机器学习模型,JavaScript 也可以。
目前,机器学习领域建模的主要语言是 Python 和 R,前不久腾讯推出的机器学习框架 Angel 则支持 Java 和 Scala。本文作者 Abhishek Soni 则用行动告诉我们,开发机器学习模型,JavaScript 也可以。
JavaScript?我不是应该使用 Python 吗?甚至 Scikit-learn 在 JavaScript 上都不工作。
这是可能的,实际上,连我自己都惊讶于开发者对此忽视的态度。就 Scikit-learn 而言,Javascript 的开发者事实上已经推出了适用的库,它会在本文中有所提及。那么,让我们看看 Javascript 在机器学习上能够做什么吧。
根据人工智能先驱 Arthur Samuel 的说法,机器学习为计算机提供了无需明确编程的学习能力。换句话说,它使得计算机能够自我学习并执行正确的指令,无需人类提供全部指导。
谷歌已经把自己移动优先的策略转换到人工智能优先很久了。
为什么 JavaScript 在机器学习界未被提及过?

· 慢(真的假的?)
· 矩阵操作很困难(这里有库,比如 math.js)
· 仅用于 Web 开发(然而这里还有 Node.js)
· 机器学习库通常是在 Python 上的(还好,JS   的开发者人数也不少)

在 JavaScript 中有一些可供使用的预制库,其中包含一些机器学习算法,如线性回归、SVM、朴素贝叶斯等等,以下是其中的一部分。

· brain.js(神经网络)
· Synaptic(神经网络)
· Natural(自然语言处理)
· ConvNetJS(卷积神经网络)
· mljs(一组具有多种功能的子库)
首先,我们将使用 mljs 回归库来进行一些线性回归操作。
参考代码:https://github.com/abhisheksoni27/machine-learning-with-js
1. 安装库

$ npm install ml-regression csvtojson

$ yarn add ml-regression csvtojson

ml-regression 正如其名,负责机器学习的线性回归。
csvtojson 是一个用于 node.js 的快速 CSV 解析器,它允许加载 CSV 数据文件并将其转换为 JSON。
2. 初始化并加载数据
下载数据文件(.csv),并将其加入你的项目。
链接:
http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv
如果你已经初始化了一个空的 npm 项目,打开 index.js,输入以下代码。
我把文件放在了项目的根目录下,如果你想放在其他地方,请记得更新 csvFilePath。
现在我们使用 csvtojson 的 fromFile 方法加载数据文件:
3. 打包数据,准备执行
JSON 对象被存储在 csvData 中,我们还需要输入数据点数组和输出数据点。我们通过一个填充 X 和 Y 变量的 dressData 函数来运行数据。
4. 训练模型开始预测
数据已经打包完毕,是时候训练我们的模型了。
为此,我们需要写一个 performRegression 函数:
performRegression 函数有一个方法 toString,它为浮点输出获取一个名为 precision 的参数。predictOutput 函数能让你输入数值,然后将模型的输出传到控制台。它是这样的(注意,我使用的是 Node.js 的 readline 工具):
以下是为了增加阅读用户的代码
5. 大功告成!
到你的终端上运行 node index.js,得到的输出会是这样:
恭喜!你刚刚在 JavaScript 中训练了第一个线性回归模型。(PS. 你注意到速度了吗?)

文章来源:机器之心

欢迎关注个人公众号,查看更多好文。1.gif
3c9443f5671a70732ca1e6ee8cdd027439c92725
相关文章
|
20天前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
43 0
|
4月前
|
机器学习/深度学习 JavaScript Python
GEE机器学习——混淆矩阵Classifier.confusionMatrix()和errorMatrix()和exlain()的用法(js和python代码)
GEE机器学习——混淆矩阵Classifier.confusionMatrix()和errorMatrix()和exlain()的用法(js和python代码)
151 0
|
4月前
|
机器学习/深度学习 自然语言处理 JavaScript
GEE机器学习——最大熵分类器案例分析(JavaScript和python代码)
GEE机器学习——最大熵分类器案例分析(JavaScript和python代码)
103 0
|
机器学习/深度学习 设计模式 JavaScript
|
机器学习/深度学习 前端开发 算法框架/工具
独家 | 在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)
本文首先介绍了TensorFlow.js的重要性及其组件,并介绍使用其在浏览器中构建机器学习模型的方法。然后,构建使用计算机的网络摄像头检测身体姿势的应用程序。
2788 0
|
机器学习/深度学习 数据采集 存储
基于TensorFlow.js的JavaScript机器学习-Hello World
我们有一些基于TensorFlow.js的JavaScript机器学习尝试,可以分享一点心得。
基于TensorFlow.js的JavaScript机器学习-Hello World
|
机器学习/深度学习 前端开发 JavaScript
Javascript 机器学习的四个层次
Atwood定律说,凡是可以用Javascript实现的应用,最终都会用Javascript实现掉。作为最热门的机器学习领域,服务端是Python的主场,但是到了手机端呢?Android和iOS里默认都没有Python。但是有浏览器的地方就有js,现在还有个新场景 - 小程序。
Javascript 机器学习的四个层次
|
机器学习/深度学习 JavaScript 前端开发
前端走进机器学习生态,在 Node.js 中使用 Python
从今天开始,你就可以开始看着 Python 的文档,使用 JavaScript 来“学习和使用”机器学习和深度学习了!
前端走进机器学习生态,在 Node.js 中使用 Python
|
Web App开发 机器学习/深度学习 JavaScript
【TensorFlow开发者峰会】重磅发布TensorFlow.js,完全在浏览器运行机器学习
北京时间3月31日举行的2018 TensorFlow 开发者峰会上,TensorFlow宣布重大更新:增加支持JavaScript,并推出开源库TensorFlow.js,用户可以完全在浏览器定义、训练和运行机器学习模型。
2480 0
|
机器学习/深度学习 人工智能 JavaScript
机器学习,Hello World from Javascript!
导语 Javascript 适合做机器学习吗?这是一个问号。但每一位开发者都应该了解机器学习解决问题的思维和方法,并思考:它将会给我们的工作带来什么?同样,算法能力可能会是下一阶段工程师的标配。 本文旨在通过讲解识别手写字的处理过程,带读者了解机器学习解决问题的一般过程。
2654 0