本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
隨機切割森林 (RCF) 演算法
Amazon SageMaker Random Cut Forest (RCF) 是一種無監督演算法,用於偵測資料集內的異常資料點。這些觀測到的結果,和具有良好結構或規律的資料不一致。異常情況可能會表現為時間序列資料中的意外峰值、週期性的中斷,或是無法歸類的資料點。這些異常易於辨識,因為在圖中檢視時,經常能夠明顯地區分出異常項目和 “一般” 資料。在資料集中包含這些異常項目,將會大幅提高機器學習任務的複雜度,因為 “一般” 的資料通常可以透過簡單的模型描述。
與每個資料點RCF建立關聯,以建立異常分數。低分代表資料點會被視為 “正常”。高分代表資料中出現了異常。“低” 和 “高” 的定義取決於應用程式,但根據常見的狀況來判斷,超出平均分數三個標準差以上的分數,應視為異常。
雖然有許多異常偵測演算法應用程式可處理一維時間序列資料,例如流量磁碟區分析或聲量峰值偵測,RCF但其設計可搭配任意維度輸入使用。Amazon SageMaker RCF 在功能數量、資料集大小和執行個體數量方面擴展良好。
RCF 演算法的輸入/輸出介面
Amazon SageMaker Random Cut Forest 支援 train
和 test
資料通道。選用的測試通道是用來計算正確率、準確率、召回率和標籤資料上的 F1 分數指標。訓練與測試資料內容的類型,可以是 application/x-recordio-protobuf
或 text/csv
格式。針對測試資料,在使用文字/csv 格式時,必須將內容指定為 text/csv;label_size=1,其中每行的第一欄代表異常標籤:“1” 代表異常的資料點,“0” 代表正常的資料點。您可以使用檔案模式或管道模式,針對格式化為 recordIO-wrapped-protobuf
或 的資料訓練RCF模型 CSV
訓練通道只支援 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 隨機剪切森林
如需使用RCF演算法的部落格文章,請參閱使用內建的 Amazon SageMaker 隨機切割森林演算法進行異常偵測。