Skip to content

Latest commit

 

History

History
137 lines (106 loc) · 3.11 KB

File metadata and controls

137 lines (106 loc) · 3.11 KB

Data laden

  • CSV files
  • JSON files
  • Data filteren
  • Training data en test data



CSV files

Voeg de Papa Parse library toe aan je HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.0/papaparse.min.js"></script>

of als je met modules werkt:

npm install papaparse
import Papa from './PapaParse/papaparse';

Javascript

Download eerst een CSV file, bijvoorbeeld de overlevenden van de Titanic.

function loadData(){
    Papa.parse("./data/titanic_survivors.csv", {
        download:true,
        header:true, 
        dynamicTyping:true,
        complete: results => checkData(results.data)
    })
}

function checkData(data) {
    console.table(data)
}

Papa Parse Documentatie




JSON files

Data in JSON formaat kan je ophalen met fetch. Hier gebruiken we carsData.json van google.

async function getData() {
    const response = await fetch('https://storage.googleapis.com/tfjs-tutorials/carsData.json')
    const json = await response.json()
    checkData(json)
}

function checkData(data) {
    console.log(data)
}



Data filteren

Met map kan je specifieke kolommen uit een dataset halen.

const selectedColumns = data.map(car => ({
   mpg: car.mpg,
   horsepower: car.horsepower,
}))

Met filter kan je checken of er geen ongeldige waarden in de data staan. Hier staan twee voorbeelden van filteren op null of op waarden die geen number zijn.

// check of waarden niet leeg zijn
const cleanData = data.filter(car => (
    car.mpg != null && 
    car.horsepower != null
))

// check of waarden een nummer zijn
const cleanData = data.filter(car => (
    !isNaN(car.mpg) && 
    !isNaN(car.horsepower)
))

Je kan map() en filter() aan elkaar plakken, dat ziet er bv. zo uit:

const cleanData = data
    .map(day => ({
        MinTemp: day.MinTemp,
        MaxTemp: day.MaxTemp
    }))
    .filter(day => 
        typeof day.MinTemp === "number" &&
        typeof day.MaxTemp === "number"
    )



Training en test data

Met slice kunnen we data opsplitsen in trainingdata en testdata. In dit geval is 80% van de data trainingdata en 20% is testdata.

let trainData = data.slice(0, Math.floor(data.length * 0.8))
let testData = data.slice(Math.floor(data.length * 0.8) + 1)

⚠️ Om te voorkomen dat je data gesorteerd is op bv. het label moet je je array shufflen voordat je splitst op traindata en testdata.

function shuffleArray(arr) {
    arr.sort(() => (Math.random() - 0.5))
}



Links