Verdeel en heers
Data groeperen

Introductie

Hallo, en welkom terug bij les drie van onze cursus "From Media Computation to Data Science" Deze week leren we je hoe je data kunt groeperen. Laten we snel beginnen.
De orginele video van deze les met een Nederlandse ondertiteling kun je hier bekijken.

Verdeel en heers

Snap! heeft een groot aantal bibliotheken waaruit je extra en meer specifieke blokken kunt importeren. Vandaag importeren we de de extra blokken uit de "Frequency Distribution Analysis" bibliotheek. Daarvoor klik je op het file menu en selcteer je "Libraries"
Bibliotheek selecteren
Kies vervolgens de "Frequency Distribution Analysis" bibliotheek.
Helemaal onderaan de categorie "variable" vind je de nieuwe blokken uit deze bibliotheek. Sleep het
blok in het script veld. Laten we eerst een lijst gaan maken. Herinner je nog Beethoven's FΓΌr Elise? Maak eerst deze lijst,
en speel, wij houden van muziek, het begin van deze beroemde compositie voor piano af. Daarvoor maak je dit script.
Beethoven's, FΓΌr Elise
Na het bekijken van deze lijst, vertegenwoordigen de getallen in de lijst de noten van FΓΌr Elise.
Wat gaat er gebeuren wanneer we deze lijst in het
blok plaatsen? Maak deze functie
en klik er met de muis op. Het "analyze" blok geeft het aantal unieke elementen in de lijst als tabel weer. In de eerste kolom zie je de unieke elementen in de tweede kolom het aantal van de unieke elementen in de lijst. Dit noemen we een frequentiedistributie.
Start een nieuw Snap! bestand en importeer opnieuw de "Frequency Distribution Analysis" bibliotheek. Open opnieuw de Titanic dataset. In de tweede kolom zie je de aanwezige passagiersklasse aan boord van de Titanic. Selecteer de tweede, de kolom van de passagiersklasse uit Titanic.csv. met
plaats deze functie in het
blok. Bespreek de resultaten van deze frequentiedistributie met elkaar. Het "analyse" blok geeft je snel een algemeen overzicht van geselcteerde data. Wanneer je bijvoorbeeld ook tergelijkertijd de namen van mensen wilt weten gebruik je de HOF:
op volgende wijze:
HOF, "group"
De "group" functie levert een zelfde frequentiedistributie op alleen nu met een extra derde kolom met daarin het lijst icoon. Dubbelklik met de muis op het bovenste lijst icoon in de derde kolom, een nieuwe tabel met alle derde klasse passagiers aan boord van de Titanic.
  • Maak met de functie
    eenzelfde frequentiedistributie voor de leeftijden.
Kolom vijf is de kolom met alle op de Titanic aanwezige leeftijden verander het getal 2 in het
blok naar 5, de kolom met leeftijden. Klik met je muis op dit blok. In de tekstballon verschijnt een lange, onoverzichtelijke lijst met leeftijden. Om een beter overzicht van de distributie van leeftijden te krijgen willen we de leeftijden per decennium indelen. Maak en bespreek de stappen in het denken om tot een onderverdeling in deccennia te komen. Maak vervolgens onderstaande blok en bedenk... elke expressie past in een functie ring.
Wanneer je met de muis op dit blok klikt krijg je een ongesorteerde tabel met leeftijden gerangschikt per deccenium. Rangschik de tabel oplopend met behulp van de HOF "sort" op de volgende manier.
Door data te groeperen en te sorteren is een krachtige manier om informatie zichtbaar te maken.
Er is nog een ander erg handig blok en dat is het
blok. Het pijplijnblok zou je zelf in Snap! kunnen maken. Klik met de rechtermuisknop op dit blok en selcteer "edit". Het pijplijnblok maakt het proces van selecteren, groeperen en sorteren van een database beter zichtbaar. Volg de stappen die je hieronder ziet staan om tot eenzelfde gesorteerde tabel met leeftijden te komen.
  • ​
    ​
  • ​
    ​
  • Klik aan het einde, op de zwarte driehoek om een extra functie ring te maken
  • ​
    ​
  • Voeg nog een functie ring toe.
  • ​
    ​
