SOS
功能介绍
SOS (Stochastic Outlier Selection)是一种affinity based离群点检测算法。它通常用于过滤掉噪音样本,从而使得机器学习的模型更准确。
参数说明
名称 |
中文名称 |
描述 |
类型 |
是否必须? |
默认值 |
perplexity |
邻近因子 |
邻近因子。它的近似含义是当某个点的近邻个数小于”邻近因子”个时,这个点的离群score会比较高。 |
Double |
|
4.0 |
vectorCol |
向量列名 |
向量列对应的列名 |
String |
✓ |
|
predictionCol |
预测结果列名 |
预测结果列名 |
String |
✓ |
|
|
脚本示例
脚本代码
data = np.array([
["0.0,0.0"],
["0.0,1.0"],
["1.0,0.0"],
["1.0,1.0"],
["5.0,5.0"],
])
df_data = pd.DataFrame({
"features": data[:, 0],
})
data = dataframeToOperator(df_data, schemaStr='features string', op_type='batch')
sos = SosBatchOp().setVectorCol("features").setPredictionCol("outlier_score").setPerplexity(3.0)
output = sos.linkFrom(data)
output.print()
脚本运行结果
features |
outlier_score |
1.0,1.0 |
0.12396819612216292 |
0.0,0.0 |
0.27815186043725715 |
0.0,1.0 |
0.24136320497783578 |
1.0,0.0 |
0.24136320497783578 |
5.0,5.0 |
0.9998106220648153 |