例1データ


TensorFlowデータ収集

例1で使用されているデータは、次のような車のオブジェクトのリストです。

{
  "Name": "chevrolet chevelle malibu",
  "Miles_per_Gallon": 18,
  "Cylinders": 8,
  "Displacement": 307,
  "Horsepower": 130,
  "Weight_in_lbs": 3504,
  "Acceleration": 12,
  "Year": "1970-01-01",
  "Origin": "USA"
},
{
  "Name": "buick skylark 320",
  "Miles_per_Gallon": 15,
  "Cylinders": 8,
  "Displacement": 350,
  "Horsepower": 165,
  "Weight_in_lbs": 3693,
  "Acceleration": 11.5,
  "Year": "1970-01-01",
  "Origin": "USA"
},

データセットは、次の場所に保存されているJSONファイルです。

https://storage.googleapis.com/tfjs-tutorials/carsData.json


クリーニングデータ

機械学習の準備をするときは、常に次のことが重要です。

  • 不要なデータを削除する
  • エラーからデータをクリーンアップする

データを削除する

不要なデータを削除するスマートな方法で、必要なデータのみを抽出します

これは、マップ関数を使用してデータを反復(ループ)することで実行できます

以下の関数はオブジェクトを取得し、オブジェクトの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:'Horsepower', yLabel:'MPG'});
}