2016-03-29 16 views
0

Şimdi bir süre için Spark mllib ALS ("trainImplicit") ile deney yapın. MLLib spark -ALStrainImplicit değeri 1'den fazla

1.Kan tahminlerde 1'den fazla derecelendirme değeri alıyorum?

2. Kullanıcı ürünü girdisini normalleştirme ihtiyacı var mı?

örnek sonucu:

[Derecelendirme (kullanım = 316.017, ürün = 114.019, değerlendirme = 3,1923),

Derecelendirme (kullanım = 316.017, ürün = 41930, değerlendirme = 2,0146997092620897) ]

Dokümantasyonda, öngörülen derecelendirme değerlerinin 0-1 civarında bir yerde olacağı belirtilmektedir. Derecelendirmelerin değerlerinin hala önerilerde kullanılabileceğini biliyorum, ancak sebebini bildiğimde harika olur.

cevap

1

ALS trainImplicit() işlevindeki maliyet işlevi, farkın büyüklüğünü 0/1'den aldığı için, öngörülen derecelendirme değerleri üzerinde herhangi bir koşul getirmez. Yani, orada bazı negatif değerler de bulabilirsiniz. Bu yüzden öngörülen değerlerin, mutlaka içinde olmadığı [0,1] civarında olduğunu söyler.

Yalnızca negatif olmayan faktorizasyon ayarlamak için bir seçenek vardır, böylece tahmini derecelendirme veya özellik matrislerinde hiçbir zaman negatif bir değer elde edemezsiniz, ancak bu durum bizim durumumuz için performansı düşürüyor gibi görünüyordu.

İlgili konular