EIQ_AIモデル作成

EIQ分析に基づくAI予測モデルの作成・学習・予測システム

VB.NET .NET Framework 4.8 Microsoft.ML Access (.accdb)

1. システム概要

本システムは、EIQ分析(Entry-Item-Quantity分析)の手法を用いて 出荷データからAI予測モデルを構築するWindows Formsアプリケーションです。

出荷先数(E)とアイテム数(I)を入力として、 バラ数量・行数・EIQ指標・ケース数・PL数・容積・重量など約160項目SDCA回帰(Microsoft.ML)で予測します。

主な機能

【技術解説:静的分析から動的予測へ】
従来のEIQ分析は、過去実績の「集計(静的な点)」に留まっていました。本システムでは、出荷先数(E)やアイテム数(I)の変動をAIが学習することで、拠点のキャパシティや負荷を動的にシミュレーションする「予測モデル」へとEIQ分析を進化させています。
本システムは、30年に及ぶ物流コンサルティングの知見をアルゴリズム化した次世代シミュレーション基盤です。従来のEIQ分析が過去の出荷実績を静的に集計するだけだったのに対し、本システムは出荷先数(E)や品目数(I)の変動をAIが学習することで、拠点新設や統合時のキャパシティを動的に予測する**「物流デジタルツイン」**としての役割を果たします

2. ファイル構成

ファイルクラス / モジュール役割
E0_メニュー画面.vb E0_メニュー画面F メインメニュー。各処理画面への遷移とDB状態確認
E1_データ前処理.vb EIQ_AIモデル前処理F 出荷データ取込・区分換算・EIQランク作成・T200テーブル作成
E2_モデルデータ設定.vb モデルデータ設定F E/I比率・ピッチ設定、T300_進行テーブル管理、E3画面への遷移
E3_モデルデータ作成.vb E3_モデルデータ作成F T300_進行に基づくT600_データモデル作成(バッチ処理)
E4_機械学習.vb E4_機械学習F Microsoft.MLによるモデル訓練・予測実行・結果エクスポート
EIQ_AI実証及び検証Pro.vb EIQ_AI実証及び検証Pro AI実証及び検証(将来拡張用)
K1.vb Module K1 グローバル変数・定数・ファイルパス管理
AccessDbManager.vb AccessDbManager Accessデータベース新規作成・Excelインポート
Access操作.vb SQL実行ヘルパー、テーブル操作共通処理
テーブル構造確認.vb テーブル構造の確認・診断ユーティリティ

【実務的意義:データのクレンジングと特徴量化】
物流現場の生データには単位の混在や不備が多いため、「区分換算の自動化」によってバラ・ケース等の出荷単位を揃え、計算精度を担保します。また、「5段階パレート分析(EIQランク付け)」を自動実行することで、どの商品群がセンター負荷の主因かをAIに「特徴量」として認識させます。
本システムはVB.NETとMicrosoft Accessを基盤に、処理フェーズごとに明確にモジュール化されています。外部のクラウドサービスを介さず、自社環境(.accdb)のみで完結する設計を採用することで、機密性の高い出荷データの秘匿性を担保しつつ、デスクトップ環境での高速なバッチ処理を実現しています。

3. 全体処理フロー

E0 メニュー画面 DB状態確認(T200テーブルの有無)→ 処理を選択
ルートA
出荷データから作成
Excelファイルを取込
ユーザー指定出荷データ可
ルートB
Tera計算.accdbにアタッチ
既存DBのT200をリンク
E1 データ前処理 Access新規作成 → Excelインポート → T110_区分換算 → T200作成 → GPLランク作成
E2 モデルデータ設定 E/I比率(50〜150%)・ピッチ(1〜20、既定5.9)の設定 → T300_進行テーブル作成
E3 モデルデータ作成 T300_進行の各レコードに対してT600_データモデルを生成(中断・継続可能)
E4 機械学習 データモデル.csv読込 → SDCA回帰モデル訓練(約160モデル) → 予測実行 → CSV出力
EIQ_AI 実証及び検証 学習済みモデルの精度検証・実データとの比較(将来拡張)

過去の1パターンだけでなく、E/I比率を50%〜150%の範囲で変化させた数千通りの「仮想出荷シナリオ」を生成し、AIに教育します。

