Monthly Archives: September 2018

Business Analytics 2018

İstanbul City University

Course Name: Business Analytics

Course Code: MBA 548

Language of Course: English

Credit: 3

Course Coordinator / Instructor: Şadi Evren ŞEKER

Contact: businessA@sadievrenseker.com

Schedule: Sat 13.00 – 16.00

Course Description:  This course is an introduction level course to data analsis, specialized on business processes and real life cases.

This course will uncover you of the information analytics hones executed in the business globe. We will investigate such magic ranges Concerning illustration the explanatory process, how information will be created, stored, accessed, what’s more entryway the association meets expectations with information and makes nature’s turf in which analytics could prosper. The thing that you take in this span will provide for you An solid framework On the whole those territories that backing analytics What’s more will assistance you on preferred position yourself to victory inside your association. You’ll create abilities What’s more An viewpoint that will settle on you All the more profitable speedier Also permit you should turned a profitable advantage should your association. This span additionally gives a support for setting off deeper under propelled investigative Furthermore computational methods, which you bring a chance to investigate On future courses of the information Analytics for benefits of the business specialization.

This course is outlined with have wide bid over Numerous sorts from claiming learners. Anybody who is looking should get an Comprehension about how benefits of the business analytics is really performed for genuine associations will profit. This course will be essential pointed toward experts who have a bachelor’s degree or A percentage introduction of the benefits of the business reality. The individuals for specialized foul degrees or a greater amount propelled business degrees like a mba will discover certain ranges simpler will absorb, What’s more might get most extreme esteem from those span. However, Indeed undergraduates to non-technical fields or propelled high-school people seeking after internships will have the capacity on take after mossycup oak ideas Also get quality from the span. Finally, Significantly experts who bring required profound encounters over systems will inclined discover esteem in this course.

Course Objective: 

1.     Understanding of real life cases about data

2.     Understanding of real life data related problems

3.     Understanding of data analysis methodologies

4.     Understanding of some basic data operations like: preprocessing, transformation or manipulation

5.     Understanding of new technologies like bigdata, nosql, cloud computing

6.     Ability to use some trending software in the industry

7.     Introduction to data related problems and their applications

Method:

List of course software:

·       Excel,

·       KNIME,

·       RapidMiner

·       MS-SQL, SSAS, SSIS

·       Oracle Database, ODI, BI

·       Apache Cassandra

This course is following hands on experience in all the steps. So attendance with laptop computers is necessary. Also the software list above, will be provided during the course and the list is subject to updates.

Grading

 

Reading, Attendence and Discussions: 30%

Homeworks: 30%

Project: 40%

Course Content:

Week 1: Introduction to Data, Problems and Real World Examples:

Some useful information:

DIKW Pyramid: DIKW pyramid – Wikipedia

CRISP-DM: Cross-industry standard process for data mining – Wikipedia

Slides from first week:week1

Week 2: Introduction to Descriptive Analytics

Splitting data into sets : Training, Test and Validation Sets

First Problem Type: Classification

Slides from second week: week 2

Homework #1 (Due Date: Nov. 23, 2017) : Download the data set of customers (click to download). In the data set you can see, each record is holding the salary and age of the customer and their action in the store (buy: they buy a product, notbuy: they don’t buy any product). Create your own Knime data flow and predict the salary of people below:

Salary Age
51
22
33

Write a brief explanation for your submission (which algorithm did you use, what are the results you have achieved and how)

Analytical Problems and Analysis
Business Model, conceptualization and frameworks
Information – Action Value Chain
Data Capturing and data sources: Thinking in Data
Analytical Technologies: Data Storage
Analytical Technologies: Big Data, Cloud and Evolution of Web
Analytical Technologies: Relational Databases
Analytical Technologies: Virtualization, In Memory and NoSQL
Analytical Technologies: Introduction to SQL: Simple Queries
Analytical Technologies: SQL – 2: Multiple Tables, Sub Queries
Data Mining and Data Science Basics 1: Classification Problems
Data Mining and Data Science Basics 2: Regression and Prediction
Understanding Error
Business Intelligence Tools and Applications

 Knime WorkFlows:

Ensemble Fusion Workflow (click to download data and knime workflow)

 

Announcement about Projects

presentations are at 22 December

  1. Project proposal will include : Project idea and the data briefly and if you want to go within a group or not and if it is a group than provide the names and ids of group members (2 paragraphs), will be sent to the course email until next week 1stof december.
  2. Deliverables (21stof December) : Knime workflow, report (including your approach and solution together with project definition and data description), presentation
  3. Presentations will be about 5 – 10 minutes (22ndof December): Explain your problem, describe your data set and demonstration of your solution and benefits , from the business approach. (in minimum 3 slides and a knime workflow (of course working)).
  4. businessA@sadievrenseker.com

IAN 502 Veri Odaklı Programlama 2018

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:

  1. İlk kez programlamaya girecek katılımcılara programlamanın temellerini öğrenebileceği bir ortam sağlamak.
  2. Temel veri yapılarına giriş yapmak
  3. Nesne yönelimli programlamaya giriş yapmak
  4. Python ve kütüphanelerini kullanarak tanımlayıcı (descriptive) ve tahminci (predictive) veri analizi yöntemleri geliştirebilmek
  5. Python ve kütüphanelerini kullanarak görselleştirme projelerini yapabilmek
  6. 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ş
  • 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.

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)
      • Hata ölçüm yöntemleri : Root Mean Square Error (RMSE), R2 Score , RAE, MAE
      • K-Means Algoritması ve Kodlaması
    • 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ı
    • Bölüm 6.2: Eclat Algoritması
      • Algoritmanın çalışması
  • Hafta 13:Pekiştirmeli / Takviyeli Öğrenme (Reinforced Learning)

  • 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
      • 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

Duyurular:

Proje duyurusu:

Veri odaklı programlama dersi proje duyurusu (minimum olması gerekenler)

  1. 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ı):
    1. hangi tarihte sunum istendiği belirtilecek (15 aralık veya 22 aralık veya fark etmez)
    2. 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.
  2. Teslim edilecekler (teslim için 14 Aralık son tarih) : 1Proje raporu + 2 Sunum + 3 Çalışan kod (CRISP-DM metodolojisi kullanılacak)
  3. Sunum (10 + 5 dakika) : problemin tanımı, çözümün faydaları, kodun demosu (çalıştırılması)
  4. Sunumlar tarihi :15 ve 22 Aralık olacak (isteklere öncelik verilecek)