Skip to content

Latest commit

 

History

History
178 lines (135 loc) · 14 KB

README.md

File metadata and controls

178 lines (135 loc) · 14 KB

Pharo-AI - Machine Learning in Pharo

Pharo version Pharo version Pharo version CI License

Description

A meta package to load all related Machine Learning libraries in Pharo.

For more information about the naming convention or the requirement to be integrated in Pharo-AI, refere to the Contribution file.

Installation

You can load all the Artificial Intelligence packages from the pharo-ai project into a fresh Pharo image by going to the Playground (Ctrl + OW/Cmd + OW) and executing the following expression (select it and press Do-it button or Ctrl+D/Cmd+D):

EpMonitor disableDuring: [
    Metacello new
        baseline: 'AIPharo';
        repository: 'github://pharo-ai/ai/src';
	onWarningLog;
	onConflictUseIncoming;
        load ]

This should load the default version of the AIPharo (you can also specify another version or branch).

To add it to your Baseline:

    spec
	    baseline: 'AIPharo'
	    with: [ spec repository: 'github://pharo-ai/ai/src' ]

If you are new to baselines and Metacello, check out the Baselines tutorial on Pharo Wiki.

Implemented Algorithms

Machine Learning

Name Chapter "How to use" Coverage CI Status Dependencies
Linear Regression WiP Yes Coverage Status Build status None
Logistic Regression No Yes Coverage Status Build status None
K-Means No No Coverage Status Build status AIEditDistances
K-Nearest Neighbours No Yes Coverage Status Build status AIEditDistances
Naive Bayes Classifier No No Coverage Status Build status None
Decision Tree Model No Yes Coverage Status Build status DataFrame, AIDatasets

Data Mining

Name Chapter "How to use" Coverage CI Status Dependencies
A-Priori Yes Yes Coverage Status Build status ContainersOrderedSet

Natural Language Processing

Name Chapter "How to use" Coverage CI Status Dependencies
N-gram Model No Yes* Coverage Status Build status
Term Frequency - Inverse Document Frequency Yes Yes Coverage Status Build status None

Data Preprocessing

Name Chapter "How to use" Coverage CI Status Dependencies
Data Partitioners No Yes Coverage Status CI None
Data Imputers No Yes Coverage Status CI None
Data Preprocessing No Yes Coverage Status CI None

Datasets

Name "How to use" Coverage CI Status Dependencies
Datasets Yes Coverage Status Build status External Dependencies (DataFrame)

Metrics

Name Chapter "How to use" Coverage CI Status Dependencies
Metrics No Yes Coverage Status Build status External Dependencies (VectorMatrix)
Edit Distances No Yes Coverage Status Build status None

Applications

Name "How to use" Coverage CI Status Dependencies
Spelling Correction Yes Coverage Status Build status None

Tools

Name "How to use" Coverage CI Status Dependencies
Data inspector Yes Coverage Status Build status External Dependencies (DataFrame, Roassal3)

Work in Progress

Machine Learning: 

Name "How to use" Coverage CI Status Dependencies
Gaussian Mixture Model No No Coverage Status Build status
Hierarchical Clustering No No Coverage Status Build status

Pharo-AI and Pharo-Launcher

Pharo-launcher is a great tool to manage Pharo images and here we are going to explain how to be able to get pharo-ai images from it.

Pharo launcher comes with a default set of sources to fetch Pharo images. It also allows one to add its own sources, and we will show here how to add Pharo-AI as one of your own source.

It is doable thanks to the mysources.list of pharo-launcher file located in the PhLUserTemplateSources sourcesFile folder. If present, this file defines additional template sources beyond the official list of templates. At this time, there is no UI to add them.

To find the right folder:

  • Open the Pharo Launcher
  • Open a Playground (Ctrl + O, Ctrl + W)
  • Execute PhLUserTemplateSources sourcesFile

You can now edit mysources.list in this folder to add the Pharo-AI images you wish to have in your Pharo launcher. Here is an example:

[
	PhLTemplateSource {
		#type : #URLGroup,
		#name : 'Pharo-AI',
		#templates : [
			PhLTemplateSource {
				#type : #URL,
				#name : 'AI Pharo 10 - master',
				#url : 'https://github.com/pharo-ai/ai/releases/download/continuous/Pharo-AI-Pharo64-10.zip'
			},
			PhLTemplateSource {
				#type : #URL,
				#name : 'AI Pharo 11 - master',
				#url : 'https://github.com/pharo-ai/ai/releases/download/continuous/Pharo-AI-Pharo64-11.zip'
			},
			PhLTemplateSource {
				#type : #URL,
				#name : 'AI Pharo 10 - v0.8.0',
				#url : 'https://github.com/pharo-ai/ai/releases/download/v0.8.0/Pharo-AI-Pharo64-10.zip'
			},
			PhLTemplateSource {
				#type : #URL,
				#name : 'AI Pharo 11 - v0.8.0',
				#url : 'https://github.com/pharo-ai/ai/releases/download/v0.8.0/Pharo-AI-Pharo64-11.zip'
			}
		]
	}
]

This templates will add a Pharo-AI group in the templates of the Pharo-Launcher. This group will contain 4 entries:

  • Pharo AI built from the latest commit of master in Pharo 10
  • Pharo AI built from the latest commit of master in Pharo 11
  • Pharo AI built from release v0.8.0 in Pharo 10
  • Pharo AI built from release v0.8.0 in Pharo 11

You can then adapt those sources to what you need