• Stars
    star
    408
  • Rank 105,946 (Top 3 %)
  • Language
    Python
  • Created over 9 years ago
  • Updated about 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[UNMAINTAINED] Automated machine learning- just give it a data file! Check out the production-ready version of this project at ClimbsRocks/auto_ml

machineJS

a fully-featured default process for machine learning- all the parts are here and have functional default values in place. Modify to your heart's delight so you can focus on the important parts for your dataset, or run it all the way through with the default values to have fully automated machine learning!

auto_ml - machineJS, but better!

I just built out v2 of this project that now gives you analytics info from your models, and is production-ready. machineJS is an amazing research project that clearly proved there's a hunger for automated machine learning.

auto_ml tackles this exact same goal, but with more features, cleaner code, and the ability to be copy/pasted into production.

Check it out! https://github.com/ClimbsRocks/auto_ml

What is machineJS?

machineJS provides a fully automated framework for applying machine learning to a dataset.

All you have to do is give it a .csv file, with some basic information about each column in the first row, and it will go off and do all the machine learning for you!

If you've already done this kind of thing before, it's useful as an outline, putting in place a working structure for you to make modifications within, rather than having to build from scratch again every time.

machineJS will tell you:

  • Which algorithms are going to be most effective for this problem
  • Which features are most useful
  • Whether this problem is solvable by machine learning at all (useful if you're not sure you've collected enough data yet)
  • How effective machine learning can be with this problem, to compare against other potential solutions (like just taking a grouped average)

If you haven't done much (or any) machine learning before- it does some fairly advanced stuff for you!

Installation:

As a standalone directory (recommended)

If you want to install this in it's own standalone repo, and work on the source code directly, then from the command line, type the following:

  1. git clone https://github.com/ClimbsRocks/machineJS.git
  2. cd machineJS
  3. npm install
  4. pip install -r requirements.txt
  5. git clone https://github.com/scikit-learn/scikit-learn.git
  6. cd scikit-learn
  7. python setup.py build
  8. sudo python setup.py install

From the command line

node machineJS.js path/to/trainData.csv --predict path/to/testData.csv

Format of Data Files:

We use the data-formatter module to automatically format your data, and even perform some basic feature engineering on it. Please refer to data-formatter's docs for information on how to label each column to be ready for machineJS.

How to customize/dive in deeper:

machineJS is designed to be super easy to use without diving into any of the internals. Be a conjurer- just give it data and let it run! That said, it's super powerful once you start customizing it.

It's designed to be relatively easy to modify, and well-documented. The obvious place to start is inside processArgs.js. Here we set nearly all the parameters that are used throughout the project.

The other obvious area many people will be interested in is adding in new models, and different hyperparameter search spaces. This can be found in the pySetup folder. The exact steps are listed in stepsToAddNewClassifier.txt.

What types of problems does this library work on?

machineJS works on both regression and categorical problems, as long as there is a single output column in the training data. This includes multi-category (frequently called multi-class) problems, where the category you are predicting is one of many possible categories. There are no immediate plans to support multiple output columns in the training data. If you have three output columns you're interested in predicting, and they cannot be combined into a single column in the training data, you could run machineJS once for each of those three columns.

This library is well-tested on Macs. I've designed it to work on PCs as well, but I haven't tested that at all yet. If you're a PC user, I'd love some issues or Pull Requests to make this work for PCs!

Note: This library is designed to run across all but one cores on the host machine. What this means for you:

  1. Please plug in.
  2. Close all programs and restart right before invoking (this will clear out as much RAM as possible).
  3. Expect some noise from your fan- you're finally putting your computer to use!
  4. Don't expect to be able to do anything intense while this is running. Internet browsing or code editing is fine, but watching a movie may get challenging.
  5. Please don't run any other Python scripts while this is running.

Thanks for inviting us along on your machine learning journey!

More Repositories

1

auto_ml

[UNMAINTAINED] Automated machine learning for analytics & production
Python
1,641
star
2

learningmachines

Teaching machine learning!
JavaScript
46
star
3

data-formatter

Takes raw csv input and formats it to be ready for neural networks
Python
19
star
4

empythy

Automated NLP sentiment predictions- batteries included, or use your own data
Python
18
star
5

nlpSentiment

Improve upon sentiment predictions for a Twitter dataset
Python
15
star
6

ensembler

Automatically ensembles the predictions from different machine learning classifiers
JavaScript
8
star
7

Concordia

Tracking machine learning: reconciling predictions at training time and serving time, tracking feature inputs and discrepancies over time, and more
Python
6
star
8

telegraphPrepCapstone

Capstone Project for Telegraph Prep course!
JavaScript
3
star
9

arraynbow

a place for the geekiest rainbow you ever did see
JavaScript
2
star
10

telegraphPrep

Exercises for Telegraph Prep course
JavaScript
2
star
11

testingExamples

some live-coded examples to show how to set up a test suite
JavaScript
1
star
12

tabular_ml

Collecting some thoughts to see if I want to do automl again.
1
star
13

ClimbsRocks.github.io

blog
CSS
1
star
14

robots_doing

Learning RL for robots by doing
Python
1
star
15

orchestrator

A basic task scheduler
Python
1
star
16

ricochetRobots

a quick toy repo to implement the logic behind ricochet robots
JavaScript
1
star
17

terminalTest

Playing around with git on the Terminal
JavaScript
1
star
18

chatterbox-server

JavaScript
1
star
19

FavoriteHiddenSongs

HackR class project attempt to find songs that aren't on spotify
1
star
20

shortly-deploy

JavaScript
1
star
21

chatterbox-client

JavaScript
1
star
22

buzzyBug

play an evil genius, piloting a bug deeper and deeper into an unsuspecting programmer's code
JavaScript
1
star