MCPcopy Index your code
hub / github.com/EdwardRaff/JSAT

github.com/EdwardRaff/JSAT @0.0.9

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.0.9 ↗ · + Follow
9,467 symbols 35,871 edges 817 files 3,824 documented · 40%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Java Statistical Analysis Tool

Join the chat at https://gitter.im/EdwardRaff/JSAT

JSAT is a library for quickly getting started with Machine Learning problems. It is developed in my free time, and made available for use under the GPL 3. Part of the library is for self education, as such - all code is self contained. JSAT has no external dependencies, and is pure Java. I also aim to make the library suitably fast for small to medium size problems. As such, much of the code supports parallel execution.

Get JSAT

You can download JSAT from maven central, add the below to your pom file

<dependencies>
  <dependency>
    <groupId>com.edwardraff</groupId>
    <artifactId>JSAT</artifactId>
    <version>0.0.8</version>
  </dependency>
</dependencies>

If you want to use the bleeding edge, but don't want to bother building yourself, I recomend you look at jitpack.io. It can build a POM repo for you for any specific commit version. Click on "Commits" in the link and then click "get it" for the commit version you want.

If you want to read the javadoc's online, you can find them hosted on my website here.

Why use JSAT?

For research and specialized needs, JSAT has one of the largest collections of algorithms available in any framework. See an incomplete list here.

Additional, there are unfortunately not as many ML tools for Java as there are for other lanagues. Compared to Weka, JSAT is usually faster.

If you want to use JSAT and the GPL is not something that will work for you, let me know and we can discuss the issue.

See the wiki for more information as well as some examples on how to use JSAT.

Note

Updates to JSAT may be slowed as I begin a PhD program in Computer Science. The project isn’t abandoned! I just have limited free time, and will be balancing my PhD work with a full time job. If you discover more hours in the day, please let me know! Development will be further slowed due to some health issues. I had to spend much of my time recently on this but am begining to improve. I'll continue to try and be prompt on any bug reports and emails, but new features will be a bit slower.

Citations

If you use JSAT and find it helpful, citations are appreciated! Please cite the JSAT paper published at JMLR. If your feeling a little lazy, the bibtex is below:

@article{JMLR:v18:16-131,
author = {Raff, Edward},
journal = {Journal of Machine Learning Research},
number = {23},
pages = {1--5},
title = {JSAT: Java Statistical Analysis Tool, a Library for Machine Learning},
url = {http://jmlr.org/papers/v18/16-131.html},
volume = {18},
year = {2017}
}

Extension points exported contracts — how you extend this code

SingleWeightVectorModel (Interface)
This interface is for binary classification and regression problems where the solution can be represented as a single we [44 …
JSAT/src/jsat/SingleWeightVectorModel.java
SimpleWeightVectorModel (Interface)
This interface is for multi-class classification problems where there may be K or K-1 weight vectors for < [31 implementers]
JSAT/src/jsat/SimpleWeightVectorModel.java
VectorCollectionFactory (Interface)
A factory interface for the creation of VectorCollection objects. @author Edward Raff [11 implementers]
JSAT/src/jsat/linear/vectorcollection/VectorCollectionFactory.java
VectorCollection (Interface)
A Vector Collection is a collection of vectors that is meant to be used to obtain a subset of the collection via a query [8 …
JSAT/src/jsat/linear/vectorcollection/VectorCollection.java
IncrementalCollection (Interface)
This interface is for Vector Collections that support incremental construction. If all data is available at the onset, i [7 …
JSAT/src/jsat/linear/vectorcollection/IncrementalCollection.java

Core symbols most depended-on inside this repo

size
called by 1346
JSAT/src/jsat/linear/vectorcollection/VectorCollection.java
get
called by 892
JSAT/src/jsat/linear/Vec.java
get
called by 802
JSAT/src/jsat/classifiers/linear/LinearBatch.java
add
called by 730
JSAT/src/jsat/linear/Vec.java
put
called by 520
JSAT/src/jsat/utils/IntDoubleMap.java
length
called by 507
JSAT/src/jsat/linear/Vec.java
getRandom
called by 497
JSAT/src/jsat/utils/random/RandomUtil.java
log
called by 405
JSAT/src/jsat/math/FastMath.java

Shape

Method 8,524
Class 848
Interface 57
Enum 38

Languages

Java100%

Modules by API surface

JSAT/src/jsat/classifiers/trees/ExtraTree.java62 symbols
JSAT/src/jsat/linear/Vec.java55 symbols
JSAT/src/jsat/classifiers/linear/LinearBatch.java54 symbols
JSAT/test/jsat/linear/GenericMatrixTest.java51 symbols
JSAT/src/jsat/classifiers/neuralnetwork/BackPropagationNet.java51 symbols
JSAT/src/jsat/linear/VecPaired.java47 symbols
JSAT/src/jsat/linear/Matrix.java47 symbols
JSAT/src/jsat/linear/SparseVector.java44 symbols
JSAT/test/jsat/linear/SparseVectorTest.java43 symbols
JSAT/test/jsat/linear/MatrixOfVecsTest.java43 symbols
JSAT/test/jsat/linear/DenseMatrixTest.java41 symbols
JSAT/src/jsat/linear/vectorcollection/VPTree.java41 symbols

For agents

$ claude mcp add JSAT \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact