Cumartesi, Kasım 26, 2016

Instagram Hesap Analizi 2

Evet cem yılmazın instagram sayfasını analiz ediyorduk. Devam edelim.

Beğeni ve yorum sayılarında zamanla bir değişim olmuşmudur diye bakalım.  Cem yılmazın instagram hesabında çok sık paylaşım olmadığından doğrudan zamanı kullanmak aldatıcı olur. Bu yüzden her 20 gönderi başına ortalama beğeni ve yorum sayısını hesaplayıp grafiğe döktük. Bizim çalışmamız yapıldığında 340 gönderisi vardı cem yılmazın  340/20 -> 17 tane veri noktası hesaplıyoruz.

Zaman İçinden beğeni sayısının değişimi




Zaman içinde yorum sayısının değişimi


Grafiklerden de belli olduğu gibi sayfanın başlangıcında yorumda beğenide nispeten azmış.
zamanla bu büyük bir artış göstermiş. muhtemelen zaman içinde cem yılmazın instagram sayfasının bilinirliğinin artması ve takipçilerinin çoğalması ile olmuştur.

Toplamda gönderi sayısının azlığı ve zaman içindeki değişim büyüklüğü gibi olumsuzluklar var. Bu zaman içindeki büyük değişim tahmin sistemini olumsuz etkileyeceği aşıkardır. Yinede biz  Görsel olarak az beğenilen çok beğenilen ayrımını yapabilen bir sınıflandırıcı eğitmeye çalıştık.

Resimleri beğeni sayısına göre sıralayıp, en beğenilen 120 ve en az beğenilen 120 resmi iki ayrı sınıf için eğitmek için alıyoruz. Caffe ile bir fine-tune işlemi ile eğitiyoruz ve test ediyoruz.

Sonuç :


Sınıflandırıcımız  ı 46 adet  eğitimde kullanmadığımız  gönderi ile test ediyoruz. Bu gönderilerin 23 tanesi az, 23 taneside çok beğenil olarak seçildi

Sınıflandırıcımız
  •   21 kez bu az beğenilir demiş 16 tanesi doğru sınıflandırılmış
  •  25 kez çok beğenilir demiş 18 tanesi doğru sınıflandırılmış
sınıflandırcının  ortalama doğruluğu % 73.9

Sınıflandırıcımız her iki sınıf içinde bir tahminde bulunur. her sınıfın ihtimalini verir. Toplamda 1 olan bu oranlardan yüksek olanını tahmin olarak kullanıyoruz.

Çok kaba bir beğeni sayısı tahmini yaparsak.

çok beğenilenlerin ortalama beğeni sayısı ->  m_mean
az beğenilenlerin ortalma beğeni sayısı -> l_mean
resmin :
çok beğenilme ihtimali : m_prob
az beğenilme ihtimali :  l_prob

beğeni tahmini = ( m_prob*m_mean  ) + ( l_prob*l_mean )

Mesela :

gönderisi için sistemimiz 10 bin 127 beğeni alır demiş.

Tahmindeki sapmayı ise başta bahsettiğimiz olumsuzluklara,  ilaveten de tahmin yöntemimizin çok kabalığına bağlıyorum. Siz nedersiniz bilmem ama bence yinde sonuç fena değil...

Daha çok gönderisi olan,  takipçi durumu  belli bir düzene girmiş hesaplar için daha başarılı çalışmalar yapılabilir.

Aslında görüntüler üzerinde kümelemelerde yapılıp onun üzeerinden de çıkarımlar yapılabilir. Şimdilik burda bitiriyoruz.

Her türlü görüş ve önerilerinizi bekleriz...

Cumartesi, Kasım 19, 2016

Instagram Hesap Analizi 1

Malumunuz günümüzde sosyal medya denen bir kavram oluştu. İnsanlar kendileri hakkında pek çok bilgiyi kendi elleriyle bu yerlerde paylaşmaktadır. Internet fenomenliği, Sosyal medya uzmanlığı diye işler bile çıktı.

