microsoftml.rx_ensemble:將多個模型合併成單一模型
使用方式
microsoftml.rx_ensemble(formula: str,
data: [<class 'revoscalepy.datasource.RxDataSource.RxDataSource'>,
<class 'pandas.core.frame.DataFrame'>, <class 'list'>],
trainers: typing.List[microsoftml.modules.base_learner.BaseLearner],
method: str = None, model_count: int = None,
random_seed: int = None, replace: bool = False,
samp_rate: float = None, combine_method: ['Average', 'Median',
'Vote'] = 'Median', max_calibration: int = 100000,
split_data: bool = False, ml_transforms: list = None,
ml_transform_vars: list = None, row_selection: str = None,
transforms: dict = None, transform_objects: dict = None,
transform_function: str = None,
transform_variables: list = None,
transform_packages: list = None,
transform_environment: dict = None, blocks_per_read: int = None,
report_progress: int = None, verbose: int = 1,
compute_context: revoscalepy.computecontext.RxComputeContext.RxComputeContext = None)
Description
將一整團模型定型。
詳細資料
rx_ensemble
是一個函數,可將各種類型的數個模型定型,以取得與從單一模型取得的效能相比更佳的預測效能。
引數
formula
有效 Python 語法中的符號或數學公式,以雙引號括住。 符號公式可能會參考資料來源中的物件,例如 "creditScore ~ yearsEmploy"
。
目前不支援互動字詞 (creditScore * yearsEmploy
) 和運算式 (creditScore == 1
)。
data
資料來源物件或字元字串,指定 .xdf 檔案或資料框架物件。 或者,也可以是資料來源清單,表示每個模型都應該使用清單中的其中一個資料來源定型。 在此情況下,資料清單的長度必須等於 model_count。
trainers
具有其引數的定型器清單。 定型器是使用 FastTrees
、FastForest
、FastLinear
、LogisticRegression
、NeuralNetwork
或 OneClassSvm
建立。
method
指定集成類型的字元字串:"anomaly"
表示異常偵測、"binary"
表示二元分類、multiClass
表示多元分類,或 "regression"
表示迴歸。
random_seed
指定隨機種子。 預設值是 None
。
model_count
指定要定型的模型數目。 如果此數字大於定型器清單的長度,則定型器清單會重複以符合 model_count
。
取代
邏輯值,指定觀測的取樣應該重複或不重複進行。 預設值是 False
。
samp_rate
正值的純量,指定要針對每個定型器取樣的觀測百分比。 預設值 1.0
表示重複取樣 (即 replace=True
),而 0.632
則表示不重複取樣 (即 replace=False
)。 當 split_data
為 True
時,預設值 samp_rate
為 1.0
(分割前不會進行取樣)。
split_data
邏輯值,指定是否要在非重疊的分割區上定型基本模型。
預設值為 False
。 僅適用於 RxSpark
計算內容,其他內容則會忽略。
combine_method
指定用來合併模型的方法:
"Median"
:可計算個別模型輸出的中位數,"Average"
:可計算個別模型輸出的平均值,以及"Vote"
:可計算模型的 (pos-neg)/總數,其中 'pos' 是正輸出的數目,而 'neg' 則是負輸出的數目。
max_calibration
指定用於校正的範例數目上限。 除了二元分類之外,所有其他工作都會忽略此引數。
ml_transforms
指定在定型之前要在資料上執行的 MicrosoftML 轉換清單,或者,若未執行任何轉換,則為 None。 不允許需要額外忽略資料的轉換 (例如 featurize_text
、categorical
)。
這些轉換會在任何指定的 R 轉換之後執行。
預設值為 None。
ml_transform_vars
指定要用於 ml_transforms 之變數名稱的字元向量,或者,若未使用任何名稱,則為 None。 預設值為 None。
row_selection
不支援。 指定資料集中要供模型使用的資料列 (觀測值),可以是來自資料集的邏輯變數名稱 (以引號括住),或是使用資料集中變數的邏輯運算式。 例如:
rowSelection = "old"
將只會使用old
變數值為True
的觀測值。rowSelection = (age > 20) & (age < 65) & (log(income) > 10)
只會使用age
變數值介於 20 到 65 之間且income
變數log
值大於 10 的觀察值。
資料列選取會在處理任何資料轉換之後執行 (請參閱引數 transforms
或 transform_func
)。 如同所有運算式,可以在函數呼叫之外使用 expression
函數定義 row_selection
。
轉換
不支援。 代表第一輪變數轉換形式的運算式。 如同所有運算式,可以在函數呼叫之外使用 expression
函數定義 transforms
(或 row_selection
)。
transform_objects
不支援。 具名清單,其中包含 transforms
、transform_function
和 row_selection
可以參考的物件。
transform_function
變數轉換函數。
transform_variables
轉換函數所需之輸入資料集變數的字元向量。
transform_packages
不支援。 字元向量,用以指定其他 Python 套件 (除了 RxOptions.get_option("transform_packages")
中指定的套件以外) 以供使用,並且預先載入以供變數轉換函數使用。
例如,revoscalepy 函數中透過其 transforms
與 transform_function
引數明確定義的字元向量,或透過其 formula
或 row_selection
引數隱含定義的字元向量。
transform_packages
引數也可能是 None,表示並未預先載入 RxOptions.get_option("transform_packages")
以外的任何套件。
transform_environment
不支援。 使用者定義的環境,作為內部開發之所有環境的父系且用於變數資料轉換。
如果為 transform_environment = None
,則會改用具有父系 revoscalepy.baseenv
的新「雜湊」環境。
blocks_per_read
指定要針對從資料來源讀取之每個資料區塊讀取的區塊數目。
report_progress
指定資料列處理進度報告層級的整數值:
0
:未報告進度。1
:已列印和更新處理的資料列數目。2
:報告已處理的資料列數目與時間。3
:報告已處理的資料列數與所有時間。
verbose
指定所需輸出數量的整數值。
若為 0
,則計算期間不會列印任何詳細資訊輸出。 整數值 1
到 4
提供越來越多的資訊量。
compute_context
設定執行計算的內容,以有效的 revoscalepy.RxComputeContext
指定。
目前支援本機和 revoscalepy.RxSpark 計算內容。 指定 revoscalepy.RxSpark 時,會以分散式方式完成模型的定型,並在本機完成集成。 請注意,計算內容不可為非等待中。
傳回
具有已定型集成模型的 rx_ensemble
物件。