Przykład 2 Dane
W przykładzie 2 zastosowano ten sam kod źródłowy, co w przykładzie 1.
Ale ponieważ używany jest inny zestaw danych, kod musi zbierać inne dane.
Zbieranie danych
Dane użyte w przykładzie 2 to lista obiektów domów:
{
"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,
},
Zbiór danych to plik JSON przechowywany w:
https://github.com/meetnandu05/ml1/blob/master/house.jsonCzyszczenie danych
Przygotowując się do uczenia maszynowego, zawsze ważne jest, aby:
- Usuń dane, których nie potrzebujesz
- Wyczyść dane z błędów
Usuń dane
Sprytny sposób na usunięcie niepotrzebnych danych, to wyodrębnienie tylko tych danych, których potrzebujesz .
Można to zrobić, iterując (przeglądając) dane za pomocą funkcji mapy .
Poniższa funkcja pobiera obiekt i zwraca tylko x i y z właściwości Horsepower i Miles_per_Gallon obiektu:
function extractData(obj) {
return {x:obj.Horsepower, y:obj.Miles_per_Gallon};
}
Usuń błędy
Większość zbiorów danych zawiera jakiś rodzaj błędów.
Sprytnym sposobem na usunięcie błędów jest użycie funkcji filtrowania w celu odfiltrowania błędów.
Poniższy kod zwraca wartość false, jeśli jedna z właściwości (x lub y) zawiera wartość pustą:
function removeErrors(obj) {
return obj.x != null && obj.y != null;
}
Pobieranie danych
Gdy masz gotowe funkcje mapy i filtrowania, możesz napisać funkcję pobierającą dane.
async function runTF() {
const jsonData = await fetch("cardata.json");
let values = await jsonData.json();
values = values.map(extractData).filter(removeErrors);
}
Wykreślanie danych
Oto kod, którego możesz użyć do wykreślenia danych:
function tfPlot(values, surface) {
tfvis.render.scatterplot(surface,
{values:values, series:['Original','Predicted']},
{xLabel:'Rooms', yLabel:'Price',});
}