本文介绍了创建特征、更新特征、查看特征状态、查看特征列表以及删除特征的语法及其示例内容。

创建特征

特征的创建过程是异步的,需要通过查询特征的状态来判断当前特征是否创建成功。

语法
  • 基于数据库中的数据来创建特征。
    CREATE FEATURE feature_name WITH (feature_class= '',parameters=()) AS (SELECT select_expr[, select_expr] ... FROM table_reference)
  • 基于已有的特征来创建新的特征。
    CREATE FEATURE feature_name WITH (feature_class = '',parameters=()) USING FEATURE feature_reference
参数说明
参数说明
feature_name特征名称。
feature_class特征的类型。取值如下:
  • graph:构建图。基于数据库中的数据来创建特征时使用该值。
  • connected_subgraph:构建连通子图。基于已有特征来创建新特征时使用该值。且只能基于由graph创建的特征来创建连通子图。
  • iv:用于对输入特征变量进行编码,同时评估特征变量的预测能力。取值范围为0到正无穷。基于数据库中的数据来创建特征时使用该值。详情请参见IV算法
  • none_value:计算特征缺失比例,以此来判断特征的可用程度。基于数据库中的数据来创建特征时使用该值。
    说明
    • 如果特征缺失比例过高(>=0.8),可能会考虑丢弃该特征。
    • 如果特征缺失比例不高,可以考虑使用平滑操作来减少因特征带来的影响。
  • pearson:判断两个特征之间的线性关系。基于数据库中的数据来创建特征时使用该值。详情请参见Pearson相关系数
  • psi:检查数据的实际分布和期望分布的差异,以评估模型的稳定性。基于数据库中的数据来创建特征时使用该值。详情请参见群体稳定性指标PSI
parameters创建特征时用户自定义的参数。
select_expr用于创建特征的列名。
table_reference用于创建特征的列所在的表的名称。
feature_reference已存在的特征名称。
示例
  • 基于数据库中的数据来创建特征。
    /*polar4ai*/create feature test_graph_1 with (feature_class='graph') as (select ip, user_id from small_sample limit 30)
    执行结果如下:
    Query OK, 0 rows affected (0.79 sec)
  • 基于已有的特征来创建新的特征。
    /*polar4ai*/create feature test_subgraph_1 with (feature_class='connected_subgraph') using feature test_graph_1
    执行结果如下:
    Query OK, 0 rows affected (0.79 sec)

更新特征

更新特征的过程是异步的,需要通过查询特征状态来判断当前特征是否更新完成。

语法
UPDATE FEATURE feature_name WITH (feature_class = '',parameters=()) AS (SELECT select_expr [, select_expr] ... FROM table_reference)
参数说明
参数说明
feature_name特征名称。
feature_class特征的类型,固定为graph。
parameters创建特征时用户自定义的参数。
select_expr用于更新已创建的特征的列名。
说明
  • 如果待更新的列与特征中已存在的列的列名不同但含义相同,则待更新的列名与特征中已存在的列的名称需要保持一致,您可以通过起别名的方式来保持列名一致。
  • 如果待更新的列与特征中已存在的列的列名相同但含义不同,则待更新的列名不能与特征中已存在的列的名称相同,您可以通过起别名的方式来区分列名。
table_reference用于更新已创建的特征的列所在的表的名称。
示例

将特征test_subgraph_1的列修改为small_sample表中的ipuser_id列。

/*polar4ai*/update feature test_graph_1 with (feature_class='graph') as (select ip, user_id from small_sample limit 30)
执行结果如下:
Query OK, 0 rows affected (0.79 sec)

查看特征状态

查看特征当前的状态,一般情况下,在创建特征或更新特征之后,用来查询特征是否创建或更新成功。特征的状态有以下几种:
  • INIT:特征初始化完毕。
  • PREPARING:特征所需数据准备中。
  • PREPARED:特征所需数据准备完成。
  • COMPUTING:特征计算中。
  • COMPUTED:特征计算完成。
  • RESTORING:特征计算结果存储中。
  • RESTORED:特征计算结果存储完成。
  • FINISHED:特征计算结束。
  • FAILED:特征计算失败。
语法
SHOW FEATURE feature_name 
参数说明
参数说明
feature_name特征名称。
示例
查看test_subgraph_1特征状态。
/*polar4ai*/show feature test_subgraph_1;
执行结果如下:
+-----------+-------------------------------------------------------------------------------------------------------------------------------+
| CSGStatus | featurePath                                                                                                                   |
+-----------+-------------------------------------------------------------------------------------------------------------------------------+
| FINISHED  | http://db4ai-collie-cn-hangzhou-dataset.oss-cn-hangzhou.aliyuncs.com/xxxx.txt?OSSAccessKeyId=xxxx&Expires=xxxx&Signature=xxxx |
+-----------+-------------------------------------------------------------------------------------------------------------------------------+
说明 featurePath的有效时间为100分钟,您可以通过featurePath中的Expires参数查看链接是否在有效期内。如果您需要访问该链接,请在有效期内进行访问。

查看特征列表

查看当前集群下的所有特征。

语法
SHOW FEATURES
示例
/*polar4ai*/show features;
执行结果如下:
+--------------------+-----------------+----------------+
| feature_class      | feature_name    | feature_status |
+--------------------+-----------------+----------------+
| connected_subgraph | test_subgraph_1 | DELETED        |
| graph              | test_graph_1    | FINISHED       |
+--------------------+-----------------+----------------+
2 rows in set (0.32 sec)

删除特征

删除已经创建的特征。

语法
DROP FEATURE feature_name 
参数说明
参数说明
feature_name特征名称。
示例
删除已经创建的特征test_subgraph_1
/*polar4ai*/drop feature test_subgraph_1
执行结果如下,表示已成功删除特征:
Query OK, 0 rows affected (0.69 sec)