特異値分解 (SVD) は、線形代数における重要な行列分解です。 これは、行列分析における正常行列の対角化の一般化です。 SVDは、信号処理や統計などの分野で広く使用されています。
背景情報
特異値分解の式: X = U S V'
コンポーネントの設定
次のいずれかの方法を使用してコンポーネントを設定できます。
Machine Learning Platform for AIコンソールの使用
タブ
パラメーター
説明
フィールド設定
フィーチャー列
キーと値のペアを格納するために使用される列。 キーと値はコロン (:) で区切り、複数のキーと値のペアはコンマ (,) で区切ります。
パラメーター設定
予約済みの単一値の数
分解したい上位N個の特異グループ。 すべての特異群はデフォルトで分解されます。
精度エラー
許可されているエラーの精度。
チューニング
ノードあたりのメモリサイズ
各ノードのメモリサイズ。 単位:MB。 このパラメーターは、[ノード数] パラメーターと共に使用する必要があります。 このパラメーターの値は正の整数でなければなりません。 有効な値: [1,9999] 。
ノード数
このパラメーターの値は正の整数でなければなりません。 有効値: [1024,64 × 1024]
生涯
出力テーブルのライフサイクル。
コマンドの使用
PAI -name svd -project algo_public -DinputTableName=bank_data -DselectedColNames=col0 -DenableSparse=true -Dk=5 -DoutputUTableName=u_table -DoutputVTableName=v_table -DoutputSTableName=s_table;
パラメーター
必須
説明
デフォルト値
inputTableName
可
トレーニングに使用される入力テーブル。
N/A
selectedColNames
不可
トレーニング用に入力テーブルから選択された列。 列はコンマ (,) で区切ります。
スパース行列を使用する場合、STRINGデータ型の列がサポートされます。 データテーブルを使用する場合、INT型とDOUBLE型の列がサポートされます。
すべての列
inputTablePartitions
不可
トレーニング用に入力テーブルから選択されたパーティション。 このパラメーターを
Partition_name=value
形式で設定します。マルチレベルパーティションを指定するには、このパラメーターを
name1=value1/name2=value2;
形式で設定します。複数のパーティションを指定する場合は、コンマで区切ります (,) 。
すべてのパーティション
outputUTableName
可
ユニタリ行列の出力テーブル。 出力テーブルは、
m * sgNum
ディメンションから生成されます。 mはデータテーブルの行数を表し、sgNumは計算された特異値の数を表します。N/A
outputSTableName
可
散乱行列 (S行列) の出力テーブル。 出力テーブルは、
sgNum * sgNum
ディメンションから生成されます。 sgNumは、計算された特異値の数を表す。N/A
outputVTableName
可
V行列の出力テーブル。 出力テーブルは、
n * sgNum
ディメンションから生成されます。 nは行列の列の数を表し、sgNumは計算された特異値の数を表します。N/A
k
可
予想される特異値の数。
生成される特異値の数は、kパラメータによって指定される値よりも小さい正の整数であってもよい。
N/A
tol
不可
収束エラー。
1.0e ~ 06
enableSparse
不可
入力テーブルのデータがスパース形式かどうかを指定します。 有効な値:
true
false
false
itemDelimiter
不可
入力テーブルのデータがスパース形式の場合にキーと値のペアを区切るために使用される区切り文字。
スペース
kvDelimiter
不可
入力テーブルのデータがスパース形式である場合に、キーと値を区切るために使用される区切り文字。
:
coreNum
不可
コアの数。 このパラメーターは、memSizePerCoreパラメーターと共に使用する必要があります。 このパラメーターの値は正の整数でなければなりません。 有効な値: [1,9999] 。
システムによって決定される
memSizePerCore
不可
各コアのメモリサイズ。 単位:MB。 このパラメーターの値は正の整数でなければなりません。 有効値: [1024,64 × 1024]
システムによって決定される
ライフサイクル
不可
出力テーブルのライフサイクル。 値は正の整数でなければなりません。
N/A
例:
入力データの生成
drop table if exists svd_test_input; create table svd_test_input as select * from ( select '0:3.9079 2:0.0009 3:0.0416 4:0.17664 6:0.36460 8:0.091330' as col0 union all select '0:0.09229 2:0.4872172 5:0.5267 8:0.4544 9:0.23317' as col0 union all select '1:0.8312 3:0.9317 5:0.5680 7:0.5560 9:0.0508' as col0 union all select '2:0.767 5:0.01891 8:0.25235 ' as col0 union all select '0:0.29819 2:0.87598086 6:0.5315568 ' as col0 union all select '0:0.920260 2:0.5154311513 4:0.8104 5:0.188420 8:0.88' as col0 ) a;
コマンドの実行
PAI -name svd -project algo_public -DinputTableName=svd_test_input -DselectedColNames=col0 -DenableSparse=true -Dk=5 -DoutputUTableName=u_table -DoutputVTableName=v_table -DoutputSTableName=s_table;
分析スケール: 100,000列