プロセスマイニングのデータクリーニングと準備
効果的なプロセスマイニングは、品質の高いデータから始まります。多くの作業は、記録されていないイベント、システム間で一致しない識別子、形式の不一致、扱いにくいほど大きい、または慎重な取り扱いが必要な抽出データという、いくつかの問題に集約されます。このページでは、これらの問題と解決手順を説明します。ProcessMindで同じ作業を行う場合は、データセットの設定とデータ品質を参照してください。
データクリーニングと準備が重要な理由
プロセスマイニングはイベントログに依存します。イベントログとは、業務プロセス内のアクティビティの詳細な順序を含むデータセットです。データセットが不完全、一貫性に欠ける、またはエラーを含んでいる場合、得られるインサイトの信頼性も低くなります。クリーンで適切に構造化されたデータがあれば、ツールでワークフローをマッピングし、ボトルネックを検出して、改善すべき領域を明らかにできます。
データクリーニングと準備の主な手順
1. 関係するすべてのシステムからデータを収集する
データは通常、複数のシステムから取得します。たとえば、注文や請求書を管理するERP、顧客対応のステップを記録するCRM、チケットを管理するサービスデスクなどです。クリーニングを始める前に、すべてのシステムからデータを収集してください。対象から外したシステムにあるステップは、後から復元できないためです。
- データソースを統合する:プロセスの一部を記録しているシステムを一覧にし、それぞれからデータを抽出します。たとえば、受注から入金までのプロセスは、販売システム(例:Salesforce)と財務システム(例:SAP)にまたがります。
- サイロを解消する:どのシステムを対象にするか、誰がそこからエクスポートできるかをプロセスオーナーと合意します。データの欠落は、壊れたクエリではなく、報告対象になっていないシステムが原因であることが多いです。Apache NiFi、Talend、Informatica、Power BIなどの統合ツールを使えば、複数のソースを1つのファイルにまとめられます。
- 抽出できないデータを想定する:システム外で発生するステップ(電話での承認、紙の承認など)は、少なくとも結果をデジタルシステムに記録するか、プロセスビューが完全になるようにステップをモデル化します。データの入手先では、システムごとのデータ取得方法を説明します。
2. 重複を削除する
重複レコードがあると、アクティビティ数が水増しされ、1つのイベントが複数のイベントとして扱われるため、分析結果が歪みます。ケースID、アクティビティ、タイムスタンプが同一のレコードを特定し、削除するか、1行に統合してください。
3. 欠損データに対処する
タイムスタンプ、アクティビティ、ケースIDが欠けていると、イベントの順序が途切れ、不完全なプロセスモデルになります。
- 欠損値を特定する:空白のタイムスタンプ、空のアクティビティ名、nullのケースIDを探します。
- 空白を埋める:可能であれば、他のソースや業務知識を使います。1つのタイムスタンプが欠けている場合は、前後のイベント時刻から範囲を絞り込めます。
- 作り話ではなくモデル化する:まったく記録されていないステップは、タイムスタンプを作り出すのではなく、プロセスモデリングで追加します。これにより、マイニングしたプロセスと文書化されたプロセスの整合を図れます。
- 補完するか削除する:重要な欠損には、補完手法(平均値代入や回帰モデルなど)を使います。ケースを復元できない場合は削除し、その理由を記録します。
4. 形式、ID、名前を標準化する
- タイムスタンプ:すべてのデータで1つの形式を使います(例:
YYYY-MM-DD HH:MM:SS)。抽出データに複数のタイムゾーンが混在している場合は、すべてUTCに変換します。サポートされている日付形式の一覧を参照してください - ケースID:同じプロセスでも、システムによって異なる識別子が使われることがあります。たとえば、CRMでは注文番号、財務システムでは請求書番号が使われます。抽出データ内または参照テーブルに対応関係を作成し、すべてのイベントを1つのケースに紐付けます。また、各プロセスインスタンスに一意のIDを付与します。ProcessMindでは、組み合わせるすべてのデータセットでケースID列が同じ方法でマッピングされていることを確認してください。データセットの属性も参照してください。
- アクティビティ名:システムによって、同じステップに異なる名前が付けられています。ステップごとに1つの表記を決めます(「注文を承認」と「注文承認」は同じアクティビティです)。
- 値とデータ型:数値(コスト、所要時間、金額)は数値として保持し、列ごとに単位を統一します。
5. 関係のないイベントを削除する
記録されたすべてのイベントが、分析対象のプロセスに属するとは限りません。システムへのログイン、技術的な再試行、管理作業などは、インサイトを増やさずにマップを複雑にします。
- 対象外のデータを除外する:業務知識を使って、プロセスを表すイベントを判断し、それ以外を除外します。
- 適切な粒度を選ぶ:粒度が粗すぎるイベント(「注文処理済み」など)は、探している違いを隠します。一方、細かすぎるイベントは技術的な詳細でマップを埋め尽くします。プロセスの専門家が境界を判断し、低レベルのイベントを対応する業務アクティビティにまとめます。
6. 外れ値とノイズに対処する
外れ値があると、通常のプロセスの実態を正確に把握できません。まれな事象によって極端に長い時間がかかったタスクが、平均値を大きく左右することがあります。
- 外れ値を特定する:そのステップの通常範囲から大きく外れた所要時間に印を付けます。
- 残すかどうかを判断する:まれでも重大な障害など、実際の例外は残す価値のあるインサイトになることがあります。一方、データエラーは残しません。都合が悪いという理由ではなく、誤りのあるデータだけを削除します。
7. イベントの順序を確認する
イベントの順序が正しくないと、ツールは誤ったフローをたどります。
- 順序を検証する:各ケースのイベントは、タイムスタンプの順に並んでいる必要があります。同じケースで「注文承認」が「注文作成」より前にある場合は、タイムスタンプを確認してください。
- タイムスタンプで並べ替える:アップロード前に、各ケースのイベントをタイムスタンプ列で並べ替えます。
8. 大規模データセットに対処する
大きな抽出データは準備にもアップロードにも時間がかかります。サイズに合わせて計画し、無理に扱おうとしないことが大切です。
- 探索にはサンプル、分析には全量を使う:抽出したイベントが適切かを確認するには、代表的なサンプルで十分です。分析に必要な場合は、全量の抽出データを読み込みます。
- 段階的に読み込む:すべてを置き換えるのではなく、増分(差分)アップロードで新しい期間のデータを追加します。
- 列指向形式を優先する:大量データでは、ParquetやORCファイルのほうがCSVやExcelより小さく、アップロードも高速です。サポートされているデータ形式を参照してください。
9. 機密データを保護する
イベントログには、氏名、住所、顧客番号、ユーザーIDなどが含まれるため、抽出データは個人データとして扱ってください。
- 匿名化またはマスキングする:分析に不要な情報は削除またはマスキングし、リソース分析に必要な場合に限ってユーザーIDを保持します。
- アクセスを制限する:抽出データを提供する相手は、必要な人に限定します。アップロードするデータセットには、役割ベースのアクセス制御を利用します。
- 適用される規則に従う:保存期間の制限、転送中および保存時の暗号化、顧客データに関するGDPRなどの規制に対応します。
10. イベントログを作成する
データのクリーニング、一貫性の確認、並べ替えが完了したら、イベントログを作成します。イベントログは、プロセスマイニングで使う主要なデータセットです。すべてのログには、次の項目が必要です。
- ケースID:各プロセスインスタンスを識別する一意のID。
- アクティビティ:発生したステップの名前。
- タイムスタンプ:イベントが発生した時刻。イベントの順序を決めます。
任意の列を追加すると、より詳しく分析できます。たとえば、リソース(担当者またはチーム)、部門、コスト、またはプロセスを切り分けるための任意の属性を追加できます。要件の全一覧はサポートされているデータ形式に記載されています。
11. データセットを検証する
結果を信頼する前に、データセットが想定したプロセスを正しく表していることを確認してください。
- ケースを抜き取り確認する:いくつかのプロセスインスタンスを最初から最後まで確認し、イベントの順序が適切かを確かめます。
- テスト分析を実行する:プロセスを一度マイニングし、明らかに不自然な点を探します。たとえば、発生したことのないアクティビティ、誤って見える開始または終了イベント、完了しているはずなのに終了していないケースなどです。
- プロセスオーナーに確認する:業務の専門家であれば、データが実際の業務の進み方を反映しているかを短時間で判断できます。
ProcessMind内でのデータクリーニング
アップロード後は、上記の準備作業の多くをProcessMind内で行えます。
- 列をマッピングして設定する:ソースファイルを作り直すのではなく、データセットの属性で表示名、データ型、タイムスタンプ形式を設定します。
- 品質を確認する:データ品質ダッシュボードで欠損値や不整合を確認し、分析前に修正できます。AIによるデータ推奨では、マッピングや修正の候補も提示されます。
- 不要なデータを非表示またはフィルタリングする:データセットの属性で列を非表示にし、フィルターで不要なイベントを除外します。
- 再アップロードではなく再読み込みする:データをその場で置き換えるか、継続的に増加するデータセットには増分(差分)アップロードを使います。
ProcessMind外でクリーニングする場合は、アップロード前に汎用ツール(Python/Pandas、ExcelまたはGoogle Sheets、ETLツール、OpenRefine)を使えます。命名、形式、増分読み込み、アーカイブまで含む詳しい手順は、プロセスマイニングのETLを参照してください。
関連トピック
- データの入手先:システムからステップごとに1行のデータを抽出します
- サポートされているデータ形式:ファイル形式と構造の要件
- データ品質:品質バッジで確認される内容
- データ問題のトラブルシューティング:症状ごとの解決方法
- プロセスマイニングのETL:データ準備の詳しい手順