APPLY_INVERSE_SVD
将数据转换回原始域。这实质上是通过将三个矩阵相乘来计算原始数据的近似版本:矩阵 U(此函数的输入)、矩阵 S 和 V(存储在模型中)。
语法
APPLY_INVERSE_SVD ( 'input‑columns'
USING PARAMETERS model_name = 'model‑name'
[, match_by_pos = match‑by‑position]
[, exclude_columns = 'excluded‑columns']
[, key_columns = 'key‑columns'] )
参数
- input‑columns
- 输入关系中要使用的列的逗号分隔列表,或者使用星号 (*) 选择所有列。 需要满足以下要求:
-
所有列都必须为数字数据类型。
-
如果列名包含特殊字符,请用双引号将其括起来。
-
参数
model_name
模型的名称(不区分大小写)。
match_by_pos
该布尔值指定输入列如何与模型特征匹配:
-
false
(默认值):按名称匹配。 -
true
:按输入列列表中列的位置匹配。
-
exclude_columns
input-columns 中要排除在处理范围之外的列名的逗号分隔列表。
key_columns
- 来自 input‑columns 的列名称的逗号分隔列表,用于标识其数据行。这些列包含在输出表中。
示例
=> SELECT SVD ('svdmodel', 'small_svd', 'x1,x2,x3,x4');
SVD
--------------------------------------------------------------
Finished in 1 iterations.
Accepted Rows: 8 Rejected Rows: 0
(1 row)
=> CREATE TABLE transform_svd AS SELECT
APPLY_SVD (id, x1, x2, x3, x4 USING PARAMETERS model_name='svdmodel', exclude_columns='id', key_columns='id')
OVER () FROM small_svd;
CREATE TABLE
=> SELECT * FROM transform_svd;
id | col1 | col2 | col3 | col4
----+-------------------+---------------------+---------------------+--------------------
4 | 0.44849499240202 | -0.347260956311326 | 0.186958376368345 | 0.378561270493651
6 | 0.17652411036246 | -0.0753183783382909 | -0.678196192333598 | 0.0567124770173372
1 | 0.494871802886819 | 0.161721379259287 | 0.0712816417153664 | -0.473145877877408
2 | 0.17652411036246 | -0.0753183783382909 | -0.678196192333598 | 0.0567124770173372
3 | 0.150974762654569 | 0.589561842046029 | 0.00392654610109522 | 0.360011163271921
5 | 0.494871802886819 | 0.161721379259287 | 0.0712816417153664 | -0.473145877877408
8 | 0.44849499240202 | -0.347260956311326 | 0.186958376368345 | 0.378561270493651
7 | 0.150974762654569 | 0.589561842046029 | 0.00392654610109522 | 0.360011163271921
(8 rows)
=> SELECT APPLY_INVERSE_SVD (* USING PARAMETERS model_name='svdmodel', exclude_columns='id',
key_columns='id') OVER () FROM transform_svd;
id | x1 | x2 | x3 | x4
----+------------------+------------------+------------------+------------------
4 | 91.4056627665577 | 44.7629617207482 | 83.1704961993117 | 38.9274292265543
6 | 20.6468626294368 | 9.30974906868751 | 8.71006863405534 | 6.5855928603967
7 | 31.2494347777156 | 20.6336519003026 | 27.5668287751507 | 5.84427645886865
1 | 107.93376580719 | 51.6980548011917 | 97.9665796560552 | 40.4918236881051
2 | 20.6468626294368 | 9.30974906868751 | 8.71006863405534 | 6.5855928603967
3 | 31.2494347777156 | 20.6336519003026 | 27.5668287751507 | 5.84427645886865
5 | 107.93376580719 | 51.6980548011917 | 97.9665796560552 | 40.4918236881051
8 | 91.4056627665577 | 44.7629617207482 | 83.1704961993117 | 38.9274292265543
(8 rows)