knaka Tech-Blog

AI, IoT, DIYエレクトロニクス, データサイエンスについて投稿予定です。

TensorFlow.js で、回帰モデルの予測問題サンプル

index:

概要:

前のTensorFlow.js 関係で、
回帰モデル例を、参考にして。
予測問題の実装メモとなります。

評価グラフは、chart.js で。表示する構成です

環境

TensorFlow.js
ブラウザ

参考のコード

github.com

実装など

・自前の、学習データを外部から。読み込みます
https://github.com/kuc-arc-f/tfjs_start2/blob/master/js/train_10.js

async function getData() {
    const url  = 'https://raw.githubusercontent.com/kuc-arc-f/tfjs_start2/master/dat/outout.json';
    const carsDataReq = await fetch( url );  
    const carsData = await carsDataReq.json();  
//console.log(carsData)
    const cleaned = carsData.map(car => ({
        hnum: car.hnum,
        no: car.no,
    }))

    return cleaned;
}

・tf.tensor に変換後、学習処理、評価

/******************************** 
*
*********************************/
async function trainModel(model, inputs, labels, tensorData,
     input_size, chart_dats) {
    const {inputMax, inputMin, labelMin, labelMax} = tensorData
//console.log( input_size );
    // Prepare the model for training.  
    const column_len = input_size
    model.compile({
        optimizer: tf.train.adam(),
        loss: tf.losses.meanSquaredError,
        metrics: ['mse'],
    });
    const batchSize = column_len -5;
    const epochs = 50;
    //model.fit(inputs,labels,{epochs: epochs });
	return await model.fit(inputs, labels, {
		batchSize,
		epochs,
    });    

}

学習データと、評価のグラフ

f:id:knaka0209:20191006191947p:plain

参考のページ

knaka0209.hatenablog.com

まとめ

・評価結果が安定せず、見直しが必要となりました。
 継続して。調査したいと思います。

修正版で、エポック数=50, 学習は5秒程かかりました。

・JSで機械学習が可能で、web実装がカンタンにできる点は。良さそうです
 python のツール系(pandas, matplot等)
 が使えないのは、開発面では きびしい気がしました