按照此处所述使用 iforest
:https://github.com/titicaca/spark-iforest
但是 model.save() 抛出异常:
Exception: scala.NotImplementedError: The default jsonEncode only supports string, vector and matrix. org.apache.spark.ml.param.Param must override jsonEncode for java.lang.Double.
遵循上述 git 页面上“Python API”部分提到的代码片段。
from pyspark.ml.feature import VectorAssembler
import os
import tempfile
from pyspark_iforest.ml.iforest import *
col_1:integer
col_2:integer
col_3:integer
assembler = VectorAssembler(inputCols=in_cols, outputCol="features")
featurized = assembler.transform(df)
iforest = IForest(contamination=0.5, maxDepth=2)
model=iforest.fit(df)
model.save("model_path")
model.save()
应该能够保存模型文件。
下面是执行 model.transform(df)
后得到的输出数据帧:
col_1:integer
col_2:integer
col_3:integer
features:udt
anomalyScore:double
prediction:double
最佳答案
我刚刚解决了这个问题。这是由错误的参数类型引起的。您可以在master分支查看最新的代码,然后再尝试一下。
关于machine-learning - 无法使用 pyspark 保存 pyspark iforest 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56791931/