Şubat ayı için yol haritamda son adım olarak belirlediğim çok kapsamlı gerçek dünya problemli Data Science projesi hazırlama adımı üzerinde değişiklik yapmaya karar verdim.Bunun yerine daha küçük parçalara bölünmüş spesifik konularda çalışmalar yapacağım.Bu işin adı İngilizce'de Portfolio (evrak çantası,belgeler ) oluyor.Takip ettiğim kadarıyla çoğu Veri Bilimci çalışanları yeteneklerini göstermek adına bir Portfolio hazırlamışlar.Ben de bu işi kendime uygun gördüm.İlk olarak yapacağım işte Python'un Pandas kütüphanesi ile içeriğinde keşifsel veri analizleri,veri manipülasyonları,veri dönüştürmeleri,araştırma sorularını yanıtlayan spesifik sorgular,özet tablo ve raporlar ve son olarak görsel grafikler yer alacak.Problemin konusu olarak da küresel bir sorunu ele almaya karar verdim.Şu sıralar üstünde çalışacağım veri setini hazırlamakla uğraşıyorum.
Diğer bir yandan bu işi yaparken çok ciddi çalışmak gerekli.Tavsiyem size Data Science çalışmalarınızı sadece bir kariyer hazırlığı , kendini geliştirme , daha iyi iş bulmak olarak görmemeniz.Etrafınızdaki insanların olumsuz yorumları üstünde takılmayın.(Uyarıları dikkate almayın demiyorum) Yarın bile havanın nasıl olacağını henüz %100 olarak göremiyorsak şu an Big data ve Data Science araçlarındaki gelişimin hızının ne olacağını kestirmek gerçekten çok güç.Bunu ben değil bu işin 1 numaralarından biri Andrew Ng söylüyor.Nerede çalışırsanız çalışın eğer veri ile bir şekilde haşır neşir oluyorsanız Data Science ilgili öğrendiğiniz her pratik bilgi mutlaka size ve çalıştığınız şirkete + puan olarak bir şekilde dönecektir.Her + puan da ülkemize ve milletimize güç katacaktır bunu kesinlikle aklınızdan çıkarmayın.
28 Şubat 2016 Pazar
26 Şubat 2016 Cuma
Kaggle Titanik Veri Bilimi Projesi
İlk veri bilimi projemi daha öncesinden gün vermiş olduğum Kaggle Data Science platformunda Titanic: Machine Learning From Disaster konulu yarışma üzerinde tamamlamış bulunmaktayım.Kaggle'ın 101 olarak gördüğü hafif sıklet bu projeyi veri biliminde öğrendiğim bilgileri sınama ve eksiklerimi görmek açısından gerçekleştirdim.Projenin amacı eğitim veri seti üzerinde Titanik gemisinde hangi yolcuların hayatta kaldığını tahmin edebilen bir makine öğrenmesi modeli kurmak ve bu modeli test verisi seti üzerinde sınamaktı.Ben projeyi Python 3.4 ile IPython Notebook terminali üstünde kodladım.Projede Pandas (Veri işleme ve analiz) ,Matplotlib-Seaborn (Veri görselleştirme),Numpy(dizi-matris işlemleri) ve Sci-kit learn (Makine Öğrenmesi) kütüphanelerinden faydalandım.
20 Şubat 2016 Cumartesi
Seminerden Notlar
İtü Maslak kampüsünde yerleşik Arı Teknokent binasında "Exploring Wikipedia With Spark Workshop" isimli seminere bugün katılmış bulundum.Seminer Big Data Sistem Mimarı Şafak Serdar Kapçı tarafından sunuldu ve düzenlendi. Seminerin ilanı İstanbul Spark Meetup grubundan yapılmıştı. Seminer oldukça faydalı ve bilgilendirici geçti.Workshop da uygulamalar çoğunlukla Scala dili kodlanmıştı.Bununla birlikte sorgu işlemlerinde Sql sorgu dili de kullanıldı.Spark üzerinde SqlContext nesnesi ile hedef veri setlerine sql sorguları atmak mümkün oluyor.WorkShop'un ilk kısmında English Wikipedia üstünde sayfa görüntülemeleri üstünde keşif analizleri yapıldı.Haftanın hangi günü wikipedia en çok trafiği çekiyor,sayfa görüntülemelerinde kaç tanesinin masaüstü ve mobil konumlardan yapılıyor olduğu gibi sorulara SparkSql ile yanıt vermeye çalıştık.İkinci kısımda Wikipedia tıklatma akışı üstünde analizler yapıldı.Wikipedia'dan en çok istek edilen 10 makale nedir,Wikipedia'ya en çok trafik getiren siteler hangileri gibi sorular yanıtlandı.Bu analizlerin yapıldığı veri seti ise Şubat 2015 için toplam 3.2 milyar istek (request) le 22 milyon adet veriyi kapsıyordu.Bununla birlikte böyle devasa veri boyutuna rağmen yaptığımız sorgulamalar kimi zaman 1 saniyenin altında kimi zaman da birkaç saniye içinde gerçekleşiyordu.Tabii ki bu kadar hızlı sorgulamalar yapmamız da başta Spark'ın big data yazılım teknolojisiyle birlikte kullanıyor olduğumuz Databricks sanal makine platformunun da payı vardı.Mesela benim kullanıyor olduğum sanal makine kümesi toplam 270 GB Ram ve 8 çekirdekli işlemciye sahipti.Workshop'un 3.kısmında ise biraz daha ileri seviye scala ile nitelikli kod yazmayı gerektiren uygulamalar yapıldı.Bunlardan biri de Wikipedia üzerinde en çok kullanılan 10 kelime sorusunu yanıtlayan bir Scala kod bloğuydu.Bu iş için ilk önce geçiçi yeni bir tablo oluşturulduktan sonra ikinci aşamada RDD (Esnek Dağıtım Veriseti) ile flatMap,map,reduceByKey dönüşüm fonksiyonları ile kelime sayacı oluşturuldu.Ve son aşamada Sql sorgusu ile en çok kullanılan 10 kelimenin bilgisi elde edilmişti.Ve bütün bu işlemlerin yapılması sadece 1 dakikanın altında 25 saniye gibi olağanüstü bir sürede gerçekleşti.En son olarak da Spark'ın grafik veri işleme aracı olan GraphX'e kısaca değinildi.Bu veri işleme aracının yaptığı işin temelinde veriyi bir network ağı halinde ele alması ve analiz edilmesine olanak tanıması yatıyor.Örnek uygulamalar olarak da seminerde sosyal medya ağları ve google'ın pagerank seo uygulaması verildi.
18 Şubat 2016 Perşembe
Kaggle Veri Bilimi Proje Yarışmasına Giriş
Şubat ayı için belirlediğim yol haritasında 1.durak olan web scraping çalışmasını tamamladıktan sonra sırada 2.durak olan Kaggle Competition (veri bilimi proje yarışması ) beni bekliyor.Bunun için dün Kaggle platformuna üye oldum .Üye olduktan sonra hesabımı, spam tespit etme algoritması ile sınamak için bir matematik problemi sordular.Problemi çözmek için python'da üç beş satırlık bir for döngüsü yazdım.Her ne kadar hoş bir karşılama olmasa da yaptıkları iş kötü niyetli robot yazılımları engellemek için çok faydalı bir işti.
17 Şubat 2016 Çarşamba
Spark Semineri
Kısmet olursa Cumartesi günü saat 11:00 İtü Maslak Kampüsünde Apache Spark ile ilgili düzenlenecek bir canlı uygulama seminerine katılacağım.Seminere kaydımı meetup.com sosyal platformunda İstanbul Spark topluluğu üzerinden yaptırdım.Özellikle workshop amaçlı olması sebebiyle çok daha faydalı bir seminer olacağını düşünüyorum.
Apache Spark, WikiPedia'ya göre açık kaynak olarak düzenlenmiş ve bilgisayar kümeleri (cluster computing) yapısı üstüne kurulmuş öncelikle Berkeley Kaliforniya AMPLab'da geliştirilmiş ve sonrasında Apache Yazılım Kuruluşuna bağışlanmış bir veri işleme motorudur.Özellikle geniş ölçekli big data olarak tabir edilen verilerin işlenmesi için ideal bir yapıdır.Spark sisteminin çalışması hakkında teknik bilgiyi Sadi Şeker'in şu yazısında ve devveri.com'da bulabilirsiniz.Spark'ın sitesinde şu açıklama dikkat çekicidir "bellekte Spark , Hadoop Map Reduce'den 100 kat ve disk'ten 10 kat daha hızlı çalışır.Scala,Java,Python ve R dillerinin paralel kullanıldığı etkin uygulamalar yazılmasına olanak tanır.İçeriğinde SQL,MLLib (Makine Öğrenmesi),GraphX(grafik işleme) ve Spark Streaming (gerçek zamanlı veri yayınlama) kütüphaneler barındırır.Spark'ın ilk sürümü 30 Mayıs 2014 tarihinde yapılmakla birlikte tam sürümü 4 Ocak 2016 'da yapılmıştır.
Benim Spark ile tam olarak tanışmam beş saatlik bir içerik üzerinden ; dataquest üzerinde aldığım bireysel öğrenmeli Data Scientist eğitiminde gerçekleşmişti.Daha öncesinde Quora,kdnuggets ve takip ettiğim data science bloglarında kısmen bilgi sahibi olmuştum.Henüz çok yeni bir veri işleme yazılımı teknolojisi olması sebebiyle kullanımı konusunda insanların kafasının genel itibariyle karışık olduğunu gördüm.Bir kesim sadece Scala ve Java ile kullanıldığında etkili olacağını söylerken diğer bir kesim de Python ve Spark 'ın kombine kullanılmasından çok büyük faydalar sağlanacağını söylemişler.Kdnuggets'de yer alan bir yazıda ise Python ve Spark ile şimdiye kadar hiç Kaggle data science yarışmalarında ödül kazanılamadığından dem vurulmuş bununla birlikte giderek aradaki farkın kapatıldığına işaret edilmiş.Ve ek olarak belirtmem gerekirse Spark'ın Python ile birlikte kullanılabilmesi için de PySpark uygulaması oluşturulmuştur.
16 Şubat 2016 Salı
Web Scraping Çalışmasından Notlar
Şubat ayı için belirlediğim yol haritasında 1.durak olan Web Scraping çalışmasını da Harvard Üniversitesi Data Science ders notu üzerinden geçtim. Çalışma esnasında dikkatimi çeken ve önemli notları da sizlerle paylaşmak istiyorum.Ders notlarında yer alan örnekler Python 2 ile yazılmış.Eğer benim gibi Anaconda Python 3.4 dağıtımını kurduysanız bu örneklerde yer alan kodlar sizin için çalışmayacaktır.Ufak tefek değişiklikler yaparak bu açığın üstesinden gelebilirsiniz.İmport urllib2 yerine "import urllib" ve source = urllib2.urlopen(url). yerine ise "source = urllib.request.urlopen(url).read()" yazdığınızda kodlar çalışır hale gelecektir.(Atladığım yer olabilir lütfen hatırlatınız)
Ders notlarında ayrıca gerçek dünya uygulamalarına da yer verilmiş.Uygulamaların birinde New York Times gazetesinde geçen haberlerin Twitter üzerinde yarattığı etkiyi coğrafi açıdan göstermek amacıyla bir web scraping çalışması gerçekleştirilmiş ve neticesinde güzel bir sunumla elde edilen veri görselleştirilmiş.Daha çok dikkatimi çeken diğer bir uygulamada Twitter'da atılan bir tvit üzerinden twitter kullanıcılarının duygusallık analizini gerçekleştiren bir çalışmaydı.Mesela Turkey diye sorgu attığımızda bugün için Twitter üzerinden atılan 303 tvit üzerinden duygu kümelenmesinin alert ve excited tarafına yakın olduğunu aşağıda yer alan ss de görebiliyoruz.
Ders notlarında ayrıca gerçek dünya uygulamalarına da yer verilmiş.Uygulamaların birinde New York Times gazetesinde geçen haberlerin Twitter üzerinde yarattığı etkiyi coğrafi açıdan göstermek amacıyla bir web scraping çalışması gerçekleştirilmiş ve neticesinde güzel bir sunumla elde edilen veri görselleştirilmiş.Daha çok dikkatimi çeken diğer bir uygulamada Twitter'da atılan bir tvit üzerinden twitter kullanıcılarının duygusallık analizini gerçekleştiren bir çalışmaydı.Mesela Turkey diye sorgu attığımızda bugün için Twitter üzerinden atılan 303 tvit üzerinden duygu kümelenmesinin alert ve excited tarafına yakın olduğunu aşağıda yer alan ss de görebiliyoruz.
Burada yapılan iş ilk önce sorgulanan kelimeye göre atılan tvitlerin tespit edilmesi ; sonrasında web scraping yöntemiyle ve api kullanımıyla bu tvitlerin toplanması ve son aşamada elde edilen tvitlerde yer alan anahtar kelimelerin duygu tarifini yapan ilgili tanımlarla sözlükte eşleştirilmesi ve sonucun görsel hale getirilmesi olarak gerçekleşiyor.
Python'da web scraping işlemlerini urllib kütüphanesiyle gerçekleştirebileceğiniz gibi yanında bu işi daha da kolay getiren ve kod yazımını azaltan BeautifulSoup kütüphanesinden de yararlanabilirsiniz.En çok kullanılan fonksiyonlardan birisi de findAll.Bu fonksiyon ile web sitesinde elde etmek istediğiniz verinin html etiketini inspect element ile tespit ettikten sonra yapmanız gereken findAll fonksiyonunu tespit ettiğiniz etiket ile çağırmak oluyor.Bu fonksiyon sayesinde web sitelerinden izin ve gizlilik kurallarını aşmamak kaydıyla istediğiniz veriye otomatik olarak erişebilir ve diskinize depolayabilirsiniz.Bu iş özellikle internetten veri toplama işi yapan kişiler için çok büyük bir faydadır.Saatlerinizi alabilecek bir tablo hazırlığını python'da kod yazarak dakikalar içinde bitirebilirsiniz.Bu gerçekten çok büyük bir kolaylıktır.
15 Şubat 2016 Pazartesi
Şubat Yol Haritası
Bazı özel işlerimi de hallettikten sonra Data Science (Veri Bilimi) çalışmalarıma kaldığım yerden tam olarak yoğunlaşabilirim.Bunun için de ajandam da üç adet başlık oluşturdum.Başlıklar şöyle 1-Web Scraping 2-Kaggle Competition 3-Data Science Projesi . Web Scraping , Data Science projelerinde veri setlerini oluştururken kullanılan yöntemlerden birisidir.Web Scraping,kod yazarak web sitelerinde istenilen verilere otomatik olarak erişmeyi ve elde etmeyi sağlayan bir yöntemdir.Web Scraping ile ilk tanışmam DataQuest üzerinde DataScientist eğitimi içinde gerçekleşmişti.Bu sefer bu bilgiyi Harvard'ın Data Science eğitim notları ile IPython Notebook üzerinde uygulamalı olarak pekiştirmek istiyorum. Sonrasında ise Data Scientist (Veri Bilimci) ler için sosyal bir topluluk olan ve içinde para ödüllü Data Science proje yarışmaları düzenleyen Kaggle 'da bir Data Science proje yarışmasına katılacağım.Bu sayede Data Science işinde hangi seviyede olduğumu ve eksik bilgilerimi tespit etme fırsatım olacaktır.Son başlıkta ise bu işi daha profesyonel hale getirip hazırlayacağım iş akış şemasına sadık kalarak çok daha detaylı derin nitelikli bir proje hazırlamayı düşünüyorum.Bu işler ne kadar zaman alır şu an için kestiremiyorum.Amacım olabildiğince yüksek performanslı çalışıp en kısa zamanda bu işleri sonuçlandırmak.
Kısa bir aradan sonra ...
Data Science üzerine yaptığım çalışmalarıma kısa bir ara vermek durumunda kaldım.Araya günlük özel hayatın getirdiği işler girdi...
Data Science çalışmasına gelince ,temel seviyede bir veri bilimi projesi hazırlayabilmek için gerekli eğitimleri tamamladığımı söyleyebilirim.Maddi imkanlarım ve kabiliyetim ölçüsünde bu eğitimi tamamladım.Proje çalışmasına başlamadan önce biraz Web Scraping konusunda DataQuest'de öğrendiğim bilgileri IPython Notebook üzerinde pekiştirmek istiyorum.Web Scraping gerçekten Data Science işinin çok önemli bir silahı.Bu önemi geçenlerde Ebay.com üzerinde belli ürünlerle ilgili data analizi işi yaparken daha da iyi anladım.Yapacağım proje ile ilgili de kafamın içinde şu sıralar genel konsept fikirler oluşmaya başladı.Bütün bu Data Science ile ilgili yaptığım çalışmalara çok ciddi bir bakış açısıyla yaklaşıyorum.Hani CV'im de görünsün , iş mülakatlarında anlatacağım bir hikaye olsun gibi bir mantıkla katiyyen düşünmüyorum.Bu işten uzun vadeli çok büyük kazanımlar hedefliyorum.Kazanımları sadece para olarak düşünmeyin.Daha iyi hizmet vermek de bir kazanımdır,iyileştirmedir.Eğer bir haber sitesi, ziyaretçilerine anlık ve doğru olarak son dakika haberlerini sunabiliyorsa bu bir kazanımdır.Sonuç olarak müşteri memnuniyeti artacak ve haber sitesi müşteri sayısını arttıracak ve daha çok reklam alarak bu işten kazancını her halükarda arttıracaktır.
Data Science çalışmasına gelince ,temel seviyede bir veri bilimi projesi hazırlayabilmek için gerekli eğitimleri tamamladığımı söyleyebilirim.Maddi imkanlarım ve kabiliyetim ölçüsünde bu eğitimi tamamladım.Proje çalışmasına başlamadan önce biraz Web Scraping konusunda DataQuest'de öğrendiğim bilgileri IPython Notebook üzerinde pekiştirmek istiyorum.Web Scraping gerçekten Data Science işinin çok önemli bir silahı.Bu önemi geçenlerde Ebay.com üzerinde belli ürünlerle ilgili data analizi işi yaparken daha da iyi anladım.Yapacağım proje ile ilgili de kafamın içinde şu sıralar genel konsept fikirler oluşmaya başladı.Bütün bu Data Science ile ilgili yaptığım çalışmalara çok ciddi bir bakış açısıyla yaklaşıyorum.Hani CV'im de görünsün , iş mülakatlarında anlatacağım bir hikaye olsun gibi bir mantıkla katiyyen düşünmüyorum.Bu işten uzun vadeli çok büyük kazanımlar hedefliyorum.Kazanımları sadece para olarak düşünmeyin.Daha iyi hizmet vermek de bir kazanımdır,iyileştirmedir.Eğer bir haber sitesi, ziyaretçilerine anlık ve doğru olarak son dakika haberlerini sunabiliyorsa bu bir kazanımdır.Sonuç olarak müşteri memnuniyeti artacak ve haber sitesi müşteri sayısını arttıracak ve daha çok reklam alarak bu işten kazancını her halükarda arttıracaktır.
Kaydol:
Kayıtlar (Atom)