#author("2019-06-07T12:47:05+09:00","default:kyo-in","kyo-in") **機械学習による図形推定(学習モデル作成編) [#fe389f61] 前回は作成済みの学習モデルを読み込んで使用したが,今回はML.netで学習モデルを作成する手順を紹介する. ***学習データの読み込み [#baed2ded] 前回の,ストロークを特徴ベクトルに変換しラベル(正解)が付けられたデータ群がリストstrokeDatasに蓄積されていたとすると, mLContext = new MLContext(); IDataView trainingData = mLContext.Data.LoadFromEnumerable(strokeDatas); //1 DataOperationsCatalog.TrainTestData splitDataView = mLContext.Data.TrainTestSplit(trainingData, testFraction: 0.2); //2 1で,ML.netで使用するためデータを読み込む.mLContext.Data.LoadFromEnumerableメソッドにより,IEnumerableを実装したクラス(ArrayやList<>)などからデータを読み込める. 2で,データをトレーニング用と評価テスト用に分ける.0.2で2割のデータを評価テスト用としている. ***パイプラインの作成 [#e8fd6eca] ML.netでは入力されたデータを実際学習に使用するデータへの加工→学習モデルの作成 などの作業をパイプラインとして定義(作成)しておく.また,機械学習ではデータの前処理なども大きな仕事となるので,データを処理するだけのパイプラインを作ることもできる. var pipeline = mLContext.Transforms.Concatenate("Features", new[] { "DirCount" }) .Append(mLContext.BinaryClassification.Trainers.SdcaLogisticRegression( labelColumnName: "Label", featureColumnName: "Features")); ***学習モデルの作成 [#cba212d5]