machine-learningAan de slag met machine-learning


Opmerkingen

Machine Learning is de wetenschap (en kunst) van het programmeren van computers zodat ze van gegevens kunnen leren.

Een meer formele definitie:

Het is het vakgebied dat computers de mogelijkheid biedt om te leren zonder expliciet te worden geprogrammeerd. Arthur Samuel, 1959

Een meer technisch georiënteerde definitie:

Er wordt gezegd dat een computerprogramma leert van ervaring E met betrekking tot een bepaalde taak T en enige prestatiemaatstaf P, als zijn prestaties op T, gemeten door P, verbeteren met ervaring E. Tom Mitchell, 1997

Bron: “Hands-On Machine Learning met Scikit-Learn en TensorFlow door Aurélien Géron (O'Reilly). Copyright 2017 Aurélien Géron, 978-1-491-96229-9. ”

Machine learning (ML) is een gebied van informatica dat voortkomt uit onderzoek naar kunstmatige intelligentie. De kracht van machine learning ten opzichte van andere vormen van analyse ligt in het vermogen om verborgen inzichten te ontdekken en de resultaten van toekomstige, ongeziene input te voorspellen (generalisatie). In tegenstelling tot iteratieve algoritmen waarbij bewerkingen expliciet worden aangegeven, lenen machine learning-algoritmen concepten uit de waarschijnlijkheidstheorie om statistische modellen te selecteren, evalueren en verbeteren.

Installatie of instellingen met Python

1) Scikit leren

scikit-learn is een Python-module voor machine learning gebouwd bovenop SciPy en gedistribueerd onder de 3-clausule BSD-licentie. Het beschikt over verschillende classificatie-, regressie- en clusteringalgoritmen, waaronder ondersteuning van vectormachines, random forests, gradiëntversterking, k-gemiddelden en DBSCAN, en is ontworpen om samen te werken met de numerieke en wetenschappelijke bibliotheken NumPy en SciPy van Python.

De huidige stabiele versie van scikit-learn vereist :

  • Python (> = 2.6 of> = 3.3),
  • NumPy (> = 1.6.1),
  • SciPy (> = 0,9).

Voor de meeste installaties kan pip python package manager python en al zijn afhankelijkheden installeren:

pip install scikit-learn
 

Voor Linux-systemen wordt echter aanbevolen conda pakketbeheer te gebruiken om mogelijke build-processen te voorkomen

conda install scikit-learn
 

Om te controleren of je scikit-learn , voer je uit in shell:

python -c 'import sklearn; print(sklearn.__version__)'
 

Installatie van Windows en Mac OSX:

Canopy en Anaconda leveren beide een recente versie van scikit-learn , naast een grote set wetenschappelijke pythonbibliotheken voor Windows, Mac OSX (ook relevant voor Linux).

Officiële broncode repo: https://github.com/scikit-learn/scikit-learn


2) Numenta-platform voor intelligent computergebruik

Het Numenta Platform voor Intelligent Computing (NuPIC) is een machine-intelligentieplatform dat de HTM-leeralgoritmen implementeert. HTM is een gedetailleerde computationele theorie van de neocortex. De kern van HTM zijn tijdgebaseerde algoritmen voor continu leren die ruimtelijke en temporele patronen opslaan en oproepen. NuPIC is geschikt voor een verscheidenheid aan problemen, met name anomaliedetectie en voorspelling van streaming gegevensbronnen.

NuPIC-binaries zijn beschikbaar voor:

Linux x86 64bit
OS X 10.9
OS X 10.10
Windows 64bit

De volgende afhankelijkheden zijn vereist om NuPIC op alle besturingssystemen te installeren.

  • Python 2.7
  • pip> = 8.1.2
  • setuptools> = 25.2.0
  • wheel> = 0.29.0
  • numpy
  • C ++ 11 compiler zoals gcc (4.8+) of clang

Aanvullende OS X-vereisten:

  • Xcode-opdrachtregelprogramma's

Voer de volgende stappen uit om NuPIC te installeren:

pip install nupic
 

Officiële broncode repo: https://github.com/numenta/nupic


3) Nilearn

Nilearn is een Python-module voor snel en eenvoudig statistisch leren over NeuroImaging-gegevens. Het maakt gebruik van de scikit-learn Python-toolbox voor multivariate statistieken met toepassingen zoals voorspellende modellen, classificatie, decodering of connectiviteitsanalyse.

De vereiste afhankelijkheden om de software te gebruiken zijn:

  • Python> = 2.6,
  • setuptools
  • Numpy> = 1.6.1
  • SciPy> = 0,9
  • Scikit-leren> = 0.14.1
  • Nibabel> = 1.1.0

Als u nilearn-plotfuncties gebruikt of de voorbeelden uitvoert, is matplotlib> = 1.1.1 vereist.

Als u de tests wilt uitvoeren, hebt u neus> = 1.2.1 en dekking> = 3.6 nodig.

Zorg er eerst voor dat u alle hierboven genoemde afhankelijkheden hebt geïnstalleerd. Vervolgens kunt u nilearn installeren door de volgende opdracht in een opdrachtprompt uit te voeren:

pip install -U --user nilearn
 

Officiële broncode repo: https://github.com/nilearn/nilearn/

4) Anaconda gebruiken

Veel wetenschappelijke Python-bibliotheken zijn direct beschikbaar in Anaconda. U kunt installatiebestanden hier downloaden . Aan de ene kant hoef je met Anaconda niet veel pakketten te installeren en te configureren, het is BSD-gelicentieerd en heeft een triviaal installatieproces, beschikbaar voor Python 3 en Python 2, terwijl het aan de andere kant je minder flexibiliteit geeft. Als voorbeeld kunnen sommige geavanceerde deep learning python-pakketten een andere versie van numpy gebruiken dan Anaconda heeft geïnstalleerd. Dit nadeel kan echter worden aangepakt met behulp van een andere python-installatie afzonderlijk (bijvoorbeeld in Linux en MAC uw standaardinstelling).

Anaconda setup vraagt je om de selectie van de installatielocatie en vraagt je ook om de optie PATH-toevoeging. Als u Anaconda aan uw PATH toevoegt, wordt verwacht dat uw besturingssysteem Anaconda Python als standaard zal vinden. Daarom zijn wijzigingen en toekomstige installaties alleen beschikbaar voor deze Python-versie.

Om het duidelijk te maken, na installatie van Anaconda en je voegt het toe aan PATH, met behulp van Ubuntu 14.04 via terminal als je typt

python
 

Anaconda Python via Terminal

Voila, Anaconda Python is je standaard Python, je kunt meteen genieten van het gebruik van veel bibliotheken. Als u echter uw oude Python wilt gebruiken

/usr/bin/python
 

Standaard Python via Terminal

Kort gezegd is Anaconda een van de snelste manieren om machine learning en data-analyse met Python te starten.

Installatie of instellingen met R Language

Pakketten zijn verzamelingen van R-functies, gegevens en gecompileerde code in een goed gedefinieerd formaat. Openbare (en privé) opslagplaatsen worden gebruikt om collecties van R-pakketten te hosten. De grootste verzameling R-pakketten is verkrijgbaar bij CRAN. Enkele van de meest populaire R machine learning-pakketten zijn onder andere de volgende:

1) deel

Beschrijving: Recursieve partitionering voor classificatie-, regressie- en overlevingsbomen. Een implementatie van de meeste functies van het boek uit 1984 van Breiman, Friedman, Olshen en Stone.

Het kan vanuit CRAN worden geïnstalleerd met de volgende code:

install.packages("rpart")
 

Laad het pakket:

library(rpart)
 

Officiële bron: https://cran.r-project.org/web/packages/rpart/index.html


2) e1071

Beschrijving: functies voor latente klassenanalyse, korte tijd Fourier-transformatie, fuzzy clustering, ondersteuning van vectormachines, kortste padberekening, in zakken verpakte clustering, naïeve Bayes-classificator etc.

Installatie van CRAN:

install.packages("e1071")
 

Het pakket laden:

library(e1071)
 

Officiële bron: https://cran.r-project.org/web/packages/e1071/index.html


3) randomForest

Beschrijving: classificatie en regressie op basis van een bos met behulp van willekeurige invoer.

Installatie van CRAN:

install.packages("randomForest")
 

Het pakket laden:

library(randomForest)
 

Officiële bron: https://cran.r-project.org/web/packages/randomForest/index.html


4) verzorger

Beschrijving: Diverse functies voor het trainen en plotten van classificatie- en regressiemodellen.

Installatie van CRAN:

install.packages("caret")
 

Het pakket laden:

library(caret)
 

Officiële bron: https://cran.r-project.org/web/packages/caret/index.html