Hal9: Data Science with JavaScript

This page summarizes the projects mentioned and recommended in the original post on /r/datascience

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • hal9ai

    Discontinued Hal9 — Data apps powered by code and LLMs [Moved to: https://github.com/hal9ai/hal9]

  • In the meantime, we think Data Science with JavaScript shines with small datasets and interactive visualizations; which we believe Hal9 can help you be productive at. That said, we do believe there must be motivated JavaScript fans out there to unblock themselves with new functionality and contributing back to our open source project, please do reach out in Hal9's GitHub repo if you wanna lend a hand!

  • regression-js

    Curve Fitting in JavaScript.

  • Modeling: We are currently exploring this space so our findings are not final yet but let me share what we've found so far. TensorFlow.js is absolutely amazing, it provides a native port from TensorFlow to JavaScript with CPU, WebGL, WebAssembly and NodeJS backends. We were able to write an LSTM to do time series prediction, so far so good. However, we started hitting issues when we started to do simpler models, like a linear regression. We tried Regression.js but we found it falls short, so we wrote our own script to handle single-variable regressions using TF.js and gradient decent. It actually worked quite well but exposed a flaw in this approach; basically, there is a lot of work to be done to bring many models into the web. We also found out Arquero.js does not play nicely with TF.js since well, Arquero.js does not support tensors; so we went on to explore Danfo.js, which integrates great with TF.js but we found out it's hard to scale it's transformations to +1M rows and found other rough edges. Since then, well, we started exploring Pyodide and perhaps contributing to Danfo.js, or perhaps involve more server-side compute, but that will be a story for another time.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • arquero

    Query processing and transformation of array-backed data tables.

  • Transformations: We found out that JavaScript in combination with D3.js has a pretty decent set of data transformation functions; however, it comes nowhere near to Pandas or dplyr. We found out about Tidy.js quite early, loved it, and adopted it. The combination of Tidy.js and D3.js and Plot.js is absolutely amazing for visualizations and data wrangling with small datasets, say 10-100K rows. We were very happy with this for a while; however, once you move away from visualizations into real-world data analysis, we found out 100K rows restrictive, which gets worse when having 100 or 1K columns. So we switched gears and started using Arquero.js, which happens to be columnar and enabled us to process +1M rows in the browser, descent size for real-world data analysis.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts