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