特徵離散是機器學習中的一種資料預先處理技術,用於將連續特徵轉換為離散特徵。通過特定的規則或方法(如等頻、等距等),特徵離散將連續數值資料劃分為有限個不連續的區間或類別,以便於模型處理和分析。這種轉換有助於提高某些演算法的效能,特別是在處理分類問題時。
演算法說明
離散模組的功能如下:
支援稠密數值類特徵離散。
支援等頻離散和等距離離散等無監督離散。
說明無監督離散的特徵離散預設為等距離離散。
支援基於Gini增益離散和基於熵增益離散等有監督離散。
說明標籤類特徵離散必須是枚舉類型STRING或BIGINT類型。
有監督離散是根據熵增益不斷遍曆尋找切分斷點,已耗用時間可能比較久。切分得到的分區數不受指定的maxBins參數限制。
配置參數
方式一:可視化方式
在Designer工作流程頁面添加特徵離散組件,並在介面右側配置相關參數:
參數類型 | 參數 | 描述 |
欄位設定 | 離散的特徵 | 選擇需要離散的特徵。 |
標籤列 | 如果您設定了該欄位,則可以通過可視化方式查看特徵到目標變數的x-y分布長條圖。 | |
參數設定 | 離散方法 | 離散方法。取值如下:
推薦使用等距離散、等頻離散。基於Gini增益離散、基於熵增益離散這兩個功能可以理解為實驗性質,如果是需要WOE指標的話,可以查看分箱這個組件。 |
離散區間個數 | 離散區間的個數。取值為大於1的正整數。 | |
執行調優 | 計算核心數 | 計算的核心數目,取值為正整數。 |
每個核心記憶體 | 每個CPU分配的記憶體大小。 |
方式二:PAI命令方式
使用PAI命令配置特徵離散組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
PAI -name fe_discrete_runner_1 -project algo_public
-DdiscreteMethod=SameFrequecy
-Dlifecycle=28
-DmaxBins=5
-DinputTable=pai_dense_10_1
-DdiscreteCols=nr_employed
-DoutputTable=pai_temp_2262_20382_1
-DmodelTable=pai_temp_2262_20382_2;參數 | 是否必選 | 預設值 | 參數描述 |
inputTable | 是 | 無 | 輸入表的表名稱。 |
inputTablePartitions | 否 | 輸入表的所有分區。 | 輸入表中指定參與訓練的分區,格式為 如果是多級分區,格式為 如果指定多個分區,則需要使用,隔開。 |
outputTable | 是 | 無 | 離散後的結果表。 |
discreteCols | 是 | “” | 選擇需要離散的特徵。如果選擇的是稀疏特徵,則系統會自動篩選。 |
labelCol | 否 | 無 | 標籤欄位。如果您設定了該欄位,則可以通過可視化方式查看特徵到目標變數的x-y分布長條圖。 |
discreteMethod | 否 | Isometric Discretization | 離散方法。取值如下:
|
maxBins | 否 | 100 | 離散區間個數。取值為大於1的正整數。 |
lifecycle | 否 | 7 | 結果表生命週期。取值為正整數。 |
coreNum | 否 | 系統自動分配。 | 節點個數。與memSizePerCore參數配對使用,取值為正整數。 |
memSizePerCore | 否 | 系統自動分配。 | 單個節點記憶體大小,單位為兆。取值為正整數。 |
樣本
輸入資料
使用 SQL產生輸入資料。
create table if not exists pai_dense_10_1 as select nr_employed from bank_data limit 10;參數配置
輸入資料為pai_dense_10_1。離散特徵選取nr_employed,離散方法選擇等距離散,離散區間個數配置為5。
運行結果
nr_employed
4.0
3.0
1.0
3.0
2.0
4.0
3.0
3.0
2.0
3.0