全部產品
Search
文件中心

Platform For AI:K近鄰

更新時間:Jul 13, 2024

K近鄰演算法進行分類的原理是針對預測表的每行資料,從訓練表中選擇與其距離最近的K條記錄,將這K條記錄中類別數量最多的類,作為該行的類別。

組件配置

您可以使用以下任意一種方式,配置K近鄰組件參數。

方式一:可視化方式

Designer工作流程頁面配置組件參數。

頁簽

參數

描述

欄位設定

選擇訓練表特徵列

用於訓練的特徵列。

選擇訓練表的標籤列

訓練的目標列。

選擇預測表特徵列

如果未配置該參數,則表示其與訓練表特徵列相同。

產出表附加ID列

用於標識該列的身份,從而獲得某列對應的預測值。系統預設使用預測表特徵列,作為附加ID列。

輸入表資料是稀疏格式

使用KV格式表示稀疏資料。

kv間的分隔字元

預設為英文逗號(,)。

key和value的分隔字元

預設為英文冒號(:)。

參數設定

近鄰個數

預設值為100。

執行調優

核心數

預設系統自動分配。

記憶體數

預設系統自動分配。

方式二: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

訓練表的表名。

trainFeatureColNames

訓練表的特徵列名。

trainLabelColName

訓練表的標籤列名。

trainTablePartitions

訓練表中,參與訓練的分區。

所有分區

predictTableName

預測表的表名。

outputTableName

輸出表的表名。

predictFeatureColNames

預測表的特徵列名。

trainFeatureColNames相同

predictTablePartitions

預測表中,參與預測的分區。

所有分區

appendColNames

輸出表中,附加預測表的列名。

predictFeatureColNames相同

outputTablePartition

輸出表的分區。

全表

k

最近鄰的數量。取值範圍為1~1000。

100

enableSparse

輸入表資料是否為稀疏格式。取值範圍為{true,false}

false

itemDelimiter

如果輸入表資料為稀疏格式,則KV對之間的分隔字元。

英文逗號(,)

kvDelimiter

如果輸入表資料為稀疏格式,則keyvalue之間的分隔字元。

英文冒號(:)

coreNum

節點數量。與memSizePerCore搭配使用,取值範圍為1~20000。

系統自動計算

memSizePerCore

單個節點的記憶體,取值範圍為1024 MB~64*1024 MB。

系統自動計算

lifecycle

輸出表的生命週期。

樣本

  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近鄰演算法組件參數。

    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. 查看訓練結果。K近鄰樣本結果其中:

    • f0f1表示結果附件列。

    • prediction_result表示分類結果。

    • prediction_score表示分類結果對應的機率。

    • prediction_detail表示最近的K個分類及其對應的機率。