실시예 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청소 데이터
머신 러닝을 준비할 때 항상 다음을 수행하는 것이 중요합니다.
- 필요하지 않은 데이터 제거
- 오류에서 데이터 정리
데이터 제거
불필요한 데이터를 제거하는 현명한 방법, 필요한 데이터만 추출하는 것 입니다.
이것은 map 함수 를 사용하여 데이터를 반복(루핑)하여 수행할 수 있습니다 .
아래 함수는 객체를 가져와서 객체의 Horsepower 및 Miles_per_Gallon 속성에서 x와 y만 반환합니다.
function extractData(obj) {
return {x:obj.Horsepower, y:obj.Miles_per_Gallon};
}
오류 제거
대부분의 데이터세트에는 몇 가지 유형의 오류가 있습니다.
오류를 제거하는 현명한 방법은 필터 기능 을 사용하여 오류를 필터링하는 것입니다.
속성(x 또는 y) 중 on에 null 값이 포함된 경우 아래 코드는 false를 반환합니다.
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',});
}