microsoft power bi data science report python machine learning data mining

Merhaba iyi günler.

Bugün; popülaritesi gün geçtikçe yükselen, birçok makine öğrenmesi-yapaya zeka temelli uygulamalarda açık ara ön planda olan, veri madenciliği-bilimsel analiz çözümlemelerinde esnek çözümlemeler sunan, hızlı ve çevik yapısı ile kullanıcıların gözdesi olarak yer edinmiş Python ile Power BI üzerindeki çözümlemeleri inceliyor olacağım.

Şimdiden iyi okumalar.

Temelleri 1990 yılında Amsterdam’da  Guido Van Rossum tarafından atılmış ve adını Guido Van Rossum’un çok sevdiği Monty Python adlı altı kişilik komedi grubunun Monthy Python’s Flying Circus gösterisinden almıştır.

Pythonyorumsal yönü yüksek,nesne yönelimli,çevik yönlere sahip,modüler yapıda ve etkileşimli olan yüksek seviyeli bir dildir.(Baskın Interpreter (Yorumlayıcı) dil özelliği gösterir)

Yüksek seviyeli bir dil yapısı bulunduğu için kullanımı,öğrenimi ve uygulaması diğer dillere göre bir nebze daha kolaydır.Az kod kullanarak hızlı bir şekilde çözümlemeler gerçekleştirilebilir.(Diğer dillere nazaran Low Code Technology yaklaşımına bir adım daha yakın) 

Veri madencliği, yapay zeka uygulamaları, derinlemesine analiz, bilimsel hesaplama içeren uygulamalar, nesnelerin interneti çalışmaları (IOT-Internet of Things), web uygulamaları içerisinde servis geliştirme vb… çoğaltılabilir birçok çözümleme için kullanılabilir.

Türkiyede akademik olarak derinlemesine Python dili üzerinde analiz gerçekleştirmiş olan İTÜ Fizik bülümü Araştırma Görevlisi ve Miletos-Kurucusu Berkin Malkoç “Temel Bilimler ve Mühendislik Eğitiminde Programlama Dili Olarak Python” başlıklı makalesindeki çıkarımları (Sayfa 201);

  • Açık kaynaklı.Kullanmakta özgürsünüz, bir şirkete bağlı olmak zorunda değilsiniz.Üstelik ücretsiz
  • Yapısı sade.Okuması ve yazması çok kolay.Çok hızlı öğrenilebiliyor.
  • “Dinamik” dil.Yorumlayıcı çalışıyor.Çok karmaşık işlemleri basit komutlarla yaptırabilirsiniz.
  • Etkileşimli.Yorumlayıcı penceresinde art arda komutlar verip işlemler yapabilirsiniz.
  • Aklınıza gelen bir fikri çabucak bir program oluşturarak deneyebilirsiniz.
  • OOP’yi (Object Oriented Programming-Nesneye Yönelimli Programlama) destekler ama mecbur tutmaz.Basit işler için Class (Sınıf) tanımlamak zorunda değilsiniz.
  • Genel kullanım alanı geniş ve yazılım sanayiinde çok seviliyor.Bu sayede sürekli geliştiriliyor.
  • Öğretici kaynak bulmak kolay.
  • Bilimsel araştırmalarda çok yaygın olarak kullanılıyor. Çeşitli bilim dallarında kullanılmak üzere özel hazırlanmış kütüphaneleri var.Bu kütüphaneler kendini bu işe adamış profesyonel yazılım ekipleri tarafından hazırlanıyor, yoğun şekilde test ediliyor, ve yine açık kaynaklı.
çeşitli fikirler edinmemizi sağlıyor.

Popülerliği ile günümüzde tanınmış olan; BitBucket, Dropbox, Google, Instagram, Spotify, Reddit, Youtube ve WikiPad uygulamaları Python ile geliştirilmiş projelere (iç geliştirmelere-desteklere) örnek olarak gösterilebilir.

Python; Unix, Linux, Mac, Windows, Amiga, Symbian gibi birçok işletim sistemi ile uyumludur ve desteği mevcuttur.

Ek:İşletim sistemi ve sürüm incelemelerine link üzerinden erişebilirsiniz. 

