示例2 数据

示例 2 使用与示例 1 相同的源代码。

但是,由于使用了另一个数据集,因此代码必须收集其他数据。

数据采集

示例 2 中使用的数据是房屋对象的列表:

{
"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,
},

数据集是一个 JSON 文件,存储在:

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

清洗数据

在准备机器学习时,以下几点始终很重要:

  • 删除不需要的数据
  • 清除数据中的错误

删除数据

删除不必要数据的明智方法是提取仅您需要的数据

这可以通过使用迭代(循环)您的数据来完成地图功能

下面的函数接受一个对象并返回只有 x 和 y从对象的 Horsepower 和 Miles_per_Gallon 属性:

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


删除错误

大多数数据集都包含某种类型的错误。

消除错误的一个聪明方法是使用过滤功能来过滤掉错误。

如果其中一个属性(x 或 y)包含 null 值,下面的代码将返回 false:

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

获取数据

当您准备好映射和过滤函数后,您可以编写一个函数来获取数据。

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

亲自试一试 »


绘制数据

以下是一些可用于绘制数据的代码:

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

亲自试一试 »