Ejemplo 2 Datos

El ejemplo 2 usa el mismo código fuente que el ejemplo 1.

Pero, debido a que se usa otro conjunto de datos, el código debe recopilar otros datos.

Recopilación de datos

Los datos utilizados en el Ejemplo 2 son una lista de objetos de la casa:

{
"Avg. Area Income": 79545.45857,
"Avg. Area House Age": 5.682861322,
"Avg. AreaNumberofRooms": 7.009188143,
"Avg. Area Number of Bedrooms": 4.09,
"Area Population": 23086.8005,
"Price": 1059033.558,
},
{
"Avg. Area Income": 79248.64245,
"Avg. Area House Age": 6.002899808,
"Avg. AreaNumberofRooms": 6.730821019,
"Avg. Area Number of Bedrooms": 3.09,
"Area Population": 40173.07217,
"Price": 1505890.915,
},

El conjunto de datos es un archivo JSON almacenado en:

https://github.com/meetnandu05/ml1/blob/master/house.json

Limpieza de datos

Al prepararse para el aprendizaje automático, siempre es importante:

  • Elimina los datos que no necesitas
  • Limpiar los datos de errores

Eliminar datos

Una forma inteligente de eliminar datos innecesarios es extraer solo los datos que necesita .

Esto se puede hacer iterando (recorriendo) sus datos con una función de mapa .

La siguiente función toma un objeto y devuelve solo x e y de las propiedades Horsepower y Miles_per_Gallon del objeto:

function extractData(obj) {
  return {x:obj.Horsepower, y:obj.Miles_per_Gallon};
}

Eliminar errores

La mayoría de los conjuntos de datos contienen algún tipo de error.

Una forma inteligente de eliminar errores es usar una función de filtro para filtrar los errores.

El siguiente código devuelve falso si una de las propiedades (x o y) contiene un valor nulo:

function removeErrors(obj) {
  return obj.x != null && obj.y != null;
}

Recuperacion de datos

Cuando tenga listas las funciones de mapa y filtro, puede escribir una función para obtener los datos.

async function runTF() {
  const jsonData = await fetch("cardata.json");
  let values = await jsonData.json();
  values = values.map(extractData).filter(removeErrors);
}


Trazar los datos

Aquí hay un código que puede usar para trazar los datos:

function tfPlot(values, surface) {
  tfvis.render.scatterplot(surface,
    {values:values, series:['Original','Predicted']},
    {xLabel:'Rooms', yLabel:'Price',});
}