Popülaritesi günden güne katlanarak artmasına karşın Python diline yönelik araçlar, çözümlemeler (Hazır kütüphaneler vb.) ve dokümante edilmiş kaynaklarda bir o kadar hızlı artmaktadır.

Mevcut kaynak ve çözümlemelere göz gezdirdiğimizde;

Geliştirme ortamlarını incelediğimizde, geliştiriciler arasında popüler olan (En tercih edilen) Python uygulama geliştirme ortamlarına (IDE- Integrated Development Environment) örnek olarak;

Geliştirme ortamları üzerinde kullanılan;
  • Web Uygulamaları geliştirmek için;
  1. Pyramid ve Django web çatıları (Web Framework) kütüphaneleri-paketleri
  2. Flask ve Bottle mikro web çatıları (Micro Web Framework) kütüphaneleri-paketleri
  3. Plone ve Django CMS gibi ileri seviye içerik yönetim sistemleri (CMS-Content Management Systems ) kütüphaneleri-paketleri
  4. CherryPy nesneye yönelik programlama geliştirme web çatısı kütüphanesi-paketi 
  5. Tornado gerçek zamanlı (RTC-Real Time Computing) güncellemeleri daha kullanışlı-performanslı hale getiren web sunucusu
  • Bilimsel ve nümerik hesaplamalar için;
  1. SciPy, NumPy, Matplotlib, SageMath istatiksel analiz ve matematiksel hesaplama kütüphaneleri-paketleri
  2. IPython ile programlamaya ve görselleştirmeye imkan sağlayan, basitçe düzenleme ve kayıt gerçekleştirilebilen bir komut işleyici araç çubuğu-paneli (Shell
  • Yapay zeka uygulamaları için;
  1. Deepy, Caffe, OpenCV, Theano, TensorFlow, Sci-kit Learn, Mlpy, NLTK, NeuroLab, PyMC altyapı, analiz ve esnek çözümleme kütüphaneleri-paketleri
  2. Kreas yüksek seviyeli sinir ağı kütüphanesi-paketi
  • Nesnelerin interneti (IOT) için;
  1. Raspberry Pi temel altyapısı
  2. MQTT makinalar arası bağlantı protokolü
  3. Zerynth IOT ve Endüstri 4.0 uygulamaları içeren çatı kütüphanesi-paketi
  1. PyData veri analizi-hesaplama kütüphanesi-paketi
  2. Pandas veri analizi ve modellemesi kütüphanesi-paketi
  3. Orange veri analizi ve görselleştirmesi kütüphanesi-paketi
araçları-paketleri-kütüphaneleri çözümlemlerimiz için kullanabileceklerimizden bazıları-birkaçı olarak örnek gösterilebilir.
 
Genel olarak Python standart kütüphaneleri HTML, XML, JSON, Email-Processing, FTP, IMAP  alt yapılarını ve birçok internet protokolünü-alt yapısını destekler.
 
Python’a yönelik ücretsiz video eğitim kaynaklarına;
  1. Hiç Bilmeyenler için Python
  2. Python ile Nesne Tabanlı Programlama
  3. Python Programlama Temelleri
  4. Class Central Big Python Free Course Series (Önerilir) linkler üzerinden göz gezdirebilirsiniz.
Elbette bunlar göze çarpanlardan birkaçı.
 

Ek olarak;

içerik sağlayıcıları ve etkinlik merkezleri genel manada faaliyetleriniz için çözümleme veya fikir inşaası konusunda yardımcı olabilir.

2-Power BI ve Python

Python’ın veri analizi, istatistiksel hesaplama, derin öğrenme, yapay zeka uygulamaları gibi ileri seviyeli çözümlemelerde çok güçlü bir seçenek olduğu (Diğer dillere nazaran) bariz şekilde ortada.

Fakat sonuca ulaşmak problemi ortadan kaldıran çok büyük bir adım olsa da sonucun farklı açılardan efektif incelenmesi, ele alınması ve yorumlanması bir diğer tamamlayıcı adım olarak görülmektedir.

Yoğun analiz işlemlerinin gerçekleştiği işlemler sonucu oluşan çıktıların tam manası ile anlam kazanabilmesi için bir raporlama merkezi üzerinde hassas şekilde incelenmesi gerekmektedir.

Python üzerinde oluşturulmuş veri işleme merkezi yapısına entegre bir şekilde eş zamanlı olarak çalışacak ve anlık sonuçlara farklı açılarda çözümlemeler sunabilecek raporlama merkezi desteği oluşturmak ileri düzey kazanımlar sağlayabilir.

Esnek bir şekilde tüm platformlar üzerinden eş zamanlı veri işleme,analiz ve görselleştirme deneyimi ile Power BI sunduğu Python konnektörü (Python Betiği) ile iyi bir raporlama merkezi çözümü olarak görülmektedir. 

R desteği üzerinde sunulan çözümlemeler gibi dilerseniz hesaplanmış verileri rapor veri kümelerinize dahil edebilirsiniz, dilerseniz verileri işlemek-dönüştürmek ve görselleştirmek için Python’ı kullanabilirsiniz.

3-Python Uygulaması

Power BI üzerinde Python ile bir demo oluşturmak için hızlıca sistemimize Python’ı kuralım.

python.org resmi sitesi üzerinden sisteminiz adına uygun sürümü indirerek hızlı bir şekilde kurulum gerçekleştirebilirsiniz. 

microsoft-power-bi-python-ide-setup

Python kurulum işlemini tamamladıktan sonra Power BI üzerinde;

File (Dosya) / Options & Settings (Seçenekler ve Ayarlar) / Options (Seçenekler) içerisinde Python Scripting (Python Komut Dosyası) sekmesindeki işaretli olan alanları düzenlemeniz gerekmektedir.(Hangi Ana Dizin-Hangi IDE)

*Bu düzenleme sisteminizdeki kurulu olan opsiyonel IDE seçeneklerine bağlıdır. 

microsoft-power-bi-python-settings

Visualization Pane (Görselleştirme Paneli) üzerindeki Python Script öğesini rapor sayfasına dahil ettiğimizde rapor tasarım sayfası içerisinde bir görselleştirme öğesi ve tasarım alanı üzerinde Script Editor Pane (Senaryo Editorü Paneli) açılır.  

microsoft-power-bi-python-script-editor-general

Rapor tasarım sayfası üzerine eklenen görselleştirme öğesi; Script Editor Pane üzerinde çalıştırılan kod parçacığı sonucu oluşturulan görsel çıktısına ait tasarım alanını belirtmektedir.

Bu görsel öğesi iç içe iki boyutlandırma alanından oluşmaktadır.

Dış alan rapor içerisindeki kapladığı görsel alanı, iç alan ise görsel boyutunu boyutlandırmak için kullanılmaktadır.

Visualization Pane üzerinde görsele ait ek ayarlar bulunmaktadır. (Title, Bacground, Broder vs.)

microsoft-power-bi-python-visual-edit

Script Editor Pane üzerinde bulunan öğeler soldan sağa;

microsoft-power-bi-python-script-editor-pane
  • Run Script (Komut Çalıştır): Script Pane üzerine bulunan kod bloğunu çalıştırıp görselleştirme ve veri işleme işlemini gerçekleştirmenizi sağlar.
  • Script Options (Komut Seçenekleri): Script Pane üzerinde bulunan kod çalıştırma-işleme işlemleri ile ilgili ayarlamaları düzenlemenizi sağlar.
microsoft-power-bi-python-script-editor-settings
  • Edit Script in External IDE (Dış Uygulama-IDE ile Komut Düzenle): Script Pane üzerinde bulunan kod bloğu ve detaylarını IDE ile düzenleyebilmeniz için doküm çıktısı sağlar.
microsoft-power-bi-python-script-editor-doc
  • Expand the Script Pane (Komut Panelini Genişlet-(Gizle-Göster)): Rapor üzerinde kolay çalışabilmek adına anlık olarak Script Pane gizle-göster işlemini gerçekleştirmenizi sağlar.
Python Script görselini anlık olarak test etmek için mini bir kod bloğu üzerinde yıllara göre satış değerlerinin görselleştirmesini uygulayalım.

İlgili kod bloğu; 
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

x = dataset.Yil
y = dataset.Toplam_Satis

plt.bar(x, y, color=“green”)
plt.show()

İlgili kod bloğu üzerinde, analiz işlemleri içerisinde kullanacağım veri değerlerimi Python Visual öğeme ait Visualization Pane altındaki Values alanına eklemem gerekmektedir.  

microsoft-power-bi-python-script-editor-code

Kod bloğumu Script Editor üzerinde çalıştırmadan önce ilgili kullanacağım kütüphanelerimi yerel sistemime dahil etmem gerekmektedir.

Command Prompt (Komut İstemcisi) üzerinden yerel sistemime kod bloğum içerisindeki kullanacağım kütüphaneleri sırası ile;

  • py -m pip install matplotlib
  • py -m pip install numpy
  • py -m pip install seaborn 

 dahil ediyorum.

microsoft-power-bi-python-data-science

Kod bloğumu çalıştırdığımda ise;

microsoft-power-bi-python-visual-output

yıllara göre satış tutarlarımın kırınımını elde edebiliyorum.

Veri yönetimi bazlı olarak işlemlerimizi iki şekilde gerçekleştirebiliriz.

  1. Python üzerindeki hesaplama ve analizlerin dış ortama herhangi bir dosya türünde aktarılıp Power BI’ın bu dosya verilerine erişip kullanması. 
  2. Doğrudan Power BI üzerindeki verilerin Python Script paneli yardımı ile çözümlenip-işlenip kullanılması.(Python üzerinde test-kontrol işlemleri önerilmektedir.)

Lokal görselleştirmeden ziyade Python Script Pane üzerinde kısmı işlemlerle verilerimizi işleyip çıkarımlara ulaşmaya çalışalım.

Python Eğiğim setleri içerisinde çokça karşılaştığınız ve aşina olduğunuz Forest Fires örneği üzerinden mini bir demo oluşturalım.

Forest Fires dosyasına buradan ulaşabilrsiniz.

Kısaca; Forest Fires dosyası içerisinde orman yangınlarına neden olan bazı parametreler ve değerleri bulunmaktadır.

Öncelikle ilgili yardımcı paketlerimi ve kaynak dosyamı, oluşturacağım analiz yapısı içerisinde kurgulayayım.

microsoft-power-bi-python-data-science-command-prompt

>>> import pandas as pd

>>> from sklearn.model_selection import train_test_split

>>> from sklearn.datasets import load_iris

>>> data=pd.read_csv(‘forestfires.csv’)

>>> data.head()

Sonrasında sistem üzerinde eğitim ve test verilerimin yapısını belirleyeyim.(Birbirine oranları) 

Bu oranları %70-0.7 eğitim verisi %30-0.3 test verisi olarak belirledim. 

microsoft-power-bi-python-data-science-command-prompt-train-base

>>> y=data.temp

>>> x=data.drop(‘temp’,axis=1)

>>> x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3)

Eğitim verilerimi kontrol ettiğimde;

microsoft-power-bi-python-data-science-command-prompt-train-ex

>>> x_train.head()

>>> x_train.shape

Test verilerimi kontrol ettiğimde;

microsoft-power-bi-python-data-science-command-prompt-test-ex

>>> x_test.head()

>>> x_test.shape

çıktılarına ulaşıyorum.

Bu kırınımdan sonra belirlenen algoritmik çıkarımlar ile süreçler devam ettirilir.

Dilerseniz Jasmine Daly gibi çeşitli Regresyon Analizi uygulamaları ile çıkarım çalışmaları gerçekleştirebilirsiniz dilerseniz Rafi Barash gibi örneklem yapısını farklı bir açıdan kurgulayabilirsiniz.Yapının ilerleyen kurgusunun tasarımı tamamıyla ulaşmak istediğiniz çözüm çıktısına bağlı olmaktadır. 

Ek olarak bilgilerinizi tazelemek, çıkarım oluşturmak ve yeni fikirler sağlaması adına aşağıdaki link üzerinden dokümana zaman ayırıp göz atmanızı öneririm. 

Gelecek yazılarda görüşmek üzere.

İyi çalışmalar…

, ,

İlgili Yazılar