T. C. İstanbul Şehir Üniversitesi
İş Analitiği Yüksek Lisans Dersi
Ders izlencesi ve ders ile ilgili faydalı içerik
Dersin Adı: Veri Odaklı Programlama, Python ile
Dersin Kodu: IAN 502
Dönemi: Güz 2018
Kredisi : 3
Öğretim Üyesi: Doç. Dr. Şadi Evren ŞEKER
İletişim: python2018@sadievrenseker.com
Ders İçeriği:
Veri odaklı programlama dersinin 3 farklı seviyeden öğrencilere hitap etmesi beklenmektedir. Henüz programlama ile yeni tanışan kişiler, programlama hakkında bilgisi olan ama çok fazla tecrübesi ve uzmanlığı olmayan kişiler ve progralama konusunda tecrübeli ve uzman ancak veri odaklı progralmama konusuna yeni olan katılımcılar.
Dersin amacı, programlama bilgisi olmayan kişilerin programlama dilleri ile ilk kez karşılaşacağı ve kodlamanın temellerini öğreneceği ve sonrasında veri odaklı program yazabileceği geçişi sağlamaktır.
Programlama geçmişi olan kişilere ise daha çok veri temelli program yazabilecekleri, veri analizinde karşılaşacakları problemlere karşılık gelen uçtan uca problem çözümlerini geliştirebilecekleri programlama yeteneklerini öğretmektir.
Ders kapsamında Python programlama dili öğretilecek olup, dilin temellerinin yanında veri analizine yönelik olarak, python dili içerisinde bulunan bazı kütüphaneler aşağıdaki şekildedir:
- · NumPy
- · SciPy
- · Pandas
- · Matplotlib
- · Scikit-learn
Ayrıca güncel konulara da yer verilecek ve örneğin derin öğrenme gibi konular için de tensor flow benzeri kütüphanelere giriş yapılacaktır.
Dersin amacı, katılımcıları, veri bilimi, veri analitiği ve iş analitiği dünyasında kullanılan temel teknolojileri, algoritmaları ve görselleştirme / analiz araçlarını temel düzeyde kullanacak seviyeye getirmektir.
Kaynak Kitaplar
- Python for Data Analysis, 2nd Edition Data Wrangling with Pandas, NumPy, and IPython, William McKinney, 2017
- Learning scikit-learn: Machine Learning in Python Paperback – November 25, 2013, Raúl Garreta, Guillermo Moncecchi
- Building Machine Learning Systems with Python , Willi Richert, Luis Pedro Coelho , 2013
Online Kaynaklar
Ders boyunca öğrencilere okumaları gereken bazı ufak vaka çalışmaları ile makaleler verilecektir.
Derse Katılım:
Ders boyunca öğrencilere okumaları gereken bazı ufak vaka çalışmaları ile makaleler verilecektir.
Derse Katılım:
Ders 3 modülden oluşmaktadır.
1. Programlamaya giriş (hiç bilmeyenler için)
2. Makine öğrenmesi ve veri analitiğine giriş
3. İleri veri analitiği yöntemleri
Katılımcılar, farklı bilgi düzeylerinden geldikleri için ilk modüle katılım zorunlu olmamakla birlikte verilen bütün ödev ve projelerin yapılması zorunludur. Sadece 3 hafta sürecek, ilk modül için benimle görüşerek öncesinde izin alabilir ve ödev/projeleri yaparak ilk modülden muaf sayılabilirler. Bunun dışında, derse katılım zorunlu olup, özel durumlar için önceden haberleşilerek izin alınabilir. Dersleri kaçırma veya tekrar çalışma ihtimallerine karşı, ders boyunca dijital içerik oluşturularak öğrencilerle azami seviyede paylaşılmaya çalışılacaktır.
Derste yapılacaklar:
• Yapısal programlamaya (structural programming) giriş : temel programlama teknikleri, değişken, döngü, koşullar ve fonksiyon gibi temel kavramlara giriş ve uygulamaları
• Veri yapılarına giriş (Data structures): temel veri yapılarının çalışma mantığı ve kullanım alanları, diziler, listeler, yığın (stack), sıra (queue), ağaçlar (trees) , haritalar (maps), v.b. kavramlar.
• Nesne Yönelimli programlamaya giriş (object oriented programming) : Nesne, kalıtım (inheritance), kapsülleme (encapsulation), çok şekillilik (polymorphism) v.b. kavramlar.
• Veri analizine giriş ve veri kümelerinin yönetilmesi / yüklenmesi
• NumPy temelleri ve temel dizi analizi, vektörize hesaplamalar, dosya işlemleri ve doğrusal cebir (linear algebra), rasgele sayı (random number) üretimi
• Tanımlayıcı istatistiğe giriş (descriptive statistics), Pandas kütüphanesi ve veri yapıları
• Dosya yükleme (Loading) , saklama (Storage) ve dosya formatları
• Veri ön işleme ve ver sarmallama (wrangling): veri kümelerinin birleştirilmesi ve eklenmesi, yeniden şekillendirme (reshaping) ve döndürme (pivoting), veri dönüşümü (data Transformation), ve dizgi işlemleri (string manipulations)
• Tahminci istatistiğe giriş (predictive statistics), scikit-learn kütüphanesi ve temel sınıflandırma, kümeleme ve regrezisyon analizi yöntemlerinin kullanılması
• Çizim ve görselleştirme (plotting and visualization): matplotlib kütüphanesine giriş, pandas ile fonksiyonların görselleştirilmesi, diğer alternatif görselleştirme araçlarına giriş
• Grup operasyonları ile veri birleştirme (data aggregation): GrouBy çalışması, veri birleştirme (aggregation), grup boyunca operasyonlar ve dönüşümler (transformations), pivot tablolar ve çapraz tablolama.
• Zaman Serileri: Tarih ve zaman veri tipleri, zaman serilerine giriş, veri aralıkları (Ranges), frekans ve kayma (shift) kavramları, Priyotlar ve periyodik aritmetik, hareketli pencere fonksiyonları (moving window functions).
• Güncel ve gelişmekte olan veri analizi yöntemlerinin python ile kullanılması: ileri makine öğrenmesi kütüphaneleri, derin öğrenme kütüphaneleri.
Vaka Çalışmaları:
Ders kapsamında, uygulama eğitim yolu izlenecektir ve çok sayıda vaka üzerinde veri analizi python dili kullanılarak yapılacaktır. Ders kapsamında verilen örnek veri kümeleri üzerinde katılımcıları gerçek hayat projelerini uygulamaları beklenmektedir.
Ödevler:
Ders kapsamında, 13 farklı ödev verilmesi planlanmaktadır. Bu ödevlerin süresi bir hafta ile iki hafta arasında değişmekle birlikte genelde her hafta yeni bir ödev verilecektir. Ödevler grup halinde yapılacaktır ve her ödev için yeni bir grup kurulacak bu sayede grup çalışması teşvik edilecektir.
Ders içi uygulamalar:
Derste anlatılan konular, katılımcılar ile birlikte birebir örnek veriler üzerinde uygulanacaktır. Bu yüzden katılımcılaırn bilgisayarlarını getirmeleri ve ilk derste anlatılan python yazılımını kurmaları gerekmektedir, ayrıca her ders için gereken ilave kütüphaneler bir önceki derste veya ilgili derste anlatılacaktır.
Ders Web Sitesi
Ders içerikleri ve bu ders izlencesi, www.sadievrenseker.com/python2017 adresinden takip edilebilir. Verilen ödevler, projeler ve gerekli yazılım için bağlantılar sayfada güncel olarak yer alacaktır.
Takım Çalışması ve Takım Üyesi Değerlendirmesi
Öğrenciler kendi takımlarının her bir üyesini projedeki performansına göre değerlendireceklerdir. Her bir öğrenci 100 puanı kendisi de dahil olacak şekilde takım arkadaşlarına dağıtacaktır. Bu dağıtım öğrencinin her bir takım üyesinin projeye katkısını yansıtacak şekilde yapılacaktır. Puanlama, takım üyesinin projeye harcadığı zamanı değil, projeye olan katkısını ölçecek şekilde yapılmalıdır. Katkıdan kasıt, fikir geliştirme, araştırma, analiz, yazı yazma, sözlü sunum, rapor yazma vb.’dir. Eğer takım çalışması iyi ise o zaman öğrenciler aynı puanı diğer takım üyelerine verebilirler. Ancak bazı takım üyeleri kendi yapmaları gerekeni yerine getirmediyse bu durumda puanlar eşit olmayan bir şekilde dağıtılacaktır.
Tüm takım üyeleri tarafından verilen puanlar ders hocası tarafından kümülatif hale getirilecektir. Her bir öğrenci kendi takım arkadaşlarının ve kendisinin verdiği puana göre bir takım çalışması katkı puanı alacak, ama bu puanın nasıl oluştuğu (kimin kime kaç puan verdiği bilgisi) öğrenciler ile paylaşılmayacaktır).
Takım üyeleri arasında bir konsensüs oluşmadığı zamanlarda; örneğin üç öğrencinin puanları eşit dağıtması ve bir öğrencinin farklı puanlama yapması gibi bir durumda, hoca kendi muhakemesini kullanarak takım katkı puanı hesaplayacaktır. Bu hesaplama esnasında takım üyeleri ile görüşmesi gerekebilir.
Eğer birbiri ile çelişen puanlamalar söz konusu ise hoca büyük ihtimalle takım üyeleri ile mülakat yapacak ve ona göre puanlama yapacaktır.
Geçmiş tecrübeler çoğu takımın puanlarını eşit olarak dağıttıkları şeklindedir. Takım çalışmasının proje notunu etkilediği durumlar azınlıkta bulunmaktadır. Bu puanlamanın amacı takımlarına destek olmayan takım üyelerinin hak etmedikleri puanı almanın önüne geçmektir. Aynı zamanda, bazı öğrencilerin payından çok daha fazlasını yapmaları durumunda öğrencinin puanının daha da yukarıya taşımak mümkün olacaktır.
Takım değerlendirmesinin puanlaması sizin proje puanınıza direkt etki edecektir. Örneğin, takım puanı 30 üzerinden 25 ise ve sizin takım üyesi puanlamanıza göre ortalamanın altında bir katkıda bulunduğunuz gözüküyorsa, sizin proje puanınız 25’ten küçük olacaktır. Bu düşürümün miktarı ile ilgili kolay bir kural yoktur.
Derste ulaşılması hedeflenenler:
- İlk kez programlamaya girecek katılımcılara programlamanın temellerini öğrenebileceği bir ortam sağlamak.
- Temel veri yapılarına giriş yapmak
- Nesne yönelimli programlamaya giriş yapmak
- Python ve kütüphanelerini kullanarak tanımlayıcı (descriptive) ve tahminci (predictive) veri analizi yöntemleri geliştirebilmek
- Python ve kütüphanelerini kullanarak görselleştirme projelerini yapabilmek
- Python ve kütüphanelerini kullanarak uçtan uca, veri yükleme, veri ön işleme, veri dönüşümü, veri modellemesi ve veri görselleştirmesi işlemlerini yapabiliyor olmak.
Ders İzlencesi:
- Hafta 1: Derse giriş, yazılımların tanıtılması, ders izlencesi ve tanışma: temel programlama teknikleri, değişken, döngülere giriş
- ÖDEV 1: http://sadievrenseker.com/wp/wp-content/uploads/2017/09/odev_1.pdf
- Son teslim tarihi 27 Ekim 2018 (ders saatine kadar) uzatılmıştır.
- Hafta 2: Yapısal programlamaya (structural programming) giriş : koşullar (if, else, elif:) for döngüleri, range fonksiyonu, ve fonksiyon kavramına ( def f(x): ) giriş ve uygulamaları
- Derste Yazılan Örnek Kodlar:
- ile ilgili yazılan 2. hafta kodları (indirmek için buraya tıklayın >>> listeler_fonksiyonlar_donguler ):
- if, else ve elif kullanımı ve koşullar : untitled.py
- If kavramı, kullanıcıdan sayı okumak ve int değerine dönüştürmek. Verilen bir 100’lük notun harf notuna dönüşümü örneği: ikinci.py
- Döngü kavramı ve while, for döngüleri: ucuncu.py
- range ve liste kavramları ve for döngüsünü kullanarak ortalama, toplam hesaplama: dort.py
- Kullanıcıdan -1 girilene kadar sayı alan ve bu sayıların toplamını döndüren kod (break ve continue kavramları): bes.py
- Fibonacci serisini hesaplayan fonksiyon: alti.py
- Faktöriyel ve Kombinasyon hesaplayan fonksiyonlar: yedi.py
- değişken ve liste çağrılması ve fonksiyon içerisinde yapılan değişiklerin çağrılan yere etkisi (kopyalayarak çağırma ve referans ile çağırma (call by value, call by reference) kavarmları: sekiz.py
- bir liste alarak listedeki sayilarin toplamini döndüren fonksiyon : dokuz.py
- Parametre sayısı belirsiz parametreyi alıp işleyen fonksiyon ( *l ) : on.py
- Hafta 3: Veri yapılarına giriş (Data structures) ve Nesne Yönelimli programlamaya giriş (object oriented programming) : Nesne, kalıtım (inheritance), kapsülleme (encapsulation), çok şekillilik (polymorphism) v.b. kavramlar. temel veri yapılarının çalışma mantığı ve kullanım alanları, diziler, listeler, yığın (stack), sıra (queue), ağaçlar (trees) , haritalar (maps), v.b. kavramlar.
- ÖDEV 2: http://sadievrenseker.com/wp/wp-content/uploads/2017/09/odev_2.pdf
- ÖDEV 2 için son teslim tarihi 27 Ekim 2018 ders saatine kadardır.
- Derste Yazılan kodları indirmek için tıklayınız.(2017 yılındaki kod örnekleri)
- Derste Yazılan Kodlar (2018) .
- liste_giris.py : listelerin veri yapısı olarak kullanılması, temel liste fonksiyonları, çok boyutlu diziler ve listeler listesi kavramı
- Kume: kümeler (sets)
- sozluk.py: sözlük (dictionary)
- sorular.py: Derste çözülen örnek sorular
- Hafta 4 – 5 (Devam): Veri analizine giriş ve veri kümelerinin yönetilmesi / yüklenmesi
- Veri Kümeleri (dersten önce indirmenizde fayda var): indirmek için tıklayınız.
- Derste kullanılacak IDE için: Anaconda.com
- Örneklerin çalışma sonuçları:
- Ödev 3: Kaggle üzerinde birer hesap açınız ve ayrıca şu tutorial’da bulunan adımları 4. bölüme kadar (4. bölüm hariç) yapınız ve kodlarınızı ve çıktılarınızı yollayınız: tutoriala erişmek için tıklayınız
- 1. Ödevin Çözümü
- Derste Yazılan Kodlar (2017 yılı için) (Kitabın 2. Bölümündeki ilk örneği (bitli/usa.gov veri kümesi ile olanı) yaptık ve çalıştırdık. Notlanmayacak bir ödev olarak yine kitabın 2. bölümündeki diğer 2 veri kümesini çalıştırmanızı tavsiye ederim.
- Derste yaılan kodlar (2018 yılı için)
- Veri Ön İşleme (Data Preprocessing)
- Ders 5: Verinin Yüklenmesi
- Ders 6: Kütüphanelerin Yüklenmesi: NumPY, Pandas ve MathPlot Yüklenmesi
- Ders 7: Verinin içeri alınması (data import) :
- Ders 8: Python: Nesne Yönelimli programlama
- Ders 9: Eksik Veriler
- Ders 10: Kategorik Veriler
- Ders 11: Veri kümelerinin birleştirilmesi ve DataFrame kavramı
- Ders 12: Veri Kümesinin Eğitim ve Test olarak bölünmesi
- Ders 13: Öznitelik Ölçekleme
- Ders 14: Veri Ön işleme Şablonu
- Hafta 6-7 : NumPy ve Pandas temelleri ve Tahminci Analitiğe Giriş (Predictive Analytics) temel dizi analizi, vektörize hesaplamalar, dosya işlemleri ve doğrusal cebir (linear algebra), rasgele sayı (random number) üretimi Ödev 2 Çözümü , Ödev 4: NumPy problemleri ve çözümleri (çözümleri deneyerek tek bir dosya halinde yollamanız yeterlidir)
- Ders 15: Tahmin Problemleri ve Genel Giriş
- Doğrusal Regresyon
- Ders 16: Veri Kümesinin indirilmesi
- Ders 17: Veri Kümesi ve Kodlar ile ilgili
- Ders 18: Doğrusal Regresyon Kavramına Giriş
- Ders 19: Veri Ön İşleme Şablonu ile Verinin Yüklenmesi
- Ders 20: Doğrusal Regresyon Modelinin İnşa Edilmesi
- Ders 21: Doğrusal Regresyon Modelini Uygulayarak Tahmin
- Ders 22: Doğrusal Regresyon ve Verilerin Görselleştirilmesi
- Quiz 2: Basit Doğrusal Regresyon Soruları
- Çoklu Doğrusal Regresyon
- Ders 23: Veri Kümesi ve Problemin Tanımı
- Ders 24: Çoklu Değişkenlerdeki Problemler ve Çözümleri
- Ders 25: Kukla Değişken (Dummy Variable) ve Kukla Değişken Tuzağı
- Ders 26: Çalışma Ödevi 1: P-Value
- Ders 27: P-Value
- Ders 28: Değişken Seçimi ve Geri Eleme (Backward Elimination), İleri Seçim (Forward Selection), Çift Yönlü Seçim (Bidirectional Elimination) yöntemleri
- Ders 29: Çoklu Doğrusal Regresyon Kodlaması: Veri Kümesini Hazırlama
- Ders 30: Çoklu Doğrusal Regresyon Kodlaması: Regresyon Modeli
- Ders 31: Geri Eleme Yöntemi (Backward Elimination)
- Ödev 1: Çoklu Doğrusal Regresyon (Ders 32)
- Ödev 1: Çözümü 1. Parça: Veri Hazırlama ve Doğrusal Regresyon (Ders 33)
- Ödev 1: Çözümü 2. Parça: Geri Eleme Yöntemi ile (Backward Elimination) (Ders 34)
- Quiz 3: Çoklu Doğrusal Regresyon
- Polinomal Regresyon
- Ders 35: Veri Kümesi, Kavramın ve Problemin Tanımı
- Ders 36: Polinom Regresyonun Python ile Uygulaması
- Ders 37: Python ile Polinom Regresyon Şablonu
- Hafta 8-9: Tanımlayıcı ve Tahminci istatistiğe giriş ve Devam (descriptive statistics), Pandas kütüphanesi ve veri yapıları ve Sci-Kit Learn
- Örnek Veri Kümeleri
- Derste yazılan PANDAS kütüphanesi kodlarının Jupyter Notebook kodları
- Derste Yazılan PANDAS kütüphanesi kodlarının python uzantılı kodları
- Derste Yazılan PANDAS kütüphanesi kodlarının web dökümü
- Ödev 5: Verilen veri kümesi üzerinde aşağıda sayılan görevleri PANDAS kütüphanesini kullanarak yerine getiriniz:
- Veri kümesini indirmek için tıklayınız (toplam 830 kayıtta yapılan mobil görüşme ve veri trafiği tutulmuştur)
- Görev 1: Aylara göre toplam arama sayılarını listeleyiniz
- Görev 2: Aylara göre ortalama görüşme sürelerini listeleyiniz
- Görev 3: Aylara göre toplam görüşme, minimum görüşme ve maksimum görüşme sürelerini bir tablo halinde dökünüz:
- Görev 4: veri, görüşme ve sms bilgilerinin her birisi için en fazla görüşme yapılan ayları sıralayınız.
- Yukarıdaki görevler için bu web sitesinden faydalanabilirsiniz:
- Uçtan Uca Veri Bilimi Süreçleri (Knime ve Rapid Miner’a giriş ve süreç analizi)
- Veri Bilimi problem tipleri
- Sınıflandırma (Classification)
- Tahmin (Prediction)
- Bölütleme (Kümeleme, Clustering)
- Birliktelik Kural Çıkarımı (Association Rule Mining)
- Sınıflandırma Problemlerine Genel Giriş
- Lojistik Regresyon (Logistic Regression)
- Lojistik Regresyon’a giriş
- Python ile Lojistik Regresyon Kodlama
- Confusion Matrix ve Sınıflandırma şablonu
- K-En Yakın Komşu (K-NN)
- K-NN Algoritması
- Python ile K-NN kodlaması
- Mesefe Algoritmaları (Distance Metrics)
- Python Kodu: Mesafe algoritmaları
- Quiz: K-NN
- Destek Vektör Makineleri (Support Vector Machine)
- Kavrama ve Problemlere Giriş
- Python ile SVM uygulaması ve sınıflandırma
- Destek Vektör Makinelerinde Çekirdek kullanımı
- Çekirdek hilesi (kernel trick)
- Python ile Çekirdek fonksiyonları ve SVM
- Naif Bayes
- Bayes teoremi, Naive Bayes için Algoritmanın ve problemlerin tanımı, Sayısal Örnek çözümü
- Python ile Naive Bayes algoritmasının kodlanması
- Karar Ağaçları
- Karar ağaçlarına giriş ve sınıflandırma problemleri
- Python ile karar ağaçlarının kodlanması
- Rassal Ağaçlar (Random Forest)
- Rassal Ormanların, sınıflandırma problemlerine uygulanması
- Python ile Rassal Orman kodlaması
- Sınıflandırma Algoritmalarının Değerlendirilmesi
- Confusion Matris
- Flase Positive ve False Negative Kavramları
- Netlik/doğruluk (accuracy) paradoksu
- ROC eğrisi
- Şablon
- Sınıflandırma Şablonu
- Sınıflandırma Algoritmalarının Karşılaştırılması ve Özet
UDEMY : Uçtan Uca Veri Bilimi (Knime ile)
- Hafta 10: SCI-KIT Learn Kütüphanesine giriş ve makine öğrenme algoritmaları (Rapid Miner, Knime ve Python kütüphanelerinin karşılaştırmalı çalıştırılması)
- Yazılan Örnek kodlar (cinsiyet excel dosyasından makine öğrenmesi ve sınıflandırma örnekleri), aşağıdaki algoritmalar için çalışmaktadır.
- Örnek Kod 1: Cinsiyet
- Örnek Kod 2: Emlak
- Ödev 6:
- Görev 1: Titanic veri kümesini yükleyerek derste üzerinden geçilen algoritmalardan en az birisi ile hayatta kalan veya kalmayanları tahmin etmeye (sınıflandırmaya) çalışın.
- Görev 2: Derste işlenen bütün algoritmaları deneyin ve hangisinin en başarılı olduğunu yorumlayın (bir iki satır yazarak anlatın).
- Görev 3: Bu işlemler sırasında bütün verileri (sayısal veya nominal) kullanın (herhangi bir kolonu dışarıda bırakmayın, eksik veya kirli veri varsa önizlemeye tabi tutun, kullandığınız algoritma, veri tipi ile uyumlu değilse veriyi uyumlu hale dönüştürün).
- Hafta 11
- SCI-Kit Learn ile a priori algorithması ve birliktelik kural çıkarımı
- Bölütleme-Kümeleme örnekleri ve kodları (clustering)
- k-Fold Cross Validation ve Leave One Out yöntemleri
- Linear Modeller ve Linear Regression, Polynomial Regression
- Bölütleme (kümeleme) problemlerine genel giriş ve kullanım alanları
- Bölüm 5.1: K-Orta Algoritması (K-Means)
- Kavrama ve algoritmaya giriş
- Rassal Başlangıç Tuzağı
- K-Means algoritmasında küme sayısına karar verilmesi
- Python ile K-Means algoritmasının kodlanması
- Test : K-Means
- Bölüm 5.2: Hiyerarşik Bölütleme
- Hiyerarşik kümeleme kavramına giriş
- Dendrogram kavramı ve hiyerarşik kümeleme kullanımı
- Python ile Hiyerarşik kümeleme
- Test: Hiyerarşik Bölütleme / Kümeleme
- Bölüm Özeti ve Modellerin Karşılaştırması
- Hafta 12 : Birliktelik Kural Çıkarımı
- Bölüm 6.1: Apriori Algoritması
- Birliktelik Kural Çıkarımına ve Algoritmaya giriş ve algoritmanın çalışması
- Algoritmanın Python ile kodlanması
- Bölüm 6.2: Eclat Algoritması
- Algoritmanın çalışması
- Bölüm 6.1: Apriori Algoritması
- Hafta 13:Pekiştirmeli / Takviyeli Öğrenme (Reinforced Learning)
- Pekiştirmeli / Takviyeli Öğrenme (Reinforced Learning) Kavramına Giriş
- A/B Testi ve Çok Kollu Haydut Problemi (Multi Armed Bandit)
- Bölüm 7.1. UCB
- Üst Güven Sınırı (Upper Confidence Boun, UCB) Yaklaşımı
- Rasgele Örnekleme Yaklaşımı, Probleme ve UCB Algoritmasına giriş
- UCB Algoritmasının Python ile kodlanması
- Bölüm 7.2. Thompson Örneklemesi (Sampling)
- Thompson Sampling Yaklaşımı
- Algoritmaların Karşılaştırılması (UCB ve Thompson S)
- Python ile kodlama
- Hafta 14 Derin Öğrenme:
- Derin Öğrenme (Deep Learning)
- Yapay Sinir Ağlarına Giriş (Artificial Neural Networks)
- Aktivasyon Fonksiyonları (Activation Functions)
- Katman Kavramı ve Çalışan bir Yapay Sinir Ağı
- XOR Problemi ve Çözüm olacak YSA tasarımı
- YSA Nasıl Öğrenir ? : Perceptron (Algılayıcı) kavramı
- Gradyan Alçalış (Gradient Descendent)
- Yığın (Batch), Stokastik (stochasftic) ve Mini Yığın (mini Batch) gradyan alçalış (gradient Descendent)
- İleri yayılımın (forward propagation) ve geri yayılımlı (backward propagation) ağlar
- Derin Öğrenme Kütüphaneleri ve karşılaştırma
- Keras, Caffe, TensorFlow, DeepLearning4J ve PyTorch karşılaştırması
- Keras: https://keras.io
- TensorFlow: https://www.tensorflow.org
- Caffe : http://caffe.berkeleyvision.org
- DeepLearning4J : https://deeplearning4j.org
- PyTorch : https://pytorch.org
- Keras, Caffe, TensorFlow, DeepLearning4J ve PyTorch karşılaştırması
- Derin Öğrenme Kütüphanelerinin kurulması
- Theano : pip install –upgrade –no-deps git+git://github.com/Theano/Theano.git
- TensorFlow: conda create -n tensorflow python=3.5
- Keras : pip install –upgrade keras
- TensorFlow: pip3 install –upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.8.0-py3-none-any.whl
- Veri Kümesi ve Problemin Tanıtımı
- Python ile kodlama
- Derin Öğrenme (Deep Learning)
Duyurular:
Proje duyurusu:
Veri odaklı programlama dersi proje duyurusu (minimum olması gerekenler)
- Proje önerisi en geç 1 Aralığa kadar yollanacak : Kısa problem tanımı ve veri tanımı (nasıl erişileceği ve verinin detayları):
- hangi tarihte sunum istendiği belirtilecek (15 aralık veya 22 aralık veya fark etmez)
- Projeler tek kişi olacak, kendi problemleriniz (çalıştığınız yer ile ilgili olması tercih sebebidir). Şayet olmuyorsa kaggle.com’dan problem seçip önerilebilir.
- Teslim edilecekler (teslim için 14 Aralık son tarih) : 1Proje raporu + 2 Sunum + 3 Çalışan kod (CRISP-DM metodolojisi kullanılacak)
- Sunum (10 + 5 dakika) : problemin tanımı, çözümün faydaları, kodun demosu (çalıştırılması)
- Sunumlar tarihi :15 ve 22 Aralık olacak (isteklere öncelik verilecek)
Recent Comments