Skip to content

Welcome to JML (Java Machine Learning), a Java implementation of basic clustering techniques from scratch using the MNIST dataset. This project made me expand my technical ability in Java programming as well as my knowledge in machine learning by solving problems covered by popular Python packages such as Pandas and Sklearn.

License

Notifications You must be signed in to change notification settings

martinsejas/Java-Machine-Learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Machine Learning (JML)

NOTE: Feel free to check the output images below!

Welcome to JML, a Java implementation of basic clustering techniques from scratch using the MNIST dataset. This project made me expand my technical ability in Java programming as well as my knowledge in machine learning by solving problems covered by popular Python packages such as Pandas and Sklearn, by coding everything from scratch.

Throughout this project, I aimed to develop robust object-oriented code and implemented testing to ensure that all of my code was reliable and efficient. Achieving a performant AI algorithm was NOT the objective of this project.

This project originally stemmed from a course of my Artificial Intelligence Master's but I went beyond the scope of the assignment attempting to explore various implementations of AI in Java.

I thoroughly enjoyed developing my skills in implementing AI in other programming languages that are not Python, and to gain another perspective in machine learning.


Exploring the Code

The best way to explore the code is to clone this repository in your local machine, and opening it in a IDE, preferably IntelliJ Idea (JetBrains) which is the one that was used to create this project.

If not I do recommend starting on the folder src/main which is the main starting point. Under src/ we also have the folder test/ containing all of the testing code. Once you are there, just execute 'Main' to view the output.

I have also included the original assignment prompt as a PDF, which should help make sense of the code (with permission of my University), feel free to explore the code, I made sure to comment as thoroughly as possible.

If any doubts, clarifications or feedback please feel free to contact me.

Thank you for checking out my work.

Folder structure:

+---.idea
+---dataset
+---src
|   +---main (START HERE)
|   |   +---java
|   |   |   \---fr
|   |   |       \---epita
|   |   |           \---sejas
|   |   |               \---martin
|   |   |                   +---centroid
|   |   |                   +---exceptions
|   |   |                   \---images
|   |   \---resources
|   \---test
|       \---java
|           +---services
|           \---test
\---target (IGNORE)
 

Outputs

Rendering a sample from the dataset:

image

Printing dataset distribution:

image

Printing class metrics:

image

Generating Confusion Matrix:

image

About

Welcome to JML (Java Machine Learning), a Java implementation of basic clustering techniques from scratch using the MNIST dataset. This project made me expand my technical ability in Java programming as well as my knowledge in machine learning by solving problems covered by popular Python packages such as Pandas and Sklearn.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages