donderdag 17 augustus 2017

cursus big data en python


Cursus

Big data python
Stefan Reitsma en Dennis Ramont (Big Data Republic)
Verschillende Rollen: BD Architect, BD Engineer, BD Scientist


V's van Big Data
Volume
Velocity: gaat niet alleen om grootte maar ook om snelheid waarop het binnenkomt
Variety:  heel veel data toevoegen van andere systemen
Valence:  hoeveelheid connecties in je data. bijv facebook links, 500 links is grote valentie
Veracitiy: accuraatheid data
Value:
Volgens docent zijn dit de core concepts:  Big, Diverse, Fast die zich onderscheiden van gewone architectuur

Big data vs tradional
Without Big Data
tradionele analyses. met de hand business regels programmeren. => Customer Segments
werkt niet bij grote datasets, niet onderhoudbaar. dan moeten er steeds analyses met de hand gedaan BESCHRIJVEN wat in verleden is gebeurd

With Big Data
meer automatisch, meer ongestructureerd data, machine learning ipv business rules.Meer persoons gericht. meer VOORSPELLEN dan beschrijvend

In praktijk wordt vaak op een aparte site een machine learning algoritme neergezet die via een rest Api vanaf een andere server aangeroepen wordt.
Veel algoritmes zijn een black box


numpy: matrix bewerken
pandas : tabellen laden, gestructeerde data. in een bepaalde kolom iets wijzigen
scikit-learn:  peer reviewed machine learning algoritmes. algoritme zoals bedoeld door de auteur.

List : lijst met objecten van het verschillende typen
tupel: voor gelimiteerde sets. functie die 2 waarden returned.
dictionary   : verschillende typens key,value. Volgorde is niet belangrijk.
set: net als lijst, maar alleen unieke elementen, verschillende typen.


unique, counts = numpy.unique(a, return_counts=True)


Python virtualisatie
zonder dit komt alles in je Root environment. dat is net heel handig, wordt een rommel. Via een virtual python omgeving
virtualenv: wordt meegeleverd met python
conda: anaconda package manager




zip functie

Plak 2 Numpyarrays of lijsten aan elkaar met dezelfde lengte via de ZIP functie

 Alleen als je dit wilt printen moet je het printable maken via list of je kan er ook een dict van maken via dict


def Geef_Aantal_Voorkomens2(nparr):
    unique,counts=np.unique(nparr, return_counts=True)
    output=dict(zip(unique,counts))
    print(output)

GEEFT:  
{'Amsterdam': 8, 'Roterdam': 1, 'Rotterdam': 6, 'Utrecht': 5



 via List

  output=list(zip(unique,counts))

[('Amsterdam', 8), ('Roterdam', 1), ('Rotterdam', 6), ('Utrecht', 5)]
 
lijst van  immutable tupels
 


filter en map zijn voorbeelden van functioneel programmeren








Python Environment
 
voor elk project een nieuwe environment aanmaken.
dus op git zet je de environment file neer.  
 
 

source activate environment 
conda env export >envirionment.yml
 
conda env create -f environment.yml newenvironment

in jupiter notebook

conda install nb_conda installeren in alle environments. Hierdoor wordt het mgelijk om te switchen





Data processing Pipeline

verkennen van de data

aggregatie: als je bijv heel veel bestanden per dag krijgt dan aggregere op dag

dummy encoding:

gender
m
m
v
v
m

je weet niet wat dat is dan dummy encodign
           gender_m
m             1
v             0



gender_m   gender_v 
m           0    1


Standaardiseren en normaliseren


Feature scaling:









Geen opmerkingen:

Een reactie posten

Datums bepalen adhv begin en einddatum in Dataframe

Voorbeeld op losse velden  ####################################################################### # import necessary packages from datetime...