# Inductive Inference

 home1 home2  Bib  Algorithms  Bioinfo  FP  Logic  MML  Prog.Lang and the  Book

FP (external)
FP (local)
II
#aims
#analogies
#it's not
#references
ver.1.0 (.hs)
ver.1.1 (.hs)+studies
IP 1.2+(.hs)
Data

Also see:
MML
Structured
Ockham's Razor
implementation

The project is to form a "theory" (or prelude or semantics or model(!)) of `programming with "statistical models" from AIDMIIMLSI', using Haskell as the analytical tool.

The project aims are, in order of priority:

1. Understand and formally define exactly what "statistical models" (i.e. the products[1] of AIDMIIMLSI[2]) really are from a programming point of view, that is how do they behave, what can be done to each one, and how can two or more be combined?
2. Develop
1. (polymorphic) types and type-classes to define "statistical models", and
2. a useful set of operators (functions, combinators, methods) to act on them,
i.e. a prelude (library).
3. Dismember and reconstruct a few representative, important and well-known "statistical models" from AIDMIIMLSI and, while doing so,
2. make a broad claim to being realistic.
4. Eventually, encode as much as possible of AIDMIIMLSI in a convenient, compact library while adding lightness and generality.

[1] E.g. Mixture-modelling (unsupervised classification, clustering), classification- (decision-) trees (supervised classification, expert systems), or Bayesian/ causal networks/ models, etc..

[2] Definition: AIDMIIMLSI = artificial-intelligence/ data-mining/ inductive-inference/ machine-learning/ statistical-inference/ etc., call it what you will, i.e. somewhere between the intersection and union of these areas. ( ~ Super Thunder Sting Car Ray Bird -- Pete & Dud.)

Note that the getting of understanding is the primary aim, and it could, for example, be used to (i) design better components for an existing AIDMIIMLSI platform, (ii) design a better AIDMIIMLSI platform, or even (iii) build a serious platform in Haskell, but these other things are secondary not primary aims.

## Analogies

(notes)
This exercise is to artificial-intelligence/ data-mining/ inductive-inference/ machine-learning/ statistical-inference
as PreludeList (map, fold, zip, ...) is to list-processing Imagine yourself in the late 1950s or the early 1960s developing Lisp (McCarthy et al), or APL (Iverson), or similar. NB. PreludeList now has 40+ years of experience behind it!
parser combinators parsing
the mathematical semantics of Algol-60 (Moses 1974) the programming language Algol-60 Understanding of Algol-60 compared to other languages.
and
function is to functional- programming
as statistical model is to <what?>- programming, perhaps 'inductive- programming'? The term I.P. was suggested by Charles Twardy (2004).

other "possible" approaches
approach why not
Create a new language for machine learning A lot of work. Hard to maintain, 'port, etc.. Unlikely to improve on Haskell's notion of value and type (although a simplified, specialised subset might be a "goer"). Don't create languages without good reasons.
1-1 translate some existing AIDMIIMLSI platform directly into Haskell, say. Might be useful but does not aid understanding.

the project is not primarily about... ...because
Any particular application area or problem instance of AIDMIIMLSI (if it was it might use R,  rather)  it is about understanding what AIDMIIMLSI could be.
Software Engineering although it has aspects of a software engineering job on AIDMIIMLSI.
Stamp (i.e. model) collecting no way, but it is about understanding the machinery that allows stamps to be produced, and generalized.
Haskell Haskell is "just" a good tool. But it is curious that there is no built-in [class Function], or [class Pair], etc..

## Terminology

Terminology is a problem. Just consider the many uses of the words "model" and "class" in computing, mathematics and statistics.

 Coding Ockham's Razor, L. Allison, Springer A Practical Introduction to Denotational Semantics, L. Allison, CUP

 Linux  Ubuntu free op. sys. OpenOffice free office suite The GIMP ~ free photoshop Firefox web browser

 © L. Allison   http://www.allisons.org/ll/   (or as otherwise indicated), Faculty of Information Technology (Clayton), Monash University, Australia 3800 (6/'05 was School of Computer Science and Software Engineering, Fac. Info. Tech., Monash University, was Department of Computer Science, Fac. Comp. & Info. Tech., '89 was Department of Computer Science, Fac. Sci., '68-'71 was Department of Information Science, Fac. Sci.) Created with "vi (Linux + Solaris)",  charset=iso-8859-1,  fetched Wednesday, 26-Jun-2024 08:36:37 AEST.