Neyse efendim görüntü üzerine çalıştığımız malum. Görüntü bulmak nispeten kolay olsada, etiketlenmiş veri bulmak çok zor. Biz bu  yazımızda Sosyal Medya kalallarından biri olan Instagram dan veri toplamadan bahsedeceğiz.

Instagram malumunuz genellikle resim paylaşma platformu. Öncelikle bir Instagram hesabı seçiyoruz. Biraz internet araştırması ile meşhurlarımızın Instagram adreslerini bulduk. Keza bir kaçını inceleyince hem popülerliği hemde kısalığı sebebiyle  Cem Yılmaz'ın  sayfasını seçiyoruz.

Python da hem doğrudan Instagrama yönelik hemde genel web den veri çekme amaçlı bir sürü kütüphane bulmanız mümkün. Bunları inceleyip kafanıza yatanı kullanmanızı öneririm.

Peki Cem Yılmazın Instagram sayfasından Biz ne gibi bilgiler çekebildik ;

  • 340 adet resim yüklemiş
  • 187 kişiyi takip ediyor
  • 961205 kişi tarafından takip ediliyor
  • Yayınladıkları için ortalama beğeni sayısı -like mı deseydim -   : 15354.5 
  • Yayınladıkları içinortalma yorum sayısı :  240.4
 Beğeni sayılarının dağılımı - histogram olarak - şöyle

 Yorum sayısı dağılımı da  şöyle


En Beğenilen 6 resim şunlar

 En az Beğenilen 6 resim:

 En çok yorum yapılan 6 resim şunlar

 En az yorum yapılan 6 resim şunlar



En nihayetinde Instagram hesabında kaç resim var resimlerin beğeni sayıları yorum sayıları elimizde. Elbette resim adresleride -link-  leride var.
Neler yapabiliriz

Resimleri kendi içinde görsel özelliklerine göre guruplara ayıra biliriz.
Keza Resimler ve beğeni sayılarını kullanarak beğeni hesabı yapan sistemler eğitmeyi deneyebiliriz.
...
Fırsat bulupda devam edebilirsek bu konuda yapılacak başka şeylerde var.

Çarşamba, Kasım 09, 2016

Pratik Caffe


Geçen hatfa sonu Caffe hakkında Ankara-Deep-Learning meetup gurubunun düzenlediği bir etkinlikte  bir sunum yaptık.

Sunumda Neler Anlattık
  • Caffe Nedir , Niçin Caffe
  • CNN nedir
  • Caffe Windows Derlenmesi ve kurulması
  • Komut satırı programlarla kullanım  ( caffe , convert_image_set , compute_image_mean )
  • Caffede kullanılan dosyalar ( Ağ model dosyası, Solver , ... )
  • Uygulama - Renk Tanıma 
  • Veri seti nasıl hazırlanır, 
  • Eğitim
  • Test 
Sonu biraz vakit darlığından aceleye geldi ama kullanılan kodlar ve bat dosyalar verildi

Sunuma : Burdan Ulaşabilirsiniz
Kod ve Veri Setini :  Burdan indirebilirsiniz
Derlenmiş Caffe : Burdan indirebilirsiniz
Offline Netscope - Caffe Ağ modellerini grafik olarak gösterir - 
github.com/birolkuyumcu/offline-netscope

Uygulama için 3 ayrı kodumuz var
  1. classify ipython notebook : Eğitilmiş Modelin kullanımını gösteriyor
  2. Test.py : Bir dizi görüntüler OpenCv ile yükleniyor caffede sınıflanıdırlıyor ve karşılaştırma -confusion- matrisi hesaplıyor 
  3. gui/colorRec.py : pySide ile  GUI yazıldı.
Önerilerinizi ve sorularınızı bekleriz....

Cuma, Ekim 21, 2016

Görünür ve Kızılötesi görüntülerle Gemi Sınıflandırma



