示例 2 資料
示例 2 使用與示例 1 相同的原始碼。
但是,由於使用了不同的資料集,因此程式碼必須收集其他資料。
資料收集
示例 2 使用的資料是房屋物件列表
{
"平均區域收入": 79545.45857,
"平均房屋年齡": 5.682861322,
"平均房間數": 7.009188143,
"平均臥室數量": 4.09,
"區域人口": 23086.8005,
"價格": 1059033.558,
},
{
"平均區域收入": 79248.64245,
"平均房屋年齡": 6.002899808,
"平均房間數": 6.730821019,
"平均臥室數量": 3.09,
"區域人口": 40173.07217,
"價格": 1505890.915,
},
該資料集是一個 JSON 檔案,儲存在
https://github.com/meetnandu05/ml1/blob/master/house.jsonCleaning Data
在準備機器學習時,始終重要的是
- 移除您不需要的資料
- 清理資料中的錯誤
移除資料
移除不必要資料的一種智慧方法是提取您所需的資料。
這可以透過使用map 函式迭代(迴圈遍歷)您的資料來完成。
下面的函式接受一個物件,並僅從物件的 Horsepower 和 Miles_per_Gallon 屬性中返回x 和 y
function extractData(obj) {
return {x:obj.Horsepower, y:obj.Miles_per_Gallon};
}
移除錯誤
大多數資料集都包含某些型別的錯誤。
移除錯誤的一種智慧方法是使用filter 函式來過濾掉錯誤。
以下程式碼將在其中一個屬性(x 或 y)包含 null 值時返回 false
function removeErrors(obj) {
return obj.x != null && obj.y != null;
}
獲取資料
準備好 map 和 filter 函式後,您可以編寫一個函式來獲取資料。
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',});
}