Learningでナンバーズ予測(後編)こんにちは、技術研究所のウエサマです。Learningでナンバーズ予測”の後編となります。Learningでナンバーズ予測(前編)チュートリアル部分の記事が長くなるため、先に”まとめ”と”予想実績”について記載します。試してみたい方は、後半のチュートリアルをご覧ください。ML)は、機械学習に必要なモジュールをドラッグ&ドロップにより配置し、モジュール間をマウスで結んでいくだけという非常に簡単なユーザインターフェースで開発が行えた。できあがった成果物もワンクリックでWebサービス化でき、外部からの呼び出しサンプルも生成するため生産性の高いツールと思います。用意されている線形回帰を使用したが、別のアルゴリズムを利用する事も可能、もし用意されていない場合は自身で開発する事も可能。公開したWebサービスを呼出すためのサンプルプログラムの生成も行ってくれるため、アプリへの組込みが行いやすい。前編で欠点とした下記の問題への対処となります。最新の出目が5の場合に差分の予測が「-5~4」の場合は、次の出目を算出できますが、この範囲外の差分が予測された場合に出目の算出ができない事態となります。この点は改良が必要ですね。(下表の灰色部分が予測できない範囲)単純に下図に示すルーレットにて範囲を超えても出目が予測できるよう考慮することとした。上記の例ですと、出目が5で差分が-6だった場合は、ルーレットを左回りたどり次回の出目予測は9とします。差分が5だった場合は右回りとし予測する出目は0とします。学習データを使った予測評価の時点で、すでに当たらないのは分かっていましたが話しを進めます。3やっぱり、当たりませんね(笑)予測に使うモデルやデータ項目を変えるなどして、しばらく実験してみようと思います。後半はチュートリアルにて作り方を説明します。チュートリアルのゴールここでは、百の位を予測するモデル開発についてチュートリアルを記載します。十の位、一の位は同じ手順で開発ができますので省略します。本チュートリアルのゴールは下記とします。MLでナンバーズ3を題材に予測をやってみる(当たれば、なお良し)・百の位を予測するモデルを作る・開発したモデルをWebサービスとして公開するチュートリアルの流れチュートリアルのおおまかな流れは下記となります。学習データの登録モデルの作成、評価Webサービスとして公開では、順に説明します。ワークスペースの作成モデルの構築、学習データの登録を行う作業スペースの準備を行います。LEARNING”、”簡易作成”を順に選択。右側の入力項目を埋めてチェックをクリックします。Asia”を指定(他を指定すると場所の制約エラーとなる)やっと前準備が終わり、ここから予測モデルを構築する楽しい作業となります。ワークスペースは毎回作る必要はありませんので、上記にて作成したワークスペースに対し、いろいろな機械学習モデル、複数の学習データを載せ機械学習を試してみると良いと思います。Studioを使って行います。作成したワークスペースを選択します。画面下にある”STUDIOで開く”をクリックします。用意した学習データは下記となります。過去の当選番号データをネットから入手し、扱いやすいよう加工しておきます。前編の記事では過去50件を対象としていましたが、全件を対象としました。前回当選番号(一の位)との差異データの例(抜粋)回,当せん番号,第1数字,第1数字差分,第2数字,第2数字差分,第3数字,第3数字差分1,191,1,0,9,0,1,02,988,9,8,8,-1,8,73,194,1,-8,9,1,4,-4(途中省略)4314,787,7,0,8,-1,7,04315,787,9,2,4,-4,6,-14316,081,0,-9,8,4,1,-54317,081,7,7,2,-6,7,64318,992,9,2,9,7,2,-54319,283,2,-7,8,-1,3,1データのアップロード画面左下の「+NEW」をクリック。下図1、2の順に選択し、ファイルアップロードダイアログを表示するファイルアップロードダイアログから”ファイルを選択”をクリックしアップロードするデータファイルを指定します。DATASET:”にて指定します。内容に問題が無ければ、右下のチェックマークをクリックしファイルをアップロードします。画面下に表示されるアップロード状況がcompletedになる事を確認します。アップロードしたデータは”DATASETS”メニューから確認できます。モデルの作成と評価EXPERIMENTSの作成モデルを構築するためのEXPERIMENTSを追加します。画面左下の「+NEW」をクリック。created・・・”部分をクリックし、何を行う機械学習なのか分かるような名前を付けておきます。Datasets”をクリックし、アップロードした学習データをドラッグ&ドロップします。同様に左側のアイコンをたどり、目的のモジュールをドラッグ&ドロップします。・アルゴリズム今回は線形回帰を指定。他のアルゴリズムや自信で開発したものなどを指定できます。Regression”・モデルアルゴリズムと学習データによって作られる予測モデルとなります。Model”・データ選択モジュール登録したデータから予測に使用するカラムを指定します。Columns”・データ分割モジュール登録したデータを学習用、評価用に分割します。Data”・スコアモジュール予測した値の確認、評価を行います。Model”全てのモジュールを配置すると下図のようになります。接続元(図では丸イチとなっている部分)を右クリックし、表示されたメニューから”Visualize”を選択すると学習データの中身を参照する事ができます。このように各モジュールにて”Visualize”が表示される場合、そのモジュールの特性にあった表示が行われます。合わせてモジュールのプロパティが右側に表示されますので、必要に応じて設定を行います。Columns”のプロパティを表示し、使用するデータ項目を指定します。この予測モデルは百の位を予測しますので、”第1数字”と”第1数字差分”の2項目を使用します。Dataのプロパティを表示し、データを学習用、評価用に振り分ける割合を指定します。下図は80%を学習データとして指定しました。Model”のプロパティを表示し予測する項目を指定します。ここでは差分を予測したいため”第1数字差分”を指定します。Model”のプロパティを表示し予測する項目を指定します。ここでは差分を予測したいため”第1数字差分”を指定します。これで接続とプロパティの設定は完了です。画面下にある”RUN”をクリックし学習と予測を行います。“RUN”が完了すると各モジュールに緑のチェックマークが付きます。Model”クリックしVisualizeにて予測結果を確認します。Labels”が予測された差分となります。気にせず進めましょう。Service”をクリックし表示さる”Input”、”Output”をドラッグ&ドロップします。Service[Recommended]”を実行します。すると、配置したモジュールが勝手に動いて処理が完了します。Colum”のプロパティを表示し”第1数字差分”を削除する。SERVICE”をクリックし開発したモデルを公開します。公開が完了すると下記の画面に切り替わります。(本画面は左の地球儀アイコンのクリックによって表示されるWebサービスのリストからも開けます)“Test”ボタンをクリックし、公開したWebサービスを呼出し、動作を確認してみます。第1数字に最新当選番号の百の位を入力します。本記事執筆時点(2015/1/14)最新の第4317回の当選番号は、”727′′ですので、”7′′を入力し第4318回の百の位の差分を予測します。予測結果は”2.26′′となりました。(下図参照)という事は今回の”7′′に”2.26′′をプラスした”9.26′′、つまり”9′′という予測結果です。ちなみに第4318回の百の位は”9′′でしたの、この予測は的中です。他の桁がはずれた(T_T)画面下に”DETAILS”をクリックしレスポンスを表示します。インターフェースとサンプルWebAPIへのインターフェース及び、各言語からの呼び出し方法に関するサンプルプログラムも生成されているため、その後のアプリ開発に役立てる事ができます。いう事で、チュートリアルはここまでです。説明をはしおらず丁寧に記述したので、ずいぶんと長文になってしまいましたが、よかったら他の項目を説明変数とし違う予想を試してみるのも良いかと思います。機械学習研究を経て、AI、ロボットを強みとする部門に異動。現在はテクニカルエバンジェリストとして企業が持つ業務課題へのAI、機械学習適用に関するコンサルティング、技術支援に従事するかたわら、自ら研究テーマを持ち共同研究、実験システムの構築のほか、執筆活動も行う。