Olaylar arasındaki korelasyonları bulmak için hangi algoritmayı kullanabilirim?


12

Makine öğreniminde yeniyim, bu yüzden bazı literatür bulmaya çalışıyorum ama ne için Google'dan emin olamıyorum. Verilerim aşağıdaki biçimde:

User A performs Action P
User B performs Action Q
User C performs Action R
...
User C performs Action X
User A performs Action Y
User B performs Action Z
...

Her bir Eylemin belirli özelliklere sahip olması durumunda (tarih, saat, müşteri vb.). Yaklaşık 300 kullanıcı var ve yaklaşık 20.000 eylemimiz var.

Soru :

Kullanıcı işlemleri arasında nedensellik / korelasyon olup olmadığını öğrenmek istiyorum. Örneğin, "Kullanıcı E Eylem T'yi her gerçekleştirdiğinde, 2 gün sonra Kullanıcı G Eylem V'yi gerçekleştirir". Ancak arada, başka birçok eylem gerçekleştiren birçok kullanıcı olabilir ve hiçbir korelasyon bulunamaz. Bazı kullanıcıların birbiriyle ilişkili olması da mümkündür, ancak diğerleri tamamen bağımsızdır. Bu, makine öğrenmesinin benim için bulabileceği bir şey mi? Bana yardımcı olabilecek belirli bir algoritma veya algoritma kümesi var mı?

Dernek Analizi ve Apriori algoritması hakkında okuyordum, ancak girdi olarak bilinen, iyi sınırlanmış veri kümelerini gerektirdiği için bana ihtiyacım olan şeyi vereceğini sanmıyorum, oysa görünüşe göre rastgele uzun bir kullanıcı akışım var hareketler. Neye bakacağınız konusunda herhangi bir öneriniz çok takdir edilecektir!


1
G=(V,E)P(i,j)ij

Yanıtlar:


1

Sık sık öğe kümesi ve ilişkilendirme kurallarını bulmak için herhangi bir algoritmayı kullanmadan önce bazı veri hazırlıkları yapmanız gerektiğini düşünüyorum.

Bu makaledeki işlemler tablosuna bakın: market basket analysys

Sizin durumunuzda, ilişkilendirilmesi beklenen etkileşim arasında bir maksimum zaman aralığı ayarlamanız (ve ince ayar yapmanız) gerekir, daha sonra sık bir kullanıcı seçebilir ve yaptığı her işlem (veya bir örnek) için bir tek kullanıcı kaydı 2 gün tek kayıt. Nitelikler boole olmalıdır.

UserA,transactionP |UserB,transaction Z| UserB, transaction F | [...]

Bu gerçekten faydalı, teşekkürler! Bu yüzden her kullanıcı için algoritmayı bir kez çalıştırır mıyım, başka bir kullanıcının o kullanıcıyla ilişkili olup olmadığını sorar mıyım, yoksa yalnızca bir kez çalıştırmak mümkün mü ve "bana ilişkilendirilmiş kullanıcı kümelerini göster" diye soruyor muyum?
Matt

Benim yaklaşımımı takip ederek sadece birkaç kullanıcı + traition tarafından başlatılan bir "desen" test edebilirsiniz. Hangi kullanıcıların ve eylemlerin seçileceği, olası korelasyon bilginize bağlıdır.
cesko80

Üç öneri. 1. soruşturma daraltmak. Saygısız olmamakla birlikte, verilerinizde bulunan birçok olası ilişkiden tüm anlamlı ilişkilerini size söyleyebilecek tek, harika kapsamlı bir istatistiksel prosedür yoktur. 2. Zaman serisi analizini okuyun. 3. Nedeni sadece korelasyondan ayırt etme yöntemlerini okuyun. Ne yazık ki, sunacak hızlı bir çözümüm yok!
rolando2

1

Verilerinizi keşfetmenin bir yolu, bir önceki eylem x bir sonraki eylem tablosu yapmaktır. Her etkinlik için aynı kullanıcının bir sonraki eylemini bulun. Benzer şekilde önceki eylem X gecikmesini bir sonraki eyleme kadar tablolayabilirsiniz.

Ardından, önceki eylemin bir sonraki eylemi etkileyip etkilemediğini keşfedebilirsiniz. Değilse, kullanıcılarınız "durumsuz" dur.

Bir başka olası basitleştirme, kullanıcı kimliklerini yok saymak ve her eylemin sıklığının zaman içinde aynı mı yoksa değişken mi olduğunu sormaktır; ve döngüsel olup olmadığını veya bir eğilim gösterip göstermediğini değiştirmek.

Bu soruların cevapları, verilerinizin çok az yapıya sahip olduğunu gösterebilir. Alternatif olarak, test etmek için bazı yeni hipotezler ortaya koyabilirler.


1

Bu ilginç bir soru. En iyi yaklaşım, tüm veri kümesine bakmak ve bir frekans tablosu oluşturmaktır. Örneğin: Kullanıcı A Eylem P ve Y gerçekleştiriyor Kullanıcı B Eylem Q ve Z gerçekleştiriyor, Kullanıcı C Eylem R ve X gerçekleştiriyor Yani benzer şekilde, daha fazla eylem gerçekleştiren daha fazla kullanıcı var. Bu nedenle, bu veri kümesiyle ilgilenmek için çeşitli yaklaşımlar vardır 1) Benzer kovaları farklı kovalarda gruplamak için küme algoritması 2) Kullanıcıları eylem eşleme ve sıklığa karşı tanımlamak için pazar sepeti analizi

Tüm veri setinden geçmeden bu tür sorular için herhangi bir özel algoritma reçete edilmesi önerilmez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.