BALANCE

根据 response_column 返回输入数据的平均分布视图。

这是元函数。您必须在顶级 SELECT 语句中调用元函数。

行为类型

易变

语法

BALANCE ( 'output‑view', 'input‑relation', 'response‑column', 'balance‑method'
       [ USING PARAMETERS sampling_ratio=ratio ] )

参数

output‑view
Vertica 保存来自输入关系的平衡数据的视图的名称。
input‑relation
包含函数用于创建更平衡的数据集的数据的表或视图。 如果输入关系在 Hive 中定义,请使用 SYNC_WITH_HCATALOG_SCHEMA 以同步 hcatalog 架构,然后运行机器学习功能。
response‑column
表示 VARCHAR 或 INTEGER 类型的因变量输入列的名称。
balance‑method
指定从少数类和多数类中选择数据的方法,为以下之一。
  • hybrid_sampling:对不同类执行过采样和欠采样,因此平等展现每个类。

  • over_sampling:对所有类过采样,多数类除外,适用于多数类的基数。

  • under_sampling:对所有类欠采样,少数类除外,适用于少数类的基数。

  • weighted_samplingunder_sampling 的别名。

参数

ratio
多数类与少数类之间的理想比例。与 balance 方法 hybrid_sampling 配合使用时,此值无效。

默认值: 1.0

特权

非超级用户:

  • 对输入关系的 SELECT 权限

  • 输出视图架构的 CREATE 权限

示例

=> CREATE TABLE backyard_bugs (id identity, bug_type int, finder varchar(20));
CREATE TABLE

=> COPY backyard_bugs FROM STDIN;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 1|Ants
>> 1|Beetles
>> 3|Ladybugs
>> 3|Ants
>> 3|Beetles
>> 3|Caterpillars
>> 2|Ladybugs
>> 3|Ants
>> 3|Beetles
>> 1|Ladybugs
>> 3|Ladybugs
>> \.

=> SELECT bug_type, COUNT(bug_type) FROM backyard_bugs GROUP BY bug_type;
 bug_type | COUNT
----------+-------
        2 |     1
        1 |     3
        3 |     7
(3 rows)

=> SELECT BALANCE('backyard_bugs_balanced', 'backyard_bugs', 'bug_type', 'under_sampling');
         BALANCE
--------------------------
 Finished in 1 iteration

(1 row)

=> SELECT bug_type, COUNT(bug_type) FROM backyard_bugs_balanced GROUP BY bug_type;
----------+-------
        2 |     1
        1 |     2
        3 |     1
(3 rows)

另请参阅