spark.ml
のALSモデルを使用して、特定のアイテムのコレクションに対して暗黙のフィードバックを使用する推奨システム を作成しています。私は に、モデルの出力予測が1よりずっと低く、通常は[0,0.1]の間隔にあることに気付きました。したがって、MAEまたはMSEを使用しても、この場合には の意味はありません。スパーク:ALSのパフォーマンスを測定
したがって、私はareaUnderROC(AUC)を使用してパフォーマンスを測定します。私はスパークのBinaryClassificationEvaluator
を使ってそれを行い、私は0.8に近いものを得ます。しかし、ほとんどの値が[0,0.1]にあるので、どのようにその可能性があるのかをはっきりと理解することはできません。
ある点の後、評価者はすべての予測をクラス0に属すると考えています。これは基本的にAUCが負のサンプルの割合に等しいことを意味しますか?
一般に、ロジスティック回帰と言うよりも、モデルのパフォーマンスをテストする必要がある場合、このような低い値をどのように扱いますか?次のように
私は、モデルのトレーニング:推薦者にBinaryClassificationEvaluator
を使用して
rank = 25
alpha = 1.0
numIterations = 10
als = ALS(rank=rank, maxIter=numIterations, alpha=alpha, userCol="id", itemCol="itemid", ratingCol="response", implicitPrefs=True, nonnegative=True)
als.setRegParam(0.01)
model = als.fit(train)
この場合、ALSはデータ内のパターンをキャプチャできなかったことを意味します。私は[0、1]の範囲で結果を得ることが期待されますが、私は非常に低い値<0.1しか得られません。したがって、正のサンプルでは誤差が非常に大きくなります。 –
メトリックではなく、意味をなさない訓練されたモデルです。 – ShuaiYuan
はい、そうです。私は誤解を生じさせたくありません。私はモデルの結果のために異なるメトリックを使用することにしました。はい、それはあまり意味がないようです。 –