KNN モデルの作成例

この例では、CUSTOMER_CHURN サンプル・データ・セットを使用して KNN モデルを作成する方法を示します。

まずは、次のようにして、CUSTOMER_CHURN 表を基に CUSTOMER_CHURN_VIEW サンプル・データ・セットを作成します。

CREATE VIEW CUSTOMER_CHURN_VIEW AS (SELECT CUST_ID, DURATION, CASE WHEN CENSOR=1 THEN 'yes' ELSE 'no' END AS CHURN,
AVG_SPENT_RETAIN_PM, AVG_SQ_SPENT_RETAIN_PM IN_B2B_INDUSTRY,  ANNUAL_REVENUE_MIL TOTAL_EMPLOYEES, 
TOTAL_BUY TOTAL_BUY_FREQ, TOTAL_BUY_FREQ_SQ
FROM CUSTOMER_CHURN);

次に、この CUSTOMER_CHURN_VIEW サンプル・データ・セットを、以下のようにしてトレーニング・データ・セットと検証データ・セットに分割します。

CALL IDAX.SPLIT_DATA('intable=customer_churn_view, traintable=customer_churn_train, 
testtable=customer_churn_test, id=cust_id, fraction=0.35');

次の呼び出しにより、customer_churn_train データ・セットに対してアルゴリズムを実行して KNN モデルを作成します。

CALL IDAX.KNN('model=customer_churn_mdl, intable=customer_churn_train, id=cust_id, target=churn');

PREDICT_KNN ストアード・プロシージャーで、CHURN 列の値を予測します。

次の呼び出しは、新しいトランザクションに値を関連付ける方法を示しています。

CALL IDAX.PREDICT_KNN('model= customer_churn_mdl, intable= customer_churn_test, outtable=customer_churn_score');

前の手順で得られた予測を検証するために、KNN モデル customer_churn_mdl の作成に使用しなかった CUSTOMER_CHURN_TEST データ・セットのレコードの CHURN 値を、customer_churn_score の予測と比較します。

SELECT s.id, s.class churn_predicted, churn from customer_churn_test i, customer_churn_score s where i.cust_id=s.id;