2016-04-11 14 views
0

Kullanıcıların ürünleri satın aldıkları bir veritabanı olduğumu (Puan veya benzeri bir şey yok) ve onlara başka ürün önermek istiyorum.Tavsiyeler sistem içinEmplicit'i kullanma

[Rating(user=2, product=23053, rating=1.0), 
Rating(user=2, product=2078, rating=1.0), 
Rating(user=3, product=23, rating=1.0)] 

Yani eğitim veri kümesindeki tüm derecelendirme 1.

tahminler derecelendirme dk değerini -0.6 ve maksimum puanı verdi o normal mi hep: Ben eğitim verileri aşağıdaki biçimdedir ATL.trainImplicit kullanıyorum 1.85? 0 ile 1 arasında bir şey beklerdim.

+0

Kullanıcıların sadece bir kez ürünler satın aldı? hepsi bir kez mi? –

cevap

2

Evet, normaldir. ALS'nin örtük sürümü esasen ikili bir tercih matrisini P (açık derecelendirme matrisi yerine, R) yeniden oluşturmaya çalışır. Bu durumda, "derecelendirmeler" güven seviyesi olarak kabul edilir - daha yüksek derecelendirmeler, p(ij)'un ikili tercihinin 0 yerine 1 olarak yeniden yapılandırılması gerektiğine daha yüksek güvenir. Ancak, ALS, matris P'u yeniden oluşturan kullanıcı ve madde faktör matrislerini bulmak için temel olarak en küçük kareler regresyon problemini çözer. Bu nedenle, öngörülen değerlerin [0, 1] aralığında olması garanti edilmez (pratikte bu aralığa genellikle yakın yakındır). Tahminleri daha yüksek değerlerin kullanıcının o ürünü satın alabileceği olasılığının daha yüksek olduğu yerlerde "opak" değerler olarak yorumlamak yeterlidir. Önerilen ürünleri tahmin edilen skorlara göre sıralamak yeterlidir.

([1, -1]. Bu hesaplama Spark doğrudan mevcut değil ama yapılabilir Not et-madde yada kullanıcı benzerlikler genellikle faktör vektörleri arasındaki benzerlik kosinüs kullanılarak hesaplanır, bu nedenle bu puanlar uzanmayacaktır kendin).