隨機分割森林 (RCF) 演算法 - Amazon SageMaker AI

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

隨機分割森林 (RCF) 演算法

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

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

雖然異常偵測演算法經常應用於單一維度的時間序列資料,例如流量分析或音量峰值檢測,不過 RCF 是設計用於任意維度的輸入。Amazon SageMaker AI RCF 在功能數量、資料集大小和執行個體數量方面都有很好的擴展。

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

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

訓練通道只支援 S3DataDistributionType=ShardedByS3Key,而測試通道只支援 S3DataDistributionType=FullyReplicated。下列範例使用 Amazon SageMaker Python SDK,指定適用於訓練通道的 S3 分佈類型。

注意

sagemaker.inputs.s3_input 方法已在 SageMaker Python SDK v2 中重新命名為 sagemaker.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})

若要避免發生執行角色的常見錯誤,請確定您具備所需的執行角色 AmazonSageMakerFullAccessAmazonEC2ContainerRegistryFullAccess。若要避免發生影像不存在或影像權限許可不正確的常見錯誤,請確定 ECR 映像大小沒有超過訓練執行個體上配置的磁碟空間大小。若要避免這種情況,請在磁碟空間足夠的執行個體上執行訓練任務。此外,如果您的 ECR 映像來自不同 AWS 帳戶的 Elastic Container Service (ECS) 儲存庫,而您未設定儲存庫許可來授予存取權,則會導致錯誤。請參閱 ECR 儲存庫權限,瞭解有關設置儲存庫策略聲明的詳細資訊。

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

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

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

RCF 演算法的執行個體建議事項

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

RCF 範例筆記本

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

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