Aan de slag met Shopping
Je hebt nu alle stukken, en je hebt ze in een eigen Shopping samen laten werken. Tijd voor het echte project: Shopping van CS50 AI. Je maakt het op je eigen computer, met het bestand van CS50 en met scikit-learn.
Voorspel
bezoeken = 12330
kopers = 1908
kijkers = bezoeken - kopers
print(kijkers)
print(kijkers / bezoeken * 100)
In het bestand van Shopping staan 12330 bezoeken, en bij 1908 daarvan kocht de bezoeker iets. Een luie voorspeller zegt over iedereen dat hij niets koopt. Hoeveel procent heeft hij goed?
Antwoord
10422
84.52554744525548
Ruim 84 procent goed, zonder één koper te herkennen: zijn gevoeligheid is 0, zijn specificiteit 1. Daarom vraagt Shopping die twee getallen, en niet het percentage goed.
Wat je bij Shopping maakt
CS50 geeft je shopping.py met de code die alles aanroept: het bestand
lezen, 40 procent achterhouden voor de toets, voorspellen en de uitslag
printen. Jij schrijft drie functies. Voor elk heb je geoefend:
| Functie bij Shopping | Wat hij doet | Geoefend in |
|---|---|---|
load_data | leest het CSV-bestand en geeft de kenmerken en de labels terug | een CSV lezen tot en met kenmerken en labels, en lees in een eigen Shopping |
train_model | maakt een k-NN-voorspeller met k = 1 en geeft hem de oefenset | de voorspeller uit scikit-learn |
evaluate | geeft de gevoeligheid en de specificiteit terug | gevoeligheid en specificiteit, en beoordeel in een eigen Shopping |
Het bestand heeft zeventien kenmerken per bezoek: aantallen, kommagetallen, een maand en twee kolommen met tekst. In de opdracht staat per kolom welk soort getal het moet worden, en welke tekst een 1 wordt.
Aan de slag met Shopping
- Installeer Python op je computer, als je dat nog niet hebt.
- Installeer scikit-learn met
pip3 install scikit-learnin een terminal. - Download de bestanden van Shopping via de projectpagina, en lees de opdracht helemaal door voordat je begint.
- Schrijf eerst de functie die de gegevens inleest, en print een paar rijen om te zien of de getallen kloppen. Kijk in het bestand zelf hoe de maanden geschreven zijn: één letter anders, en je dictionary vindt de maand niet.
- Schrijf daarna de andere twee, en draai het geheel met
python3 shopping.py shopping.csv.
Er gaat iets mis
ModuleNotFoundError: No module named 'sklearn'
Oorzaak: scikit-learn staat niet op je computer, of bij een andere Python
dan de Python waarmee je shopping.py draait.
Oplossing: installeer het met dezelfde Python waarmee je het programma draait.
python3 -m pip install scikit-learn
python3 shopping.py shopping.csv
Door naar een worp, in fase C.