Veri Bilimi Konusuna Girmek İsteyenler İçin Başlangıç Tadında Bir Rehber

Veri bilimi (data science) nedir? Makine öğrenmesi nedir? Veri bilimi ve machine learning konularını kafanızda oturtmanızı sağlayacak başlangıç bilgilerini şuraya bırakalım.
Veri Bilimi Konusuna Girmek İsteyenler İçin Başlangıç Tadında Bir Rehber
iStock

veri bilimi ve makine öğrenimi hakkında bir şeyler duydunuz ve başlamak istiyorsunuz. ama ilk adımı bir türlü atamıyor musunuz? başlamak bitirmenin yarısıysa size yolun ilk yarısında rehberlik edecek kısa bir kılavuz hazırladım.

birinci adım

birinci adım her konuda olduğu gibi seçim yapmak. işe girişmeden önce hangi dili kullanmak isteyeceğiniz üzerine karar vermeniz gerekiyor. çok sayıda seçenek var. ama ben sizler için seçenek sayısını ikiye indirdim.

r dili ya da python. her iki dili kısaca inceleyelim.

r dili

r dilinin ortaya çıkış serüveni waterloo üniversitesinde görev alan robert gentleman’in üç ay boyunca ders vermek amacıyla auckland üniversitesi’ne gitmesi ile başlıyor. orada ortak ilgi alanlarına sahip olduğunu keşfettiği o zamanlar istatistik profesörü olan ross ihaka ile tanışıyorlar. mevlana ve şems buluşması gibi bir etki oluşuyor. birlikte o zamanlar yaygın olarak kullanılan s dilini optimize edip s plus olarak geliştiren ikili zaman içinde kendi özgül programlama dilleri olan r dilini ortaya çıkarmış. zamanla ekibe yeni kişiler katılmış. dil geliştikçe gelişmiş. 1995 yılına gelindiğinde bir karar vermeleri gerekmiş. biz bu dili ne yapacağız? hobi gibi başladık ama sonu nereye varsın? bir şirket kurup bunu satalım mı? yoksa açık kaynak kodu olarak internette serbest dolaşıma mı bırakalım?

seçimleri serbest bırakmak oldu. r’ dilinin kaynak kodunu artık bir özgür yazılım lisansı altında kullanılabilir hale gelmişti. bunun anlamı insanlar onu istedikleri gibi kullanabilir, değiştirebilir ve dağıtabilirler. bu sayede çok sayıda insan kendi ihtiyaçlarına göre programı optimize etti. yaptıkları optimize hali paylaştı. onu daha ileriye götürenler oldu. geriye götürenlerde oldu. tıpkı evrim gibi. işe yarar özellik kazandıran eklemeler popülasyonlar arasında yayıldı. işe yaramaz versiyonlar tarihin tozlu sayfalarına karıştı. böyle böyle program ilerledi. 2000 yılında r programlama dilinin ilk kullanıma hazır tek kaynaktan indirilebilir 1.0 sürümü yayınlandı. hala açık kaynak kodlu bir programlama dilidir.

kim kullanıyor bu dili ve ne amaçla kullanıyor?

twitter: veri görselleştirme ve kullanıcı deneyimlerini görüntülemede r dilinden yararlanır.

facebook: kullanıcıların etkileşimlerini tahmin etmek ve sosyal ağ grafiğini güncellemek için r’ı kullanır

google: arama sonuçlarını iyileştirmek, daha iyi arama önerileri sunmak, reklam kampanyalarının yatırım getirisini hesaplamak, çevrimiçi reklamcılığın verimliliğini artırmak ve ekonomik etkinliklerini tahmin etmek için r dilinden yararlanmaktadır.

amazon: müşterilere çapraz ürün önerilerini geliştirmek için veri analizlerinde r kullanır.

ford motor company: ford, iş stratejisini ve gelecekteki tasarımlarını geliştirmelerine yardımcı olan ürün hakkındaki müşteri düşüncelerini analiz etmek için r’ı istatistiksel analizler için kullanıyor.

national weather service: hava durumu tahmini ve afet tahmini için r’ı kullanır.

konuştuğumuz konunun ne olduğu yavaş yavaş gözünüzde canlanmaya başladı sanırım. ortada dev büyüklükte içinden çıkılmaz veriler var. ve siz bir sebepten ötürü bu verileri kullanarak anlamlı yorumlar yapmak istiyorsanız veri analizi bilimine ihtiyacınız vardır.
r programlama dili bu analizi yapacağınız en yaygın kullanılan 2 dilden biri...

bir diğeri ise python

ismini bu aralar her yerde duyuyorsunuzdur. aslında oldukça eski bir programlama dili olmasına rağmen geliştirilmesinden yıllar sonra veri analizinde ve makine öğreniminde kullanılmasının oldukça yararlı olduğu fark edilmesiyle bir anda patladı. son yıllarda oldukça popüler. ve neredeyse her taşın altından çıkıyor.

kısa bir tarihine bakarsak: 90’ların başında hollandalı guido van rossum isimli bir arkadaş geliştirdi. lale dikmek/programlama dili oluşturmak seçeneklerinden ikincisini seçen bu arkadaş yaptığı şeyin bu kadar işe yarayacağını eminim kendi bile öngörememiştir. zaten konu bilgisayar olunca tohumun içinden ne çıkacağı lalelerde olduğu gibi belli olmuyor. python'un diğer programlama dillerine göre en sevilen yanı olabildiğince az kodlama satırı gerektirmesidir.

bu noktada küçük bir parantez açmalıyım. bu yazı bu konuları hiç bilmeyenler için yazıldığına göre programlama dili nedir? onu da kısaca açıklayayım.

bilgisayarlar tıpkı biz insanlar gibi belirli mantıksal hesaplamalara göre karar veren, seçim yapan makinelerdir. örnek olarak tıraş bıçağı alan birisine tıraş köpüğü de almak isteyebileceği düşünülerek tıraş köpüğü reklamı çıkarmanın iyi olacağı kararını bilgisayarın kendi kendine verebilmesi için ona bunu nasıl yapacağını öğretmemiz lazım. bunun iki yolu var. şu olursa bunu yap, bu olursa bunu yap diye tek tek yazmak. ya da ona neyi nasıl seçeceğinin mantığını öğretmek. birinci yol artık demode. seçimler ve olasılıklar bu kadar sonsuza yakınsak olan bir evrende bilgisayara olası her ihtimalin en uygun seçimini yazarak vermek korkunç zor. artık yazılımcılar bilgisayara balık tutup vermiyor. balık tutmayı öğretiyor. buna biz kabaca makine öğrenimi diyoruz.

lakin makineye bir konunun mantığını öğretirken yaşanacak bir ton sorun var. bunlardan ilki makinenin karşısına geçip "yeğen yemeğin salçalısı kadının kalçalısını seçeceksin diyemiyor oluşumuz". çünkü o seni anlamaz. çünkü sen konuşuyorsun. ama o senin konuştuğun dili bilmiyor. o bir ve 0 ları kullanıyor. işte burada programlama dilleri bize yardımcı oluyor. programlama dili insan beyni ile makine beyni arasında bir ara yüz oluşturur. birbirlerini anlar hale getirir.

python da r dili de bizim makine ile konuşurken birbirimizi anlamamızı sağlayan ortak dili daha teknik ifade ile mantık ara yüzünü oluşturur. en doğruya yakın anlatımla ise insan mantığı ile makine mantığı arasında köprü olur.

bu köprü yani programlama dili makine mantığına yakınsa, yani makine salak insan zeki, makine zorlanmasın insan zorlansın diye düşünülerek kurulmuş ise bu dil ile yazılan bir program makine üstünde kabaca çok daha hızlı ve oldukça az sorun çıkararak çalışacağını ön görebiliriz. fakat bu hızın ve güvenin bir kusuru vardır. makine mantığına çok fazla yaklaşmak insan mantığından epey uzaklaşmayı gerektirir. bu durumda da insanlar için bu dili öğrenmek çok zor hale gelmiş olur. insan zannettiğimiz kadar zeki değil. ya da hem zeki hem üç kuruşa milyonlarca satır kod yazacak insan bulmak zor olduğu için artık bu yönden uzaklaşıldı.
bilgisayar programcılığının ve yazılımın ilk yıllarında tonla böyle program vardı. şimdilerde programlama dilleri insan dostu. yani insan mantığına makine mantığından daha yakın. böyle olması öğrenilebilirliği oldukça artırdı. hatta bu tarz insan dostu dillere yüksek seviyeli diller adı verilir.

pyhton hiç kuşkusuz yüksek seviyeli bir dildir. python programlama dilini r dilini kullandığımız hemen hemen her alanda kullanabiliriz.


peki hangisini seçeyim?

r dili mi? python mu?

