Ví dụ 2 Dữ liệu
Ví dụ 2 sử dụng mã nguồn giống như Ví dụ 1.
Tuy nhiên, vì một tập dữ liệu khác được sử dụng nên 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 đồ vật trong 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.jsonLà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, đó là chỉ trích xuất những 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 bằng chức năng bản đồ .
Hàm bên dưới lấy 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 có 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 lọc để lọc ra các lỗi.
Mã bên dưới trả về false nếu 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 đã chuẩn bị sẵn 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ẽ 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',});
}