Vais from bluekid on Vimeo.




Deniz trafiği kontrolünde gemilerin gece ve gündüz tanınması gerekiyormuş. Bu problemin çözümü için bir veri seti oluşturulmuş ve bir makale yazılmış.




Yukardaki fotoğraflara bakarsanız, geminin tanınması gereken görüntünün çok değişik uzaklardan değişik açılardan çekildiği görünüyor. Keza gündüz kızıl ötesi görüntü alınabilirken, gece el mahkum sadece kızıötesi görüntüler üzerinden tanınması gerekiyor.

VAIS: A Dataset for Recognizing Maritime Imagery in the Visible and InfraredSpectrums

University of Pennsylvania, Gwangju Institute of Science and Technology ve Jet Propulsion Laboratory, California Institute of Technology den araştırmacıların bir çalışması. Çalışmada tanıma algoritması olarak derin öğrenme  'Convolutional neural networks' - CNN kullanılmış. Bütün emeklerin üstüne birde veri setini umuma açmışlar, sağolsunlar.

Bizde fırsattan istifade bu veri setiyle Caffede bir çalışma yaptık. Caffedeki "bvlc_reference_caffenet" modeline ince ayar - fine tune - yaptık.
Caffe neymiş, ince ayar yapmak neymiş diyenler
yazılarımıza müracaat etsinler.

Makalede  görünürde %87, kızılötesinde % 61 başarıya ulaşılmış.



 Bizim ulaştığımız sonuçlar ise Görünürde %98, Kızılötesinde % 92 başarı oldu.

Kızılötesi için:




Gündüz Görüntüleri için 




Cumartesi, Temmuz 23, 2016

Twitter Gözetleyici




Uygulamalarımızda kullanmak için kütüphane arayışlarımız oluyor. Bu keşfettiğimiz kütüphaneleri inceliyoruz. Kullanma niyetinde olduklarımız içinde basit örnekler hazırlayıp nasıl kullanacağımızı anlamaya çalışıyoruz.  Bu günkü yazımızda böyle bir örnek çalışmamızdan bahsedeceğiz.

Uygulamamızın adı Twitter Gözetleyici. Çalışması şöyle. Sizin vereceğiniz  anahtar kelimenin geçtiği twitleri bulup ekranda kelime bulutu olarak göstermek. Belli zaman aralıkları ile bu işlemi tekrar etmek.

Kullandığımız kütüphanelerden bahsedelim.




pattern : http://www.cnts.ua.ac.be/pattern :
Antwerp üniversitesininin CLiPS (Computational Linguistics & Psycholinguistics) araştırma  merkezinde geliştirilmiş bir yazılım. Biz Twitterdan bilgi çekebilmek için kullandık ama çok daha geniş amaçlı bir kütüphane. Web üzerinden , google, wikipedia, bing, facebook,... vb pek çok kaynakdan kolaylıkla bilgi çekebilmeniz sağlayan bir bölümü var. Keza doğal dil işleme kısmıda var.

  • Data Mining: web services (Google, Twitter, Wikipedia), web crawler, HTML DOM parser
  • Natural Language Processing: part-of-speech taggers, n-gram search, sentiment analysis, WordNet
  • Machine Learning: vector space model, clustering, classification (KNN, SVM, Perceptron)
  • Network Analysis: graph centrality and visualization.
 Kaynak kod  : github.com/clips/pattern




wordcloud : Kelime bulutu oluşturmak içi yazılmış bir kütüphane.



Kaynak kod : github.com/amueller/word_cloud


Bu kütüphaneler dışında
 GUI için PySide kullandık. Birazda Unicode ile boğuştuk Python 2.x serisinde epey bir başınızı ağrıtıyor.

Pek çok eksiği var. Lakin üzerinde geliştirme yapma imkanınım olacağını sanmıyorum. Geliştimek isteyenlar yada kodu görmek isteyenler için;
Kodlar Burda : github.com/birolkuyumcu/twitterMonitor