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