Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AudeyART

This is an educational repository for learning about ART algorithms, mainly through writing up a basic FuzzyART module and testing how it works on the Iris dataset.

Table of Contents

Usage

First, get a good Python setup going. I highly recommend using a virtual environment manager, such as mamba. For example, download the miniforge distribution for your OS.

Next, create a virtual environment like so:

mamba create -n audeyart python=3.12

Activate that environment with

mamba activate audeyart

and install the python dependencies once you're inside that environment with

pip install -r requirements.txt

Note

Read through the Requirements Description to get an understanding of what each dependency is used for and get links to their respective documentations.

File Structure

This section outlines the location and meaning of the files in this repo:

  • data/
  • notebooks
    • audeyart.ipynb: an IPython notebook (a.k.a. jupyter notebook) containing the main pedagogical material. This includes:
      1. How to write up a FuzzyART module.
      2. How to load the Iris dataset with pandas.
      3. How to cluster the Iris dataset with FuzzyART.
      4. How to visualize the results with TSNE.
    • audeyart-original.ipynb: the original notebook used as an exercise for implementing FuzzyART (without added documentation).
    • supervised.ipynb: an implementation of a simple FuzzyARTMAP (i.e., a simple supervised variant of FuzzyART).
  • .flake8: some custom Python Flake8 linting preferences, such as the config to make flake8 stop yelling if lines are longer than a meager 80 characters.
  • .gitignore: a file with patterns that are ignored by git tracking.
  • LICENSE: a text file containing the MIT license for the repo, indicating that this software is free for anyone to use in anyway with no liability attributable to the authors. This is a common license for open-source software that allows other people to use and even profit from your work without being able to blame you when they break stuff.
  • README.md: this file. Readme's are the most common top-level description of software repositories, and they are the best first place to describe your work to someone who would actually use it.
  • requirements.txt: the pip requirements file containing all of the Python dependencies for the project.

Requirements Description

The pip requirements under the requirements.txt file are listed below. For convenience, the documentation for each is linked.

  • torch: this is the pip name for PyTorch, one of the biggest libraries for working with tensor data and subsequently neural networks.
  • torchvision: PyTorch's separate library for handling vision dataset pipelines, transformations, etc. This wasn't used in the written example, but it is included because almost everything else we will write includes its functionality when working with bigger datasets.
  • jupyterlab: an all-in-one dependency for installing an IPython kernel and the notebook environment.
  • matplotlib: the most comprehensive plotting library in Python.
  • pandas: provides the DataFrame datatype for Python and all of the utilities therein to load, parse, and handle tabular data.
  • scikit-learn: the traditional machine learning toolset for Python. Most of the de facto machine learning techniques that aren't deep learning are already implemented here.

About

Learning repo for Audrey and writing FuzzyART from scratch.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages