En iyi arkadaşım!

En iyi arkadaşım!

Tekrardan merhabalar veri severler,

En son yazımızda benim arkadaş gruplarındaki like bağlarını incelemiştik. Hatırlamıyorsanız sizi şuraya alayım: begenilerim hep karşılıksız mı. Aradan 4 ay -bir eğitim dönemi geçti-. Geçen bu hatırı sayılır günler boyunca tüm boş zamanlarımda sizin de küçük çaplı analizler yapabilceğiniz bir ortam tasarlamakla uğraştım.

Ve bu gün ilk ürünü tanıtacağım. En iyi arkadaşınızı bulmaya çalışan bir uygulama. Bir kişinin en iyi arkadaşını sanal ortamda nasıl bulabilirsiniz? Öncelikle iyi arkadaş gerçek dünyada ne özellikler gösterir onu bulalım.

Yeni tanıştığınız bir kişinin sizin en iyi arkadaşlarınızdan olma ihtimali küçüktür, en iyi arkadaşınız size yapıcı yorumlar yapmaya çalışır. En iyi arkadaşlarınız sizden sıkılmıştır – Sürekli yorum yapmaz-. Ve en iyi arkadaşlarınız kimsenin bilmediği detayları bilirler -az yorum yapılan paylaşıma yorum yapmak-. Facebook gibi bir data elinizde olsaydı bu gerçek dünya özelliklerini saptamaya çalışmak daha kolay olurdu. Çok fazla kullanabilceğiniz datadan en işinize yarar olanları seçebilirdiniz. Misal:

  • En uzun zaman diliminde yorum yapan kişi – ilk yorumu ve son yorumu arasındaki uzaklık-
  • En fazla yorum yapan kişi
  • En az yorum yapılan postlardaki yorumlara sahip olan kişi
  • En farklı zamanlarda fotolarınızı beğenen kişi

Ama elimizde facebook datası yok -belki ilerde olur-. Instagram verisi üzerinden nasıl yakın arkadaş bulabiliriz sorunumuz bu. Gerçekçi olayım. Elimde şu anda sadece follow bilgisi var. Herkesin likelarını sorgulayacak gücüm henüz yok böyle bir şeyi kendim yapabiliyorum fakat buluta ayırcak bu kadar büyük bütçem yok-. Sadece follow bilgisinden nasıl iyi arkadaşları bulabilirim. Hadi basit bir yaklaşım yapalım.

En fazla ortak arkadaş mantıklı bir yaklaşım olabilir. Örnek olması için arkadaşlık puanına bu ortak follow kümesinin eleman sayısı diyelim. ortak followumuzun bulunduğu Aslı Bayram, en iyi arkadaşlarımdan olarak gözüküyor. Fakat işin bir diğer tarafı ise Aslının kümesinin büyüklüğü. Beni ilgilendiren Aslı ile toplam ortak arkadaş sayım mı yoksa herhangi bir Aslının arkadaşının benim arkadaşım da olma ihtimalinin yüksek olup olmaması mı? Aradığımın ikinci durum olduğunu farz edersek Aslı mantıklı bir seçim değil. Çünkü aramızdaki durum aşağıdaki gibi:

Çünkü aramızdaki durum aşağıdaki gibi:

asli
Image 1: Asli ile orcun’un arkadaslik venn diyagramları

Aslinin 440 adet takip ettiği kişi var. Bunlardan herhangi birinin benim arkadaşım olma ihtimali kabaca 50 / 440, bu da yüzde 12 bile etmiyor. Fakat Bilkent Üniversitesin’de 30 ortak arkadaş ile Aslıyı hemen ardından takip eden Bugra’ya bakalım. Bugra toplamda 77 kişi takip etmiş, bunların 30’unu ben de takip etmişim. Bu da kabaca Bugranın takip ettiği bir kişiyi yüzde 38 ihtimalle benim de takip ettiğim anlamına geliyor.

bugra
Image 2: Tüm kişilerin venn diyagramı

Yani eğer Asli ile olan ortak arkadaş sayımı aslının arkadaş sayısına bölersem mantıklı ve anlamlı bir şey çıkıyor-herhangi bir arkadaşının ortak arkadaşımız olma ihtimali-. Yani benim aslı ile arkadaşlık puanım 12 Bugra ile 40. Fakat burada bir sorun var. Aslı’nın gözünden baktımızda arkadaşlık puanım benim gözünden baktığımınkinden farklı gözüküyor -sıralaması aynı olmasına rağmen, hemen uyarıp zekilik taslamayın şimdi bana :)-. Aslı bizim arkadaslık puanızı 25 olarak görüyor (200 kişiyi takip ediyorum). Bu bir problem. Belki ben iki farklı iki kişinin farklı iki kişiyle olan arkadaşlığını ölçmek istiyorum ve zeminlerin farklı olması benim için bir sorun. Yani Aslıdan baktığımızda ya da benden bakıldığında arkadaşlık puanımız eşit olmalı aynı zamanda Bugra da benim daha iyi bir arkadaşım olmalı;

Hmm öyle bir arkadaşlık puanı bulmalıyım ki:

  • çok arkadaşı olanlar kayıplı olmalı
  • çift taraflı eşit olmalı
  • ortak arkadaş sayısı yükseldiği zaman artmalı
CodeCogsEqn (3)

‘ bana tüm isteklerimi karşılayan bir puanlama sistemi veriyor. Üstelik maksimum puan bir minimum puan da sıfır. Mükemmel değil mi?

O zaman algoritma hazır, aslında bu işin kolay kısmı hadi size bunu ölçebildiğiniz bir ortam hazırlayalım.
Bu hizmet şu an herkese açık; siz de girip arkadaşlarınızın kaç puan aldığına bakabilirsiniz: Buradan

Bundan sonra yazıların İngilizcesini ve developper’lar için ayarıntılı cookbook da hazırlamaya çalışacağım. Alpha Tester’lar aynı bağlantıdan kendi follow graphlarını’da görebilirler. Bundan sonra açılan her yeni analiz önce alphatesterlara sunulacak. Alpha tester başvurusu direk sayfadan yapabilirsiniz.

Screen Shot 2016-01-11 at 22.08.01


Proje hakkınca daha fazla detay için analyzefor.me ye bakabilirsiniz.  Kendi arkadaşlığınızı sorgulama için http://analyzeforme.elasticbeanstalk.com/bwelcome‘ adresine gidebilirsiniz.

1537676451
Image3: Orcun’s rewards

Benim için biraz ilginç sonuçlar çıktığını inkar etmem zor gözüküyor.  Lokman Demir’in birinci Çağlar’ın ikinci çıktığı listede Buğra ise üçüncü. Algoritma farklı communitylerden arkadaş sahip olaranlara yeni katsayı uygulaması gibi şeylerle geliştirilebilir fakat şimdilik böyle kalacak gibi gözüküyor.

02c2b7e625895df8104053ea3b488e0b27c1930099b69af561fbe91075d00870