本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
隨機分割森林 (RCF) 演算法
Amazon SageMaker AI Random Cut Forest (RCF) 是一種無監督演算法,用於偵測資料集內的異常資料點。這些觀測到的結果,和具有良好結構或規律的資料不一致。異常情況可能會表現為時間序列資料中的意外峰值、週期性的中斷,或是無法歸類的資料點。這些異常易於辨識,因為在圖中檢視時,經常能夠明顯地區分出異常項目和 “一般” 資料。在資料集中包含這些異常項目,將會大幅提高機器學習任務的複雜度,因為 “一般” 的資料通常可以透過簡單的模型描述。
RCF 會讓每個資料點具有對應的異常分數。低分代表資料點會被視為 “正常”。高分代表資料中出現了異常。“低” 和 “高” 的定義取決於應用程式,但根據常見的狀況來判斷,超出平均分數三個標準差以上的分數,應視為異常。
雖然異常偵測演算法經常應用於單一維度的時間序列資料,例如流量分析或音量峰值檢測,不過 RCF 是設計用於任意維度的輸入。Amazon SageMaker AI RCF 在功能數量、資料集大小和執行個體數量方面都有很好的擴展。
RCF 演算法的輸入/輸出介面
Amazon SageMaker AI Random Cut Forest 支援 train
和 test
資料通道。選用的測試通道是用來計算正確率、準確率、召回率和標籤資料上的 F1 分數指標。訓練與測試資料內容的類型,可以是 application/x-recordio-protobuf
或 text/csv
格式。針對測試資料,在使用文字/csv 格式時,必須將內容指定為 text/csv;label_size=1,其中每行的第一欄代表異常標籤:“1” 代表異常的資料點,“0” 代表正常的資料點。您可使用檔案模式或管道模式訓練資料格式為 recordIO-wrapped-protobuf
或 CSV
的 RCF 模型。
訓練通道只支援 S3DataDistributionType=ShardedByS3Key
,而測試通道只支援 S3DataDistributionType=FullyReplicated
。下列範例使用 Amazon SageMaker Python SDK
注意
此 sagemaker.inputs.s3_input
方法已在 SageMaker Python SDK v2sagemaker.inputs.TrainingInput
。
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})
若要避免發生執行角色的常見錯誤,請確定您具備所需的執行角色 AmazonSageMakerFullAccess
和 AmazonEC2ContainerRegistryFullAccess
。若要避免發生影像不存在或影像權限許可不正確的常見錯誤,請確定 ECR 映像大小沒有超過訓練執行個體上配置的磁碟空間大小。若要避免這種情況,請在磁碟空間足夠的執行個體上執行訓練任務。此外,如果您的 ECR 映像來自不同 AWS 帳戶的 Elastic Container Service (ECS) 儲存庫,而您未設定儲存庫許可來授予存取權,則會導致錯誤。請參閱 ECR 儲存庫權限,瞭解有關設置儲存庫策略聲明的詳細資訊。
如需有關自訂 S3 資料來源屬性的詳細資訊,請參閱 S3DataSource
。最後,若要善用多執行個體訓練的優勢,必須將訓練資料分割成多個檔案,數量至少和執行個體的數量相當。
關於推論,RCF 支援 application/x-recordio-protobuf
、text/csv
和 application/json
輸入資料內容類型。請參閱內建演算法的參數文件以了解詳細資訊。RCF 推論會傳回 application/x-recordio-protobuf
或 application/json
格式的輸出。這些輸出資料中的每筆記錄,皆包含每個輸入資料點對應的異常分數。請參閱常見的資料格式 - 推論,以取得詳細資訊。
如需輸入和輸出檔案格式的詳細資訊,請參閱適用於推論的RCF 回應格式以及RCF 範例筆記本。
RCF 演算法的執行個體建議事項
關於訓練,我們建議使用 ml.m4
、ml.c4
和 ml.c5
執行個體系列。關於推論,我們建議尤其使用 ml.c5.xl
執行個體類型,以實現最高的效能,並將每小時的使用成本減到最低。雖然就技術而言,演算法可以在 GPU 執行個體類型上執行,但會無法善用 GPU 硬體。
RCF 範例筆記本
如需如何訓練 RCF 模型並執行推論的範例,請參閱 SageMaker AI 隨機切割森林筆記本簡介
如需使用 RCF 演算法的部落格文章,請參閱使用內建的 Amazon SageMaker AI 隨機切割森林演算法進行異常偵測