すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:K-NN

最終更新日:Aug 15, 2024

K-NNコンポーネントは、分類のために予測テーブルの行からK個の最も近いレコードを選択する。 K最近傍レコードの最も一般的なクラスが、行のクラスとして使用される。

コンポーネントの設定

次のいずれかの方法を使用して、K-NNコンポーネントを設定できます。

方法1: パイプラインページでコンポーネントを設定する

K-NNコンポーネントのパラメーターは、Machine Learning Platform for AI (PAI) のMachine Learning Designerのパイプラインページで設定できます。 Machine Learning Designerは、以前はMachine Learning Studioとして知られていました。 下表に、各パラメーターを説明します。

タブ

パラメーター

説明

フィールド設定

トレーニングテーブルのフィーチャー列

トレーニングに使用されるフィーチャ列。

トレーニングテーブルのラベル列を指定します

トレーニング用に選択されているラベル列。

予測テーブルのフィーチャ列

このパラメーターが指定されていない場合、予測テーブルから選択されたフィーチャ列は、トレーニングテーブルのフィーチャ列と同じになります。

出力テーブルにID列を追加

列の予測値を取得するために使用されるID列。 デフォルトでは、予測テーブルから選択されたフィーチャ列がID列として使用されます。

スパース形式での入力

入力データがスパース形式かどうかを指定します。 チェックボックスをオンにすると、入力データはkey-value形式になります。

KVペア区切り文字

キーと値のペアを区切るために使用される区切り文字。 デフォルトでは、Commas (,) が使用されます。

キーと値の区切り文字

キーと値を区切るために使用される区切り文字。 Colons (:) はデフォルトで使用されます。

パラメーター設定

数の隣人

デフォルト値:100

チューニング

コア数

コアの数。 デフォルトでは、システムが値を決定します。

メモリサイズ

各コアのメモリサイズ。 デフォルトでは、システムが値を決定します。

方法2: PAIコマンドを使用する

PAIコマンドを使用してコンポーネントパラメータを設定します。 SQLスクリプトコンポーネントを使用してPAIコマンドを呼び出すことができます。 詳細については、「SQLスクリプト」をご参照ください。

PAI -name knn
    -DtrainTableName=pai_knn_test_input
    -DtrainFeatureColNames=f0,f1
    -DtrainLabelColName=class
    -DpredictTableName=pai_knn_test_input
    -DpredictFeatureColNames=f0,f1
    -DoutputTableName=pai_knn_test_output
    -Dk=2;

パラメーター

必須

説明

デフォルト値

trainTableName

トレーニングテーブルの名前。

N/A

trainFeatureColNames

トレーニングテーブルのフィーチャ列の名前。

N/A

trainLabelColName

トレーニングテーブルのラベル列の名前。

N/A

trainTablePartitions

不可

トレーニング用にトレーニングテーブルから選択されたパーティション。

すべてのパーティション

predictTableName

予測テーブルの名前。

N/A

outputTableName

出力テーブルの名前。

N/A

predictFeatureColNames

不可

予測テーブルのフィーチャ列の名前。

trainFeatureColNamesパラメーターの値と同じ

predictTablePartitions

不可

予測のために予測テーブルから選択されるパーティション。

すべてのパーティション

appendColNames

不可

出力テーブルに追加される列の名前。

predictFeatureColNamesパラメーターの値と同じ

outputTablePartition

不可

出力テーブルのパーティション。

ll table

k

不可

K近傍の数。 有効な値: 1 ~ 1000

100

enableSparse

不可

入力テーブルのデータがスパース形式かどうかを指定します。 有効な値: trueとfalse

false

itemDelimiter

不可

キーと値のペアを区切るために使用される区切り文字。

,

kvDelimiter

不可

キーと値のペアでキーを区切るために使用される区切り文字。

:

coreNum

不可

コアの数。 このパラメーターは、memSizePerCoreパラメーターと共に使用する必要があります。 有効な値: 1 ~ 20000

システムによって決定される

memSizePerCore

不可

各コアのメモリサイズ。 有効値: 1024〜64x1024。 単位:MB。

システムによって決定される

ライフサイクル

不可

出力テーブルのライフサイクル。

N/A

例:

  1. トレーニングデータを生成します。

    create table pai_knn_test_input as
    select * from
    (
      select 1 as f0,2 as f1, 'good' as class
      union all
      select 1 as f0,3 as f1, 'good' as class
      union all
      select 1 as f0,4 as f1, 'bad' as class
      union all
      select 0 as f0,3 as f1, 'good' as class
      union all
      select 0 as f0,4 as f1, 'bad' as class
    )tmp;
  2. 次のPAIコマンドを実行して、K-NNコンポーネントのパラメーターを送信します。

    pai -name knn
        -DtrainTableName=pai_knn_test_input
        -DtrainFeatureColNames=f0,f1
        -DtrainLabelColName=class
        -DpredictTableName=pai_knn_test_input
        -DpredictFeatureColNames=f0,f1
        -DoutputTableName=pai_knn_test_output
        -Dk=2;
  3. トレーニング結果を表示します。 Result結果には次の列が含まれます。

    • f0およびf1: 付加された列。

    • prediction_result: 分類結果をリストします。

    • prediction_score: 分類結果の確率を示します。

    • prediction_detail: K近傍のクラスとその確率をリストします。