例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'});
}