Пример 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};
}
Удалить ошибки
Большинство наборов данных содержат некоторые типы ошибок.
Умный способ удалить ошибки — использовать функцию фильтра для фильтрации ошибок.
Код ниже возвращает false, если одно из свойств (x или y) содержит нулевое значение:
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',});
}