Je ziet, het pijplijnblok geeft je een beter gevoel, beter inzicht in het proces van "drilling down a database". In het volgende deel van deze les gaan we werken met het "billionairs.csv" bestand om je te laten zien en ervaren wat er op het gebied van Datascience mogelijk is. Deze cursus is bedoeld voor gevorderden...weet je nog? Dit deel van de les zal niet eenvoudig zijn, bestudeer het goed en verwacht niet van jezelf om alles in één keer te begrijpen laat staan te kunnen toepassen. Succes met...in de hoogste versnelling van datawetenschappen.

Billionairs

Start met het openen van een nieuw Snap! bestand en importeer de bibliotheek "Frequency Distribution Analysis". Download het bestand Billionairs.csv naar je computer en sleep het bestand in het script veld. Het bestand wordt geopend. Ga naar de categorie "Variables" en sleep het reporter blok van de variabele "billionairs" in het script veld.
Bekijk en bestudeer deze database. Beantwoord de volgende vragen.
  • Het aantal rijen ("entries") van deze database?.
  • Wat is het aantal kollommen?
  • In welke kolom staat het jaartal?
  • Welke omvang kennen de jaartallen in deze database?
We stellen de volgende vraag, welk land had in het jaar 2014 het hoogst aantal miljardairs? Met aansluitend wat is het totale vermogen in miljarden per land? Op welke plaats staat Nederland denk je?
Wat voortvloeit uit deze vragen is dat wij alleen geinteresserd zijn in het jaartal 2014 kolom 22 in de database. De database filteren op alleen het jaartal 2014 doen we als volgt.
Bekijk de lijst opnieuw door er met de muis op te klikken. In welke kolom staan nu de bedragen die deze mensen in miljarden hebben verdiend? Juist...kolom 21, sorteer aflopend op deze kolom.
Bekijk de gesorteerde lijst. Bekijk kolom 13 met bovenaan de lijst, Bill Gates. In kolom 21 kun je vinden wat Bill dat jaar verdiend heeft.
Wat we nu willen achterhalen is welk land heeft de meeste miljardairs? In Kolom 3 vind je de landen, we groeperen de lijst per land als volgt
En sorteren de lijst aflopend.
Bekijk de gegroepeerde en gesorteerde lijst en beantwoord de volgende vraag.
  • Op welke plaats staat Nederland?
  • Kun je het script zo wijzigen dat er een oplopend gesorteerde tabel ontstaat met alleen Nederlandse miljardairs?
Dubbel klik op de lijst om "Table view" te openen. Plaats de tabel voor later gebruik, op het podium. We weten nu in welke landen de meeste miljardairs wonen.
Hoe ziet deze tabel eruit zien wanneer we naar het totaal vermogen in miljarden per land zouden kijken. Terug naar de eerste stap.
Bekijk de tabel. In deze tabel willen we een extra kolom gaan toevoegen. Hoe doe je dat? Met "map" op de volgende wijze.
De tweede kolom met "Totaal milj" is om de werking van dit script te testen. Het werkt, nu alleen nog de totale som aan miljarden per land toevoegen. Hoe doen we dat? Klik in de vierde kolom op een willekeurige (sub)lijst. Kolom 21 bevat de miljarden waar we afgerond het totaal van willen weten. Weet je nog? "combine" en bekijk de volgende functie.
We ronden het totaal af. De totale som miljarden uit kolom 21 van item 3.
En sorteren de lijst aflopend.
Plaats de tabel van dit laatste script naast de andere tabel die we eerder al op het podium hebben geplaatst. Welke concusies kun wij hieraan verbinden? Op welke plaats staat Nederland?
Wanneer dit te complex voor je is? Je door de bomen het bos niet meer ziet? Wanhoop niet, dit laatste deel van de les is om je te laten zien wat de mogelijkheden zijn van Snap! in datawetenschap. Wat ons betreft is dat onovertroffen erg veel. Bekijk dit deel laatste van de les anders over een aantal dagen nog eens. Neem de tijd!

