隨機切割森林(RCF)算法 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

隨機切割森林(RCF)算法

Amazon SageMaker 隨機切割森林 (RCF) 是一種無監督演算法,用於偵測資料集內的異常資料點。這些觀測到的結果,和具有良好結構或規律的資料不一致。異常情況可能會表現為時間序列資料中的意外峰值、週期性的中斷,或是無法歸類的資料點。這些異常易於辨識,因為在圖中檢視時,經常能夠明顯地區分出異常項目和 “一般” 資料。在資料集中包含這些異常項目,將會大幅提高機器學習任務的複雜度,因為 “一般” 的資料通常可以透過簡單的模型描述。

與每個資料點RCF建立關聯的異常分數。低分代表資料點會被視為 “正常”。高分代表資料中出現了異常。“低” 和 “高” 的定義取決於應用程式,但根據常見的狀況來判斷,超出平均分數三個標準差以上的分數,應視為異常。

雖然異常偵測演算法應用於一維時間序列資料 (例如流量分析或音量尖峰偵測),但其設計目的RCF是搭配任意維度輸入。Amazon 可根據功能數量、資料集大小和執行個體數量進行良好的 SageMaker RCF擴展。

演算法的輸入/輸出介面 RCF

Amazon SageMaker 隨機切割森林支持traintest數據通道。選用的測試通道是用來計算正確率、準確率、召回率和標籤資料上的 F1 分數指標。訓練與測試資料內容的類型,可以是 application/x-recordio-protobuftext/csv 格式。針對測試資料,在使用文字/csv 格式時,必須將內容指定為 text/csv;label_size=1,其中每行的第一欄代表異常標籤:“1” 代表異常的資料點,“0” 代表正常的資料點。您可以使用「檔案」模式或「管道」模式來訓練格式化為recordIO-wrapped-protobuf或格式化為的資料模RCF型 CSV

訓練通道只支援 S3DataDistributionType=ShardedByS3Key,而測試通道只支援 S3DataDistributionType=FullyReplicated。下列範例會使用 Amazon SageMaker Python 為火車通道指定 S3 分發類型SDK。

注意

sagemaker.inputs.s3_input方法sagemaker.inputs.TrainingInputSageMaker Python 中被重命名為 SDK V2

import sagemaker # specify Random Cut Forest training job information and hyperparameters rcf = sagemaker.estimator.Estimator(...) # explicitly specify "ShardedByS3Key" distribution type train_data = sagemaker.inputs.TrainingInput( s3_data=s3_training_data_location, content_type='text/csv;label_size=0', distribution='ShardedByS3Key') # run the training job on input data stored in S3 rcf.fit({'train': train_data})

若要避免發生執行角色的常見錯誤,請確定您具備所需的執行角色 AmazonSageMakerFullAccessAmazonEC2ContainerRegistryFullAccess。若要避免映像檔不存在或其權限不正確的常見錯誤,請確定ECR映像檔不大於訓練執行個體上配置的磁碟空間。若要避免這種情況,請在磁碟空間足夠的執行個體上執行訓練任務。此外,如果您的ECR映像檔來自不同 AWS 帳戶的 Elastic Container Service (ECS) 存放庫,且您未設定存放庫權限來授予存取權,則會導致錯誤。如需有關設定ECR儲存庫原則陳述式的詳細資訊,請參閱儲存庫權限。

如需有關自訂 S3 資料來源屬性的詳細資訊,請參閱 S3DataSource。最後,若要善用多執行個體訓練的優勢,必須將訓練資料分割成多個檔案,數量至少和執行個體的數量相當。

用於推論application/x-recordio-protobuf、RCF支援text/csvapplication/json輸入資料內容類型。請參閱內建演算法的一般資料格式文件以了解詳細資訊。RCF推論返回application/x-recordio-protobufapplication/json格式化輸出。這些輸出資料中的每筆記錄,皆包含每個輸入資料點對應的異常分數。請參閱常見的資料格式 - 推論,以取得詳細資訊。

如需輸入和輸出檔案格式的詳細資訊,請參閱適用於推論的RCF回應格式以及RCF 範例筆記本

RCF演算法的執行處理建議

關於訓練,我們建議使用 ml.m4ml.c4ml.c5 執行個體系列。關於推論,我們建議尤其使用 ml.c5.xl 執行個體類型,以實現最高的效能,並將每小時的使用成本減到最低。雖然算法在技術上可以在GPU實例類型上運行,但它不會利用GPU硬件。

RCF 範例筆記本

如需如何訓練RCF模型並使用模型執行推論的範例,請參閱 SageMaker 隨機切割森林簡介筆記本。如需如何建立及存取可用來執行中範例的 Jupyter 筆記本執行個體的指示 SageMaker,請參閱。Amazon SageMaker 筆記本實建立筆記本執行個體並開啟之後,請選取 [SageMaker 範例] 索引標籤以查看所有 SageMaker 範例的清單。若要開啟筆記本,請按一下其使用標籤,然後選取建立複本

如需有關使用RCF演算法的部落格文章,請參閱使用內建的 Amazon SageMaker 隨機切割森林演算法進行異常偵測