【ソフトのポイント:限界値の学習】
「出荷先が1.5倍に増えたら?」「アイテムを半分に絞ったら?」という極端な条件下での数値をシミュレーション算出することで、AIは拠点の「伸び代」や「処理の限界点」を正確に把握できるようになります。

4. 各ステップ詳細

E0 メニュー画面 E0_メニュー画面F

アプリケーション起動時のエントリポイントです。

E1 データ前処理 EIQ_AIモデル前処理F

出荷データの取込からEIQ分析用のT200テーブル作成までを行います。

処理サブフロー(出荷データから作成)

出荷データ.xlsx Access新規作成 T000_出荷データ T100_Data
T100_Data T110_区分換算 T150_ランク集計 T180_EIQランク
T180_EIQランク T200 (EIQ加工データ) T160_GPLランク T200 (列追加)
処理内容生成テーブル
Access新規作成EIQ_AIモデル.accdbを新規作成
Accessインポート出荷データ.xlsxをAccessにインポートT000_出荷データ
T110_区分換算T100_Data作成、区分換算テーブル作成、各換算計算、出荷単位区分T100_Data, T110_区分換算
T200作成_EIQデータ加工ケース出荷/バラ出荷のEIランク集計、T180_EIQランク、T200テーブル統合T150_*, T180_EIQランク, T200
全出荷GPLランク全出荷GPLのE/Iランク作成、T200に列追加T160_全出荷E集計, T160_全出荷I集計
📌 ABCランク基準: ランクA1 / A2 / B / C / D の累計比率によるパレート分析に基づく5段階ランク付けを行います。 ランク設定は計算ルール設定タブでカスタマイズ可能です。

E2 モデルデータ設定 モデルデータ設定F

AIモデル学習用データの生成パラメータを設定します。

パラメータ範囲説明
E最小比率 / E最大比率50% 〜 150%出荷先数の変動範囲(正規値に対する比率)
I最小比率 / I最大比率50% 〜 150%アイテム数の変動範囲(正規値に対する比率)
レコードピッチ1 〜 20(既定 5.9)生成レコードの間隔(細かいほどデータ密度が高い)

T300_進行テーブル

E3 モデルデータ作成 E3_モデルデータ作成F

T300_進行テーブルの未処理レコードを順次処理し、T600_データモデルテーブルにデータを格納します。

T600_データモデル 構造(165フィールド)

カテゴリフィールド
基本情報モデル連番, 出荷先数, アイテム数, バラ数量, 行数5
E指標E1 〜 E55
I指標I1 〜 I55
行数ランク別行数01 〜 行数2525
バラ数ランク別バラ数01 〜 バラ数2525
ケース数ランク別ケース01 〜 ケース2525
PL数ランク別PL01 〜 PL2525
容積ランク別容積01 〜 容積2525
重量ランク別重量01 〜 重量2525
📌 中断・再開: 処理はT300_進行テーブルの作成Chkフラグで管理されるため、 途中で中断しても次回は未処理レコードから継続できます。 キーボード割り込み(GetAsyncKeyState API)による中断機能も搭載しています。

E4 機械学習 E4_機械学習F

Microsoft.MLライブラリを用いた回帰モデルの訓練と予測を行います。

機械学習パイプライン

データモデル.csv Features結合
(出荷先数, アイテム数)
MinMax正規化 SDCA回帰 .zipモデル保存
機能説明
データ読込データモデル.csvをLoadFromTextFileで読込、件数を表示
機械学習実行各出力フィールドごとにSDCA回帰モデルを訓練し、Models/フォルダに.zip形式で保存
学習済モデル読込保存済み.zipモデルを一括読込(再学習不要で予測可能)
予測実行出荷先数・アイテム数を入力 → 全モデルで予測 → DataGridViewに結果表示
結果エクスポート予測結果を予測結果.csvとしてUTF-8で出力

入出力

種別項目
入力(説明変数)出荷先数, アイテム数
出力(目的変数)バラ数量, 行数, E1-E5, I1-I5, 行数01-25, バラ数01-25, ケース01-25, PL01-25, 容積01-25, 重量01-25
(計 約160項目 × 各1モデル)