Probeer meer

  1. 1.
    Wijzig het "custom" max blok uit de vorige les naar:
  • Gebruik het nieuwe blok in
    om de oudste persoon, hoogst aantal kinderen per gezin, hoogste prijs dat voor een kaartje betaald is te vinden.
  • Kun je het script ook de naam van de passagier met de hoogste leeftijd laten weergeven?
2. De gemiddelde passagier - deel 2
Nu we aan de hand van gemiddelde prijs van een klaartje en gemiddelde leeftijd de gemiddelde passagier aan boord hebben berekend. Bespreek met elkaar of de uitkomst van dat script een juiste voorstelling van zaken biedt? Wellicht geeft een berekening van de mediaan en/of modus, je een reΓ«ler beeld van een Titanic passagier?
De mediaan is het middelste getal in de waarnemingen als je die getallen op volgorde zet. Je kan daarom zeggen dat 50% van de waarnemingen onder de mediaan en 50% boven de mediaan bevinden. Bron: Wikipedia
De waarneming die het meest voorkomt in een reeks is de modus. In andere woorden, de waarneming met de hoogste frequentie. Bron: Wikipedia
  • bereken deze mediaan
  • bereken de modus
Deze HOF's,
,
kunnen je daarbij helpen. Vergelijk en bespreek de onderlinge resultaten van het gemiddelde, mediaan een modus.
3. A Boy Named Sue
A Boy Named Sue is een liedje geschreven door Shel Silverstein, de song werd een hit in de vertolking van Johnny Cash. Beluister eerst deze song. Maak vervolgens eerst een script met als resultaat de meest voorkomende voornaam van vrouwelijke passagiers op de Titanic. Tip!
Maak ook een script voor de meest voorkomende voornamen van mannen. Ben je door deze uitkomsten verrast? Wat verteld je dit over de maatchappij aan het begin van de 20e eeuw?
Bonus 1: Schrijf een script dat de populariteit van alle vrouwelijke voornamen aan boord van de Titanic weer geeft.
Bonus 2: Sorteer de lijst naar populariteit op grond van de frequentie van de eerste drie letters van voornamen.
4. Pas het geleerde toe op een andere database, bijvoorbeeld op de database "Billionairs". Of zoek naar interesse zelf een andere dataset.
5. mogelijke scripts voor de database "Billionaires"
  • Vergelijk het onderlinge verschil in het berekenen van het gemiddelde, mediaan en modus op jaar van oprichting van de verschillende ondernemingen.
  • Maak de ontwikkeling in kapitaal van alle miljardairs over de drie aanwezige jaren inzichtelijk. Had je deze uitkomst verwacht?
  • Welke sector had in 2014 de meeste miljardairs? Had je dat verwacht?
  • Welke voornaam geef je een kind bij geboorte mee om later miljardair te worden.? Denk je dat de keuze in voornaam werkelijk relevant is om miljardair te worden? Hoe bepaal je of statistische gegevens werkelijk relevant en waardevol zijn.

Testopgaven

  1. 1.
    Wat is het resultaat van het "group" blok?
  • Het rapporteert terug een platte lijst van unieke items (groepen) van de orginele data.
  • Het genereert/rapporteert alle waarden in een kolom als een cijfer
  • Rapporteert een tabel met twee kolommen van unieke items.
  • Het rapporteert een tabel met drie kolommen (groepen/bin, voorkomen, orginele data)
2. Hoeveel kolommen komen voort uit onderstaande functie?
  • 5
  • 4
  • 2
  • 3
3. Welke van onderstaande scripts heeft als resultaat een gatal in de eerste kolom en het kwadraat als resultaat in de tweede kolom? Er zijn twee goede antwoorden mogelijk.
  • ​
    ​
  • ​
    ​
  • ​
    ​
  • ​
    ​
  • ​
    ​
​
​
​
​
​
​
​
​
​
Last modified 11mo ago