NAIVE_BAYES
对输入关系执行朴素贝叶斯算法,并返回朴素贝叶斯模型。
根据数据类型处理列:
-
FLOAT:假定值遵循某种高斯分布。
-
INTEGER:假定值属于一个多项分布。
-
CHAR/VARCHAR:假定值遵循某种分类分布。这些列中存储的字符串值不得超过 128 个字符。
-
BOOLEAN:值被视为具有两个值的分类值。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
NAIVE_BAYES ( 'model‑name', 'input‑relation', 'response‑column', 'predictor‑columns'
[ USING PARAMETERS [exclude_columns = 'excluded‑columns'] [, alpha = alpha-value] ] )
参数
- model‑name
- 标识要创建的模型,其中 model‑name 符合标识符中描述的约定。 同一架构中的序列、表、投影、视图和模型中也必须是唯一的。
- input‑relation
- 包含用于构建模型的训练数据的表或视图。 如果输入关系在 Hive 中定义,请使用
SYNC_WITH_HCATALOG_SCHEMA
以同步hcatalog
架构,然后运行机器学习功能。 - response‑column
- 表示因变量或结果的输入列的名称。此列必须包含代表不同类标签的离散标签。
响应列的类型必须为数字、CHAR/VARCHAR 或 BOOLEAN;否则模型无效。
注意
Vertica 自动将 numeric 响应列值转换为 VARCHAR。 - predictor‑columns
输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数
exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。所有预测变量列的类型必须为数字、CHAR/VARCHAR 或 BOOLEAN;否则模型无效。BOOLEAN 列值在训练前转换为 FLOAT 值:0 表示 false,1 表示 true。
参数
exclude_columns
- 要从处理中排除来自 predictor‑columns 列的逗号分隔列表。
alpha
- 浮点数,如果事件模型为分类式、多项式或伯努利式,则指定使用拉普拉斯平滑。
默认值: 1.0
模型属性
colsInfo
- 训练中使用的响应和预测变量列的信息:
-
index:训练中提供的列的索引(从 0 开始)。索引 0 用于响应列。
-
name:列的名称。
-
type:用于响应的标签,其值为 Gaussian、Multinominal、Categorical 或 Bernoulli。
-
alpha
- 平滑参数值。
prior
- 每个类在所有训练样本中的百分比:
-
label:类标签。
-
value:每个类的百分比。
-
nRowsTotal
- 数据集中接受用于训练的样本数。
nRowsRejected
- 拒绝用于训练的样本数。
callStr
- 用于复制训练的 SQL 语句。
Gaussian
- 高斯模型取决于由 class_name 指示的类:
-
index:预测变量列的索引。
-
mu:模型的平均值。
-
sigmaSq:模型的标准差平方。
-
Multinominal
- 多项式模型取决于由 class_name 指示的类:
-
index:预测变量列的索引。
-
prob:概率取决于由 class_name 指示的类。
-
Bernoulli
- 伯努利模型取决于由 class_name 指示的类:
-
index:预测变量列的索引。
-
probTrue:此预测变量列中值为 TRUE 的概率。
-
Categorical
- 高斯模型取决于由 class_name 指示的类:
-
category:预测变量名称中的值。
-
<class_name>:具有该值的概率取决于由 class_name 指示的类。
-
特权
超级用户或输入关系的 SELECT 权限。
示例
=> SELECT NAIVE_BAYES('naive_house84_model', 'house84_train', 'party', '*'
USING PARAMETERS exclude_columns='party, id');
NAIVE_BAYES
--------------------------------------------------
Finished. Accepted Rows: 324 Rejected Rows: 0
(1 row)