Ví dụ 2 Dữ liệu

Ví dụ 2 sử dụng cùng một mã nguồn như Ví dụ 1.

Tuy nhiên, vì một tập dữ liệu khác được sử dụng, mã phải thu thập dữ liệu khác.

Thu thập dữ liệu

Dữ liệu được sử dụng trong Ví dụ 2, là danh sách các đối tượng nhà:

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

Tập dữ liệu là một tệp JSON được lưu trữ tại:

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

Làm sạch dữ liệu

Khi chuẩn bị cho học máy, điều quan trọng luôn là:

  • Xóa dữ liệu bạn không cần
  • Làm sạch dữ liệu khỏi lỗi

Xóa dữ liệu

Một cách thông minh để loại bỏ dữ liệu không cần thiết, nó chỉ trích xuất dữ liệu bạn cần .

Điều này có thể được thực hiện bằng cách lặp lại (lặp lại) dữ liệu của bạn với một hàm bản đồ .

Hàm bên dưới nhận một đối tượng và chỉ trả về x và y từ các thuộc tính Mã lực và Miles_per_Gallon của đối tượng:

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

Xóa lỗi

Hầu hết các bộ dữ liệu đều chứa một số loại lỗi.

Một cách thông minh để loại bỏ lỗi là sử dụng chức năng bộ lọc để lọc ra các lỗi.

Đoạn mã dưới đây trả về false nếu trên thuộc tính (x hoặc y) chứa giá trị null:

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

Tìm nạp dữ liệu

Khi bạn đã sẵn sàng các chức năng bản đồ và bộ lọc, bạn có thể viết một hàm để tìm nạp dữ liệu.

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


Vẽ sơ đồ dữ liệu

Đây là một số mã bạn có thể sử dụng để vẽ dữ liệu:

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