创建 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');

您可验证上一步的预测,方法如下:将 CUSTOMER_CHURN_TEST 数据集中未用于构建 KNN 模型 customer_churn_mdl 的记录的 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;