r dili yalnızca veri bilimi ve veri görselleştirmeyi amaçlayan biri iseniz sizin için daha uygun bir seçim olur. deneyimsiz bir programcıysanız veya programlamayı sevmiyorsanız ama şirkette veri analiziyle bazı sihirbazlıklar yapmayı planlıyorsanız ya da şu konuya bir bakayım sevecek miyim? seversem derinlerine inerim derseniz. r dili sizin için bence daha uygun.

büyük ölçekli projeler veya makine öğrenimi üzerinde çalışmak istiyorsanız bu durumda python size daha uygun. öğrenmek biraz daha uzun sürebilir. ama öğrendiğinizde elinizde daha geniş bir araç setiniz olur. buradan şu yanlış çıkarım yapılmasın: "python bilen biri r dilini bilen birinden daha üstündür." böyle bir şey yok. bu işler zeka ve yetenek işi. adamın biri 3 çeşit fırça ile harika bir resim yapar. sen elinde 10 çeşit fırça, çeşit çeşit boyalar vardır... ama iyi resim yapamazsın. yetenek ve kullandığı dile hakimiyetin yapabileceğin işteki başarını belirler.

ama işe başlarken ikisi arasında bir seçim yapacaksak kabaca neye göre seçeceğimizi öğrendiğimize göre ikinici adıma geçebiliriz. bence bu adımda biraz daha durup r dili ile python arasındaki farklar avantaj ve dezavantajlar hakkında biraz daha okuma yapabilirsiniz.


2. adım

hangi dili kullanmak istediğinizi seçtikten sonra internette tonla video ve yazılı metin var. online eğitimler. kendinizi o dipsiz kuyuda kaybetmeden sadece seçtiğiniz dilin temel mantığını öğrenecek kadar geliştirin. bunun için size 15 gün günde 4 saat çalışma öneriyorum.
bunun yarısı video izlemek yarısı kendiniz denemeler yapmak için. hedefiniz işe yarar çalışır bir şey üretmek değil. amacınız konu ne? neden bahsediyoruz? ne nasıl niye yapılır? kaba taslak kuş bakışı bir izlenim elde etmek. ikinci adım bu!

3. adım

temel istatistik kavramlarını öğrenin. bu işte ustalaşmak istiyorsanız bu adım çok önemli. amaan bunlar ne işe yarayacak. lazım olunca öğrenirim demeyin. burası çok önemli. istatistik bilmeden veri analizi bilimini bilebilmeniz olanaksız. sadece copy paste yaparsınız. bir şey üretmek için temel bilim şarttır. veri analizi biliminin temel bilimi istatistik.

bu konuda size bir sınırlama getirmiyorum. üst limit sizin iradeniz. alt limit ise:

1. istatistiksel özellikler — ortalama, medyan, mod, dağılımlar
2. olasılık teorisi — olasılık dağılımları
3. hipotez testi — z puanı, t-testi, ki-kare
4. regresyon teknikleri
5. a/b testi deneylerin tasarımı (doe)

bunları bilmeden olmaz bu iş. bunları en azından öğrenin.


4. adım: makine öğreniminin temellerini öğrenmek

1. denetimli/denetimsiz öğrenme
2. pekiştirmeli öğrenme
3. eksik takma vs fazla takma
4. düzenlileştirme
5. çapraz doğrulama
6. makine öğreniminin farklı alanları, görüntü tanıma, doğal dil işleme gibi ilginizi çeken konularda daha detaylı bilgiler edinin.

5. adım

bir şeyler inşa edin. hemen şimdi. ekşi sözlük'te bir arkadaş vardı, python aracılığı ile kendi mahallesindeki en iyi lahmacunu satan firmayı yemek sepeti yorumlarını ve puanları kullanarak fiyat performans olarak en avantajlı olanını otomatik olarak seçen bir program yazmıştı.

bu basit görünse de oldukça zor. siz ilk başta çok daha basit işler ile başlayın. yaparken nerede zorlandığınızı ve niye zorlandığınızı analiz edin. zorlandığınız konu 5 başlıktan hangisine dahil ise o başlıkla ilgili bilgilerinizi bir adım daha derinleştirin.

yeni bir proje yeni öğrenme ihtiyaçları, o ihtiyaçları giderme daha büyük proje daha fazla öğrenme ihtiyacı, ihtiyaçların giderilmesi ve çok daha büyük proje

bu yolu kullanarak r dili ya da python da kendinizi ileri seviyelere götürebilirsiniz. yeteneğiniz de varsa bu konuda bir kariyeriniz olması oldukça olası. evet bu konuda bir üniversite bitirmeden bunu yapabilirsiniz.

niyetiniz varsa vira bismillah...

kaynak: medium / rahime yeşil