【各ステップ詳細の解説】
「出荷先が1.5倍に増えたら?」「アイテムを半分に絞ったら?」という極端な条件下での数値をシミュレーション算出することで、AIは拠点の「伸び代」や「処理の限界点」を正確に把握できるようになります。
  • データ前処理(E1): 出荷単位の揺れを「区分換算」で補正し、さらにパレート分析によるABCランク付けを自動実行することで、AIが物量の特徴を捉えやすい「高品質な教師データ」の土壌を作ります。

  • シミュレーション(E2・E3): 正規の出荷状況だけでなく、E/I比率を50%〜150%の範囲で変化させた数千通りの「仮想シナリオ」を生成します。これにより、AIは拠点の「伸び代」や「処理限界点」を正確に学習します。

  • 機械学習(E4): 学習効率と予測精度のバランスに優れた「SDCA回帰(確率的双対座標上昇法)」を採用しています。160項目もの目的変数を個別に訓練し、.zip形式の軽量な予測エンジンとして書き出します。

5. データベース構造

データベース: Tera計算Data\EIQ分析AI化\EIQ_AIモデル.accdb(Microsoft Access)

テーブル作成元用途
T000_出荷データE1(Excelインポート)出荷データ原本
T100_DataE1基本出荷データ(行連番付き)
T110_区分換算E1出荷区分に基づく換算データ
T150_C/B単位出荷E/I集計E1ケース/バラ出荷別のEI集計とABCランク
T160_全出荷E/I集計E1全出荷GPLランク(E/I別)
T180_EIQランクE1EIQランク統合テーブル(CE/CI/BE/BI)
T200E1EIQ分析加工済みデータ(全ランク・指標統合)
T300_進行E2モデルデータ作成の進行管理(連番・設定値・作成Chk)
T600_データモデルE3AI学習用モデルデータ(165フィールド)

【データベース構造の解説】

独自のテーブル遷移(T200からT600への展開)が、物流ノウハウです。単なる履歴データであるT000を、EIQ加工・指標統合した「レコード(T200)」へ変換し、最終的に165フィールドに及ぶAI学習用モデル(T600)へ昇華させます。

  • データ前処理(E1): 出荷単位の揺れを「区分換算」で補正し、さらにパレート分析によるEIQランク付けを自動実行することで、AIが物量の特徴を捉えやすい「高品質データ」を作ります。

  • シミュレーション(E2・E3): 正規の出荷状況だけでなく、E/I比率を50%〜150%の範囲で変化させた数千通りの「仮想シナリオ」を生成。これにより、AIは拠点の「伸び代」や「処理限界点」を正確に学習します。

  • 機械学習(E4): 学習効率と予測精度のバランスに優れた「SDCA回帰(確率的双対座標上昇法)」を採用。160項目もの目的変数を個別に訓練し、.zip形式の軽量な予測エンジンとして書き出します。

6. 実行環境・前提条件

項目要件
フレームワーク.NET Framework 4.8
言語VB.NET(Windows Forms)
主要ライブラリMicrosoft.ML(SDCA回帰), ClosedXML, ADOX, Microsoft.Office.Interop.Access
データベースMicrosoft Access(ACE OLEDB 12.0)
データ保存先任意ドライブの Tera計算Data フォルダ(A:〜F: を自動検索)
必要ファイルTera計算Data\EIQ分析AI化\出荷データ.xlsx(出荷データから作成時)
📌 ファイルパス自動検出: K1.vbファイル確認() メソッドが A: 〜 F: ドライブを走査し、 Tera計算Data フォルダを自動検出します。 複数ドライブに存在する場合はエラーとなります。

【実行環境・前提条件の解説】

フロントエンドからバックエンド、AI統合まで、すべての技術スタックが.NET Framework 4.8で統一。この一貫性により、外部ライブラリとの競合を最小限に抑え、OSのアップデートにも柔軟に対応できる高いメンテナンス性と、デスクトップアプリならではの圧倒的な即時応答性を両立しています。

7. データ変換フロー図

📄 出荷データ.xlsx
T000_出荷データ T100_Data T110_区分換算
T150_ランク集計 T180_EIQランク T200 (統合)
T160_GPLランク T200 (列追加)
T300_進行 (設定) T600_データモデル
📄 データモデル.csv 🤖 SDCA回帰モデル (.zip)
📊 予測結果.csv

【データ変換フロー図の解説】

Excel形式の生データが、T200での「物流データの構造化」を経て、T600での「シミュレーション空間の構築」、そして最終的に「AI予測モデル」へと情報の進化プロセスを示しています。この一連の流れにより、一見無秩序な出荷データが、将来の拠点設計を支える経営資源へと変換されます。

EIQ_AIモデル作成 — README1.html