第93章 クレジットカード詐欺紛争のユースケース
金融業界は、いくつかの分野で意思決定に Pragmatic AI を使用しています。その 1 つは、クレジットカードの請求に関する紛争です。顧客がクレジットカードの請求書に誤った、または認識していない請求を特定した場合、顧客はその請求に異議を申し立てることができます。クレジットカード詐欺の検出に人間の介入が必要な場合もありますが、報告されたクレジットカード詐欺の大部分は、Pragmatic AI で完全にまたは部分的に解決できます。
Tensorflow™ および R™ などのマシンラーニングモデルは予測可能なモデルを生成します。この予測モデルは、PMML などのオープン標準で保存できます。これにより、Red Hat Decision Manager または PMML 標準をサポートする他の製品でモデルを使用できます。
93.1. PMML モデルと DMN モデルを使用して、クレジットカード取引の異議申し立てを解決
この例は、Red Hat Decision Manager を使用して、PMML モデルを使用してクレジットカード取引の異議申し立てを解決する DMN モデルを作成する方法を示しています。顧客がクレジットカード取引に異議を唱えると、システムは取引を自動的に処理するかどうかを決定します。
前提条件
Red Hat Decision Manager が使用可能であり、次の JAR ファイルが Red Hat Decision Manager の
~/kie-server.war/WEB-INF/lib
ディレクトリーおよび~/business-central.war/WEB-INF/lib
ディレクトリーに追加されている。kie-dmn-jpmml-7.67.0.Final-redhat-00024.jar
このファイルは、Red Hat カスタマーポータルの Software Downloads ページから利用できる Red Hat Decision Manager 7.13 Maven リポジトリーディストリビューションで利用できます (ログインが必要です)。このファイルのグループ ID、アーティファクト ID、およびバージョン (GAV) 識別子は、
org.kie:kie-dmn-jpmml:7.67.0.Final-redhat-00024
です。詳細は、DMN モデルを使用したデシジョンサービスの作成 の Business Central の DMN ファイルへの PMML モデルの追加セクションを参照してください。- JPMML Evaluator 1.5.1 JAR ファイル
JPMML Evaluator Extensions 1.5.1 JAR ファイル
これらのファイルは、KIE Server と Business Central で JPMML 評価を有効にするのに必要です。
重要Red Hat は、Red Hat Decision Manager で PMML を実行するため、PMML (JPMML) 向けの Java Evaluator API との統合をサポートしています。しかし、Red Hat は JPMML ライブラリーを直接サポートしません。Red Hat Decision Manager ディストリビューションに JPMML ライブラリーを含む場合は、JPMML の Openscoring.io ライセンス条件を確認してください。
手順
-
「クレジットカード取引紛争の例 PMML ファイル」 の XML 例の内容で
dtree_risk_predictor.pmml
ファイルを作成します。 Business Central で Credit Card Dispute プロジェクトを作成します。
-
Menu
Design Projects に移動します。 - Add Project をクリックします。
-
Name ボックスに
Credit Card Dispute
と入力し、Add をクリックします。
-
Menu
Credit Card Dispute プロジェクトの Assets ウィンドウで、
dtree_risk_predictor.pmml
ファイルをcom
パッケージにインポートします。- Import Asset をクリックします。
Create new Import Asset ダイアログで、Name ボックスに
dtree_risk_predictor
と入力し、Package メニューから com を選択し、dtree_risk_predictor.pmml
ファイルを選択して OK をクリックします。dtree_risk_predictor.pmml
ファイルの内容が Overview ウィンドウに表示されます。
com パッケージで DMN モデル Dispute Transaction Check を作成します。
- プロジェクトウィンドウに戻り、ブレッドクラムの Credit Card Dispute をクリックします。
- Add Asset をクリックします。
- アセットライブラリーで DMN をクリックします。
Create new DMN ダイアログで、Name ボックスに
Dispute Transaction Check
と入力し、Package メニューから com を選択して OK をクリックします。DMN モデル Dispute Transaction Check で DMN エディターが開きます。
tTransaction カスタムデータタイプを作成します。
- Data Types タブをクリックします。
- Add a custom Data Type をクリックします。
-
Name ボックスに、
tTransaction
を入力します。 - Type メニューから Structure を選択します。
データ型を作成するには、チェックマークをクリックします。
tTransaction カスタムデータタイプは、1 つの変数行で表示されます。
-
変数行の Name フィールドに
transaction_amount
と入力し、Type メニューから Number を選択してからチェックマークをクリックします。 -
新しい変数行を追加するには、
transaction_amount
行のプラス記号をクリックします。新しい行が表示されます。 -
Name フィールドに
cardholder_identifier
と入力し、Type メニューから Number を選択してからチェックマークをクリックします。
Risk Predictor
dtree_risk_predictor.pmml
モデルを追加します。- DMN エディターの Included Models ウィンドウで Include Model をクリックします。
-
Include Model ダイアログで、Models メニューから
dtree_risk_predictor.pmml
を選択します。 -
Provide a unique name ボックスに
Risk Predictor
と入力し、OK をクリックします。
Risk Predictor モデルおよび DecisionTreeClassifier モデルで、Business Knowledge Model (BKM) ノード Risk Predictor を作成します。
DMN エディターの Model ウィンドウで、BKM ノードを DMN エディターパレットにドラッグします。
- Risk Predictor ノードの名前を変更します。
ノードの左側にあるごみ箱の配下にある編集アイコンをクリックします。
- Risk Predictor ボックスで F をクリックし、Select Function Kind メニューから PMML を選択します。F が P に変わります。
- First select PMML document ボックスをダブルクリックして、Risk Predictor を選択します。
- Second select PMML model ボックスをダブルクリックして、DecisionTreeClassifier を選択します。
- DMN エディターパレットに戻るには、Back to Dispute Transaction Check をクリックします。
データ型 tTransaction で Transaction 入力データノードを作成します。
DMN エディターの Model ウィンドウで、入力データノードを DMN エディターパレットにドラッグします。
- トランザクション ノードの名前を変更します。
- ノードを選択して、ウィンドウの右上隅にあるプロパティーの鉛筆アイコンをクリックします。
-
Properties パネルで Information Item
Data type tTransaction を選択し、パネルを閉じます。
Transaction Dispute Risk デシジョンノードを作成し、データ入力用の Transaction ノードと、関数の Risk Predictor ノードを追加します。
DMN エディターの Model ウィンドウで、デシジョンデータノードを DMN エディターパレットにドラッグします。
- ノードの名前を Transaction Dispute Risk に変更します。
- Risk Predictor ノードを選択し、ノードの右上にある矢印を Transaction Dispute Risk ノードをドラッグします。
- Transaction ノードを選択し、ノードの右上にある矢印を Transaction Dispute Risk にドラッグします。
Transaction Dispute Risk ノードで、Risk predictor 予測関数を作成します。
- Transaction Dispute Risk ノードを選択し、ノードの左側にある編集アイコンをクリックします。
- Select expression をクリックし、メニューから Invocation を選択します。
- Enter function ボックスに Risk Predictor と入力します。
- P1 をクリックします。
-
Edit Parameter ダイアログボックスで、Name ボックスに
amount
と入力し、Data Type メニューから number を選択して、Enter キーを押します。 - Select expression をクリックし、メニューから Literal expression を選択します。
-
amount の横にあるボックスに
Transaction.transaction_amount
を入力します。 - 1 を右クリックして、Insert below を選択します。パラメーターの Edit Parameter が開きます。
- Name ボックスに holder_index と入力し、Data Type メニューから number を選択し、Enter キーを押します。
- 行 2 で Select expression をクリックし、メニューから Literal expression を選択します。
-
amount の横にあるボックスに
Transaction.cardholder_identifier
と入力します。
データ型 number で、入力データノード Risk Threshold を作成します。
- DMN エディターの Model ウィンドウで、入力データノードを DMN エディターパレットにドラッグします。
- Risk Threshold ノードの名前を変更します。
- ノードを選択して、ウィンドウの右上隅にあるプロパティーの鉛筆アイコンをクリックします。
-
Properties パネルで Information Item
Data type number の順に選択し、パネルを閉じます。
Can be automatically processed? デシジョンノードは、Transaction Dispute Risk ノードおよび Risk threshold ノードの入力として取ります。
- デシジョンノードを DMN エディターパレットにドラッグし、名前を Can be automatically processed? に変更します。
- ノードを選択し、ノードの左上にある編集アイコンをクリックします。
- Select expression をクリックしてから、メニューから Literal expression を選択します。
-
ボックスに
Transaction Dispute Risk.predicted_dispute_risk < Risk Threshold
と入力します。 - Transaction Dispute Risk ノードを選択し、ノードの左上にある矢印を Can be automatically processed? にドラッグします。
- Risk Threshold ノードを選択し、ノードの左上にある矢印を Can be automatically processed? ノードにドラッグします。
モデルを保存し、プロジェクトをビルドします。
- DMN エディターで Save をクリックします。
- 必要な場合は、表示されるエラーを修正します。
- プロジェクトウィンドウに戻り、ブレッドクラムの Credit Card Dispute をクリックします。
- Build をクリックします。プロジェクトが正常にビルドされるはずです。
テストシナリオを追加して実行します。
- Add Asset をクリックします。
- Test Scenario を選択します。
-
Create new Test Scenario ダイアログで、
Test Dispute Transaction Check
の名前を入力し、Package メニューから com を選択して DMN を選択します。 - Choose a DMN asset メニューから Dispute Transaction Check.dmn を選択し、OK をクリックします。テスト用テンプレートがビルドされます。
以下の値を入力して Save をクリックします。
注記Transaction Dispute risk 列に値を追加しないでください。この値は、テストシナリオにより決定されます。
表93.1 テストシナリオパラメーター 説明 リスクのしきい値 cardholder_identifier transaction_amount 自動的に処理可能か リスクしきい値 5、自動的に処理される
5
1234
1000
true
リスクしきい値 4、合計 = 1000、未処理
4
1234
1000
false
リスクしきい値 4、合計 = 180、自動処理
4
1234
180
true
リスクしきい値 1、合計 = 1、未処理
1
1234
1
false
- テストを実行するには、Validate の右側にある Play ボタンをクリックします。結果は、画面の右側の Test Report パネルに表示されます。