One-Class SVM与传统SVM不同,是一种非监督的学习算法。您可以使用One-Class SVM异常检测通过学习边界对异常点进行预测。本文为您介绍One-Class SVM异常检测的参数配置。
使用限制
支持运行的计算资源为MaxCompute。
组件配置
您可以通过以下任意一种方式,配置One-Class SVM异常检测参数。
方式一:可视化方式
在Designer工作流页面配置组件参数。
页签 |
参数说明 |
描述 |
字段设置 |
特征列名数组 |
特征列名的数组。 |
分组列名数组 |
分组列名的数组。 |
|
tensor列 |
tensor列。 |
|
向量列名 |
向量列对应的列名。 |
|
参数设置 |
预测结果列名 |
预测结果列的列名。 |
Kernel函数的相关参数coef0 |
核函数的相关参数,默认为0.0。 说明 当核函数类型为POLY和SIGMOID时,该参数才会生效。 |
|
多项式阶数 |
多项式的阶数。 |
|
收敛阈值 |
迭代方法的终止判断阈值,默认为1.0E-6。 |
|
Kernel函数的相关参数gamma |
核函数的相关参数,默认为-1.0。 说明 当核函数类型为RBF、POLY和SIGMOID时,该参数才会生效。如果未设置该参数,默认取值为1/特征维度。 |
|
核函数类型 |
核函数的类型,取值如下:
|
|
每组最大异常点数目 |
每组的最大异常点数目。 |
|
最大异常点比例 |
算法检测异常点的最大比例。 |
|
每组最大样本数目 |
每组最大的样本数目。 |
|
异常点比例上界参数nu |
与支持向量的数目正向相关。取值范围为(0,1),默认为0.01。 |
|
异常评分阈值 |
当评分大于该阈值时,判定为异常点。 |
|
预测详细信息列名 |
预测详细信息列的名称。 |
|
组件多线程线程个数 |
组件多线程的线程个数。 |
|
执行调优 |
节点个数 |
节点个数,与参数单个节点内存大小配对使用,正整数。范围[1, 9999]。 |
单个节点内存大小,单位M |
单个节点内存大小,单位MB,正整数。范围[1024, 64*1024]。 |
方式二:Python代码方式
使用Python脚本V2组件,配置该组件参数。您可以使用Python脚本V2组件进行Python代码调用,详情请参见Python脚本V2。
参数名称 |
是否必选 |
描述 |
默认值 |
predictionCol |
是 |
预测结果列的列名。 |
无 |
degree |
否 |
多项式的阶数。 |
2 |
epsilon |
否 |
迭代方法的终止判断阈值。 |
1.0E-6 |
featureCols |
否 |
特征列名数组。 |
全选 |
groupCols |
否 |
分组列名数组。 |
无 |
maxOutlierNumPerGroup |
否 |
每组的最大异常点数目。 |
无 |
maxOutlierRatio |
否 |
算法检测异常点的最大比例。 |
无 |
maxSampleNumPerGroup |
否 |
每组最大的样本数目。 |
无 |
outlierThreshold |
否 |
当评分大于该阈值时,判定为异常点。 |
无 |
predictionDetailCol |
否 |
预测详细信息列的名称。 |
无 |
tensorCol |
否 |
tensor列。 |
无 |
vectorCol |
否 |
向量列对应的列名。 |
无 |
kernelType |
否 |
核函数的类型,取值如下:
|
RBF |
coef0 |
否 |
核函数的相关参数。 说明 当核函数类型为POLY和SIGMOID时,该参数才会生效。 |
0.0 |
gamma |
否 |
核函数的相关参数。 说明 当核函数类型为RBF、POLY和SIGMOID时,该参数才会生效。如果未设置该参数,默认取值为1/特征维度。 |
-1.0 |
nu |
否 |
与支持向量的数目正向相关。取值范围为(0,1)。 |
0.01 |
numThreads |
否 |
组件多线程的线程个数。 |
1 |
Python代码方式的使用示例如下。
df = pd.DataFrame([
[0.730967787376657,0.24053641567148587,0.6374174253501083,0.5504370051176339],
[0.7308781907032909,0.41008081149220166,0.20771484130971707,0.3327170559595112],
[0.7311469360199058,0.9014476240300544,0.49682259343089075,0.9858769332362016],
[0.731057369148862,0.07099203475193139,0.06712000939049956,0.768156984078079],
[0.7306094602878371,0.9187140138555101,0.9186071189908658,0.6795571637816596],
[0.730519863614471,0.08825840967622589,0.4889045498516358,0.461837214623537],
[0.7307886238322471,0.5796252073129174,0.7780122870716483,0.11499709190022733],
[0.7306990420600421,0.7491696031336331,0.34830970303125697,0.8972771427421047]])
# load data
data = BatchOperator.fromDataframe(df, schemaStr="x1 double, x2 double, x3 double, x4 double")
OcsvmOutlierBatchOp() \
.setFeatureCols(["x1", "x2", "x3", "x4"]) \
.setGamma(0.5) \
.setNu(0.1) \
.setKernelType("RBF") \
.setPredictionCol("pred").linkFrom(data).print()
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/162970.html