BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

jStat:轻量级Javascript统计库

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 崔康 关注 1 他的粉丝 发布于 2011年8月25日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

jStat是一个Javascript库,为开发人员提供了统计功能和在浏览器中绘制相应图形的特性。jStat能够在所有浏览器中执行统计操作,它需要jQuery绘制数据的插件。jStat是开源统计语言和环境R的部分移植版。

InfoQ采访了Matthew Williams(英国伯明翰阿斯顿大学研究员、jStat团队成员),了解jStat提供的功能:

jStat的核心基于向量和矩阵(很像MatLab)。基本单元是矩阵,可以通过jStat函数(j$)来创建:

§ var matrix = j$([[1,2,3],[4,5,6],[7,8,9]])

每一个矩阵包含许多方法,包括加法、除法、乘法、减法、对角线、反对角线、转置、点积、正规化、最小值、最大值、平均值和中间值等。

概率发布包括:正态、对数正态、β、γ、韦伯、柯西、卡方、指数、帕雷托、student T等。每一种概率分布都可以计算PDF、CDF并且在给定X值(或者矩阵值)对CDF反向计算。你也可以计算平均值、中间值、取模、标准差和方差。同时,所有分布都能够产生随机样本。

jStat还包括了许多“特殊”的函数,包括:伽马函数、反伽马函数、贝塔函数、反贝塔函数、不完全贝塔函数、对数伽马函数、反不完全伽马函数、误差函数、余误差函数、逆余误差函数。它还包含了一些随机数生成器:randn(正态分布的随机样本)和randg(伽马分布的随机样本)。

阿斯顿大学的在读学生Tushar Gupta在今天夏天添加了一些其他功能,如使用Nelder-Mead和非线性共轭梯度算法做优化、线性代数函数包括积分、微分和插值。

jStat项目相对年轻,最缺乏的是丰富的绘图功能,计划在未来添加。之前没有清晰的路线图,jStat团队决定未来要做计划,包括提供一个插件体系,支持对项目感兴趣的人扩展它。Williams表示:

jStat未来有很多计划。我们正在开发一个回归包,为更复杂的贝叶斯方法提供简单的线性回归。而且,还要提供一些更复杂的绘图功能,包括多元变量绘制(3D)。同时,进一步的设想是创建一个全交互式的jStat环境。

就像cloud9是一个在线IDE一样,jStat希望提供一个在线Matlab/R的环境,跟踪变量、交互绘图和保存、恢复工作。

我们也希望创建一个插件体系,其他人可以为jStat创建扩展插件。我认为如果插件系统完善,jStat会有巨大的潜力。

至于官方路线图,目前还很困难。现在我们正忙于重构和记录修改历史,一旦完成这些工作,我们会更新jStat网站并提供教程。希望未来几个月能够实现这个目标,往前迈一大步。如果达到这个里程碑,我们会更好地计划jStat的未来。

源代码可以从这里Github/jstat查看,基于MIT license授权。

对于更强壮和成熟的统计解决方案,可以使用R——完整的框架,可以执行所有的统计运算和绘制(支持Unix、Mac和Windows)。但是R适合编写原生统计应用,而jStat适合轻量级跨浏览器web应用(不需要R提供的所有功能)。(jStat的精简版本有40KB,而R的Widnows安装包有39MB)。

查看英文原文jStat: A Lightweight Statistical JavaScript Library

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT