Skip to content

acetinkaya/yapayzeka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

“Makineler Düşünebilir mi ve Nasıl Düşünebilir? (Arf, 1959)”


Teknoloji, Yazılım ve Algoritma Geliştirmeyi Gençlere öğretmemiz lazım !!!!!!!

Geleceğin Bilim İnsanları için geleceğin yazılım ile olacağının önemi vurgulanmalı !!!!

Sanayinin ihtiyacı olan yazılımcı sınıtısı giderek artacak... Peki Çözüm Ne olacak ?? Çözüm Ne olmalı ??

Girişimcilik --> Günümüzde ikiye ayrıldı. 1.-> Yazılım İçeren 2.-> Yazılım İçermeyen

Öğrencilik günümüzde ikiye ayrıldı. Günümüz mezunları ile geçmiş mezuniyetler arasında çok fark olacak ... Bu işin bir noktasından Başlanılmalı ...

Akademik hayatının birinci önceliği diploma verme kurumu olmadığı sektör ile öğrencilerimiz arasında köprü olmasının önemini vurgulanmalıdır.

Bu köprü sürecinde eğerki temellerinizi yazılım - algoritma - programlama ile desteklemeyenler platform oluşturamayacaktır.

Bu platformu kendi algoritmaları ile destekleyenler yeni meslekler ortaya çıktıkca adapte olabileceklerdir.

Yazılım'da inovasyon-->

  1. Yaşamınızın merkezinde algoritma geliştirmeyi almak önemlidir,
  2. Sisteme entegre edilebilecek şekilde algoritma geliştirilmesi önemlidir,
  3. Fikri Mülkiyet Haklarınızı (TPMK Fikri ve Sınai Mülkiyet Hakları) almak ve korumak önemlidir.

Bu eğitimler ile birinci hedef: Yapay zeka alanında bir farkındalık oluşturarak sizlerin sıfırdan ileri seviyeye veya teorik olarak öğrenip ilerletemediğiniz yazılım geliştirme becerinizi arttırmaktır.

Bu eğitimler ile ikinci hedef: Klasik konu algısından sıyrılarak uygulamalar için yapay zeka tabanlı algoritma geliştirmektir.

Belki başka bir zamanda başka bir konumda bu YZ çalışmaları noktasında uygulama geliştirmek için zamanınız olmamış olabilir --> Bir yerden başlamanız lazım. Eğerki şuan buradaysak ve YZ alanında deneyim kazanmaya başlamak istiyorsak doğru bir konumdasınız :D Önemli olan başlamak - devamdır...


İstanbul Büyükşehir Belediyesinin İBB Açık Veri Portalında bulunan gerçek veriler ile Yapay Zeka Algoritmalarının Bütünleştirilerek Tümleşik bir sistemin ortaya çıkarılması

Amaç:

  • Yapay Zeka çalışmalarında Türkçe literatürün önemi
  • Yapay Zeka çalışmalarında Türkçe veri setlerini işleyebilme önemli
  • Yapay Zeka ile gerçek verileri işlerken karşılaşılan sorunlara çözümler üretebilme
  • Oluşan çözümlerin gerçek hayat verileri olarak nasıl kullanılabileceği
  • Yapay Zeka kapsamında bilinç ve farkındalık oluşturabilmek
  • Yaşadığımız şehrin verilerine ortak çözümler geliştirebilmek - üretebilmek
  • Türkçe Açık Kaynak Veri Setleri Üzerinde çalışma
  • Kurumlarımızın verilerine akademinin işbirliği - aracılığı ile çözümlerin ortaya koyabilmesi
  • Ülkemizin Açık Kaynak Veri Paylasımı noktasındaki çalışmaları dünyaya tanıtma ve duyurma
  • Açık kaynak verinin işlenmesinde işlem aşamaları
  • Etkileşimli çalışma ile Yapay Zeka algoritmalarının sistemsel bütünlüğünü öğrenme
  • Yapay Zeka alanında sürdürülebilirlik sağlanması
  • Yapay Zeka çalışmalarında gelişimin öğrenerek sağlanabilmesi

Eğitimimize başlamadan önce Yazılım, Algoritma, Programlama noktasında önemli olayların tarihsel sıralaması

alternatif metin alternatif metin alternatif metin alternatif metin


Giriş: Yazılım Geliştirmede Algoritma ve Programlamanın Önemi

alternatif metin


alternatif metin


<--Programlama Dillerine Matematiksel İfadelerin Önemi

alternatif metin


<--Programlama Dillerine Kontrol Yapıları ve Akış Şeması-->

C++; if / if-else / switch-case

C#; if/ if-else / swictch-case

Python; if / if-elif-else / switch-case

Java; if / if-else / switch-case

alternatif metin


<--Programlama Dillerine Göre Döngü Tipleri ve Akış Şeması -->

C ve C++; while, do while ve for

C#; while, do-while, for ve foreach

Python; While, for, range, len ve in

Java; while, do-while ve for

alternatif metin


Bir Programlama Dili Öğrenimininde Akış Şeması

alternatif metin


1. Bölüm -> Çalışma Ortamının Hazırlanması - GOOGLE COLAB ve GOOGLE DRIVE

1.1. İstanbulun İlçeler Genelinde Günlük Su Tüketimlerinin Yapay Zeka Algoritmalarıyla İşlenerek Analizler Ortaya Çıkarılması Veri Seti Kaynağı : İBB Açık Veri Portalı, Veri Seti Linki-->> alternatif metin

Referans: İBB İSKİ (2024). İlçe Bazında Su Tüketim Miktarı (IBB ACIK VERI PORTALI; Version V2) [Veri seti]. İstanbul Büyük Şehir Belediyesi İBB Açık Veri Portalı. https://data.ibb.gov.tr/dataset/ilce-bazinda-su-tuketim-miktari (Erişim Tarihi: 05.05.2024)


1.2. İstanbul Geneli Kapsamında oluşan trafik indeksinin Yapay Zeka Algoritmalarıyla İşlenerek Analizler Ortaya Çıkarılması Veri Seti Kaynağı : İBB Açık Veri Portalı, Veri Seti Linki-->> Veri Seti Linki-->> alternatif metin

Referans: İBB Ulaşım Dairesi Başkanlığı (2024). İstanbul Trafik İndeksi (IBB ACIK VERI PORTALI; Version V2) [Veri seti]. İstanbul Büyük Şehir Belediyesi İBB Açık Veri Portalı. https://data.ibb.gov.tr/dataset/istanbul-trafik-indeksi (Erişim Tarihi: 25.05.2024)


1.3. İstanbulun Saatlik Toplu Ulaşım sistemindeki yolculuk ve yolcu verilerinin Yapay Zeka Algoritmalarıyla İşlenerek Analizler Ortaya Çıkarılması Veri Seti Kaynağı : İBB Açık Veri Portalı, Veri Seti Linki-->> Veri Seti Linki-->> alternatif metin

Referans: İBB BELBİM A.Ş. (2024). İlçe Bazında Su Tüketim Miktarı (IBB ACIK VERI PORTALI; Version V2) [Veri seti]. İstanbul Büyük Şehir Belediyesi İBB Açık Veri Portalı. https://data.ibb.gov.tr/dataset/hourly-public-transport-data-set (Erişim Tarihi: 01.06.2024)


1.4. İstanbulun Çöpünden Geri Kazanım Miktarı ve çöpten elde edilen enerjinin Yapay Zeka Algoritmalarıyla İşlenerek Analizler Ortaya Çıkarılması Veri Seti Kaynağı : İBB Açık Veri Portalı, Veri Seti Linki-->> Veri Seti Linki-->> alternatif metin

Referans: İBB Çevre Koruma ve Kontrol Dairesi Başkanlığı (2024). Atıktan Geri Kazanım Miktarları (IBB ACIK VERI PORTALI; Version V2) [Veri seti]. İstanbul Büyük Şehir Belediyesi İBB Açık Veri Portalı. https://data.ibb.gov.tr/dataset/atiktan-geri-kazanim-miktarlari (Erişim Tarihi: 15.06.2024)


1.5. İstanbulun Trafiğinden elde edilen verilerle günlük araç sayısı, araçların türleri, araçların ortalama hızları ve istikamet bilgilerini Yapay Zeka Algoritmalarıyla İşlenerek Analizlerin Ortaya Çıkarılması Veri Seti Kaynağı : İBB Açık Veri Portalı, Veri Seti Linki-->> Veri Seti Linki-->> alternatif metin

Referans: İBB İSBAK A.Ş. (2024). Görüntü İşleme Yoluyla Elde Edilen Araç Verisi (IBB ACIK VERI PORTALI; Version V2) [Veri seti]. İstanbul Büyük Şehir Belediyesi İBB Açık Veri Portalı. https://data.ibb.gov.tr/dataset/goruntu-isleme-yoluyla-elde-edilen-arac-verisii (Erişim Tarihi: 25.06.2024)


Bölüm 1.6'ya geçmeden önce sistemimiz bağlamında kullanacağımız ortamların hazırlığı;

1. Github

2. Google Drive

3. Google Colab


1.6. Aşama -> İnternette Bulunan Veri Seti Dosyalarını Bilgisayarınızda Masaüstünde "YapayZekaIstanbul" ismiyle acacağınız yeni klasöre yüklemesini - kaydedilmesi işlemlerini gerçekleştiriniz.

alternatif metin


1.7. Aşama -> Google Drive Sistemini Aktif Edin

alternatif metin


1.8. Aşama -> Google Drive Bağlantı Süreçlerini Gerçekleştirin

alternatif metin


1.9. Aşama -> Google Drive Alanında "YapayZekaIstanbul" ismiyle yeni klasör oluşturun

alternatif metin


1.10. Aşama -> Google Drive-> YapayZekaIstanbul klasörü içerisie içerisine "VeriSetleri" ismiyle yeni bir klasör oluşturup indirdiğiniz veri setlerini bu klasöre yüklemesini yapınız.

alternatif metin


1.11. Aşama -> Veri setlerinin dosya uzantılarının farklı olması sistemin ilk kurgusu noktasında dezavantaj oluşturmaktadır. *.csv formatına veri setlerini ayarlamalıyız.

alternatif metin


(1. ARA ) VERİ SETİ BULMA ve DRIVE ALANINA YÜKLEME İŞLEMLERİ TAMAMLANMIŞTIR. ŞİMDİ ÇALIŞMA ORTAMININ HAZIRLANAMSI İŞLEMLERİ GERÇEKLEŞTİRİLECEKTİR.


2. Bölüm -> Çalışma Ortamının Hazırlanması - GOOGLE COLAB ve GOOGLE DRIVE

2.1. Aşama -> GOOGLE COLAB ve GOOGLE DRIVE YAPILANDIRMASI

alternatif metin

alternatif metin

alternatif metin

alternatif metin

Colaboratory -->

alternatif metin

alternatif metin

alternatif metin

alternatif metin


2.2. Aşama ->

alternatif metin

alternatif metin

alternatif metin


2.3. Aşama ->

alternatif metin


2.4. Aşama ->

alternatif metin


2.5. Aşama ->

alternatif metin


2.6. Aşama ->

alternatif metin


2.7. Aşama ->

alternatif metin


2.8. Aşama ->

alternatif metin


(2. ARA ) GOOGLE DRIVE ve GOOGLE COLAB SİSTEMLERİNİN BAĞLANTISI GERÇEKLEŞTİRİLMİŞTİR. ŞİMDİ YAPAY ZEKA (YZ) KURGUSUNUN OLUŞTURULMASI ve KODLANMASI SÜRECİNE GEÇİLECEKTİR!!


Bölüm 3. ->

3.1. Aşama -> Bu aşamada Google Colab'a Google Drive Bağlantısı yapılarak verilerin çekileceği drive adresine erişim izni verilmektedir. Aşağıdaki 2 satır kod ile bağlantı işlemi kurulmadan önce örnek yazım ve kod çıktısı alma işlemini tamamlıyoruz.

        print("Merhaba, Avcılar!") 

ve

    import sys
    print(sys.version)

alternatif metin

kodları ile bağlantı kurgu sürecine başlıyoruz.

    from google.colab import drive
    
    drive.mount('/content/drive')

alternatif metin


3.2. Aşama -> Bu aşamada Google Drive'da ki klasöre erişim linkini işleme alıyoruz. Aşağıdaki 3 satır kod ile bu işlem gerçekleştirilmektedir.

import os

os.chdir('/content/drive/My Drive/YapayZekaIstanbul')

!pwd

alternatif metin


3.3. Aşama -> Veri seti içerisindeki excel dosyalarını *.csv formatına çevirim işlemini gerçekleştiriyoruz.

    import pandas as pd

    VeriSetiYolu = '/content/drive/My Drive/YapayZekaIstanbul/VeriSetleri'

    for file in os.listdir(VeriSetiYolu):                         # Klasördeki tüm dosyaları listele

        if file.endswith(('.xlsx', '.xls')):                     # Sadece Excel dosyalarını seç

            df = pd.read_excel(os.path.join(VeriSetiYolu, file))  # Excel dosyasını pandas ile oku
    
            df.to_csv(os.path.join(VeriSetiYolu, file.rsplit('.', 1)[0] + '.csv'), index=False)
                                                               # DataFrame'i CSV formatında kaydet
            print(f"{file} dosyası CSV formatına çevrildi.")     # Çevrim İşlemi Çıktısı
    # İşlem tamamlandığında kaç tane excel dosyası var ise o kadar *.csv formatına çevildiğinin
    # bilgisini almaktayız

alternatif metin


3.4. Aşama -> Bu aşamada yazılan kod derlendiğinde aşağıdaki gibi ekran çıktısı gelmektedir.

ilce-baznda-su-tuketim-miktar-2015-2022.xlsx dosyası CSV formatına çevrildi.

atktan-geri-kazanm-miktarlar.xlsx dosyası CSV formatına çevrildi.

temmuz-ay-goruntu-ileme-yoluyla-elde-edilen-gunluk-arac-verisi.xlsx dosyası CSV formatına çevrildi.

alternatif metin


3.5. Aşama -> Drive alanı kontrol edildiğinde 3 adet olan *.xlsx veri seti *.csv dosyasına çevrilmiştir.

alternatif metin


3.6. Aşama -> Aşağıdaki resimde *.csv 5 adet dosya drive alanında mevcut hale gelmiştir.

alternatif metin


3.7. Aşama -> Bu aşamda verileri elde ettiğimize göre, yapay zeka uygulamalarında kullanılan kütüphanelerin isimleri ve kod tanımlamaları aşağıdadır.

alternatif metin


(3. ARA) YAPAY ZEKA (YZ) KURGUSUNUN OLUŞTURULMASI ve KODLANMASI SÜRECİ

3.1 Aşama -> Veri setleri üzerinde verilerin görselleştirilmesi işlemleri başlıyoruz. Bu bölümde IBB veri setlerinden "Atıktan Geri Kazanım Miktarları" veri setini inceleyeceğiz.

Bu veri setinde atıktan geri dönüşümle elde edilmiş kompost miktarı, malzeme miktarı, üretilen yakıt ve enerji miktarları bulunmaktadır.

Amac: Bu etkinlikte İBB nin elinde olan atıktan geri kazanılan miktarın verilerini inceleyeceğiz.

Bu inceleme neticesinde elde edeceğimiz veriler ile;

  1. Atıktan en fazla hangi alanda kazınım olduğununun tespiti yapabiliriz.

  2. Geri dönüşümle elde edilmiş kompost miktarı, malzeme miktarı, üretilen yakıt ve enerji miktarlarının yıllara göre sürecinin analizini yapabiliriz.

  3. Geri dönüşümde gelen miktarın hangi alanda daha verimli olduğunu vurgulayabiliriz.

  4. Geri dönüşümde gelen kazancın kazanım oranlarının faaliyet alanları arasında değerlendirilmesini sağlayabiliriz.

  5. Geri dönüşümün yıllara göre analizini yaparak gelecek yıllarda ne kadar bir kazanım olacağını tahminleyebiliriz.

  6. Geri dönüşüm faaliyet alanları içerisinde yatırım işlemlerinin hangi alana yapılması gerektiğinin analizini sağlayabiliriz.


3.2 Veri Seti Üzerinde İşlemler

Veri Seti Kaynağı :

İBB Açık Veri Portalı, Veri Seti Linki-->> Veri Seti Linki-->>

Veri Seti Görseli:

alternatif metin


3.3. Aşama -> Veri Setinin İçeriğinin Görselleştirmesi işlemei için MatplotLib Kütüphanesi kullanılacaktır.

Görselleştirme işlemine geçilmeden önce veri setinin içeriğini bir incelemesini yapalım!!

alternatif metin


3.4. Aşama -> Veri Seti Dönüşüm İşlemleri Neticesinde Elde Edilen Dosyanın İçeriği (CSV formatına dosya okuma için Notepad programı ile dosya içeriği açılabilir)

alternatif metin


3.5. Aşama -> Veri Seti üzerinde gerekli işlem aşamalarının ve süreçlerinin gerçekleştirileden görsel sonuç elde edilmesi (HATALI İŞLEM!!!!!!)

alternatif metin

alternatif metin


3.6. Aşama -> İBB Veri Setinden Elde Edilmesi Gereken Gerçek Görselin Elde Edilmesi (DOĞRU İŞLEMLER İLE ELDE EDİLMESİ GERKEN SONUÇTUR)

Veri Seti İşlemlerinden Sonra-->

alternatif metin

Ön İşleme Yapılmış Veri Setinden Elde Edilmesi Gereken Gerçek Sonuçlar-->

alternatif metin

alternatif metin

alternatif metin


3.7. -> Veri Görselleme teknikleriyle Doğru İşleml Sürecinin Başlatılması

Sizlerle Paylaşılmış Olan "yz-ikinci-islemler.ipynb" dosyası üzerinde işlemler gerçekleştirilmiştir ve sonuçlarıyla birlikte verilmiştir. Sizlerde aynı işlemleri gerçekleştirerek aynı sonucu elde edilmesi gerekmektedir.

Farklı bir sonuç var ise ilgili işlem adımlarına geri dönerek tek tek sürecinizi kontrol edebilirsiniz. Benim tavsiyem Tüm koda yeniden başlamaktadır.

Çünkü bunu yapmaz iseniz hatanızı bulamazsınız. Buradaki amac en az hata ile sürecin kontrolünü öğürenmektir.

Şimdi Koda Yeniden başlıyoruz...


3.8. -> İşlemler:

alternatif metin

print("Merhaba, Avcılar!")

import sys
print(sys.version)

#Google Colab'a Google Drive Bağlantısı
from google.colab import drive
drive.mount('/content/drive')

#Google Drive'daki Dosyaya Erişim Bağlantısı
import os
os.chdir('/content/drive/My Drive/YapayZekaIstanbul')
!pwd

alternatif metin


import os
import pandas as pd

VeriSetiYolu = '/content/drive/My Drive/YapayZekaIstanbul/VeriSetleri'

# VeriSetiYolu içindeki .csv dosyalarını bul ve say
csv_dosyaları = [dosya for dosya in os.listdir(VeriSetiYolu) if dosya.endswith('.csv')]

# .csv dosya sayısını ekrana yazdır
csv_dosya_sayisi = len(csv_dosyaları)
print(f"VeriSetiYolu içerisinde {csv_dosya_sayisi} tane .csv dosyası bulunuyor.")

alternatif metin


3.9. -> Veri İşleme Adımları - Veri Seti Okuma

import matplotlib.pyplot as plt

# CSV dosyasını oku
dosya_yolu = '/content/drive/My Drive/YapayZekaIstanbul/VeriSetleri/atiktangerikazanimmiktari.csv'
csv_dosya = pd.read_csv(dosya_yolu)

print(csv_dosya)

alternatif metin

##Okunan Veri Seti İçeriği

alternatif metin


3.10. -> Veri İşleme Adımları - Verileri Tek Sütün Okuma

# Verileri hazırlama
id = csv_dosya.iloc[:, 0]
print(id)

alternatif metin


3.11. -> Veri İşleme Adımları - Verileri Çoklu Sütün Okuma İşlemi

yil_bilgisi = csv_dosya.iloc[:, 1]
kompost_miktari = csv_dosya.iloc[:, 2]
geri_donusturulen_malzeme_miktari = csv_dosya.iloc[:, 3]
atik_yakiti_miktari = csv_dosya.iloc[:, 4]
elektrik_enerjisi_miktari = csv_dosya.iloc[:, 5]

print(id)
print(yil_bilgisi)
print(kompost_miktari)
print(geri_donusturulen_malzeme_miktari)
print(atik_yakiti_miktari)
print(elektrik_enerjisi_miktari)

alternatif metin


3.12. -> Veri Görselleme - İlk sütunu x ekseni olarak kullanarak dört ayrı verinin grafiğini çizelim

plt.figure(figsize=(20, 18))  # Boyutlar inch cinsinden çizimleri olur.
# Genişlik 20 inch, Yükseklik: 18 inch
# Genişlik: 20 inch = 20 * 2.54 cm ≈ 50.8 cm
# Yükseklik: 18 inch = 18 * 2.54 cm ≈ 45.72 cm

# Kompost Miktarı Grafiği
# Kompost, organik maddelerin daha basit organik ve inorganik maddelere ayrıştırılması işlemidir.
plt.subplot(2, 2, 1)
plt.plot(yil_bilgisi, kompost_miktari, marker='o', color='blue')
plt.title('Uretilen Kompost Miktarı [ton]')
plt.xlabel('Yıl')
plt.ylabel(csv_dosya.columns[2])
plt.xticks(yil_bilgisi)  # X eksenine sadece belirli yılları ekle
plt.grid(True)

# Geri Dönüştürülen Malzeme Miktarı Grafiği
plt.subplot(2, 2, 2)
plt.plot(yil_bilgisi, geri_donusturulen_malzeme_miktari, marker='o', color='green')
plt.title('IBB Tesislerinde Geri Dönüştürülen Malzeme Miktarı [ton]')
plt.xlabel('Yıl')
plt.ylabel(csv_dosya.columns[3])
plt.xticks(yil_bilgisi)  # X eksenine sadece belirli yılları ekle
plt.grid(True)

# Atıktan Türetilmiş Yakıt Miktarı Grafiği
plt.subplot(2, 2, 3)
plt.plot(yil_bilgisi, atik_yakiti_miktari, marker='o', color='red')
plt.title('Atiktan Turetilmis Yakit Miktarı [ton]')
plt.xlabel('Yıl')
plt.ylabel(csv_dosya.columns[4])
plt.xticks(yil_bilgisi)  # X eksenine sadece belirli yılları ekle
plt.grid(True)

# Çöp Gazından Üretilen Elektrik Enerjisi Miktarları Grafiği
plt.subplot(2, 2, 4)
plt.plot(yil_bilgisi, elektrik_enerjisi_miktari, marker='o', color='purple')
plt.title('Cop Gazindan Uretilen Elektrik Enerjisi Miktarları [MWh]')
plt.xlabel('Yıl')
plt.ylabel(csv_dosya.columns[5])
plt.xticks(yil_bilgisi)  # X eksenine sadece belirli yılları ekle
plt.grid(True)

# Grafikleri yerleştir ve göster
plt.tight_layout()
plt.show()

alternatif metin


3.13. -> Veri Görselleme - çıktısı

alternatif metin


3.14. -> Veri Görselleme - Tüm Verilerin Birleştirilmesi İçin Çizim Sürecini Gerçekleştiriyoruz.

plt.figure(figsize=(20, 18))

plt.plot(yil_bilgisi, kompost_miktari, marker='o', label=csv_dosya.columns[2], color='blue')
plt.plot(yil_bilgisi, geri_donusturulen_malzeme_miktari, marker='o', label=csv_dosya.columns[3], color='green')
plt.plot(yil_bilgisi, atik_yakiti_miktari, marker='o', label=csv_dosya.columns[4], color='red')
plt.plot(yil_bilgisi, elektrik_enerjisi_miktari, marker='o', label=csv_dosya.columns[5], color='purple')

# Grafiği özelleştir
plt.title('IBB nin Yıllara Göre Atıktan Elde Edilen Verilerin Görselleştirilmesi')
plt.xlabel('Yıl Bilgisi')
plt.ylabel('Üretim Miktarı')
plt.xticks(yil_bilgisi)
#plt.legend()
plt.legend(["Uretilen Kompost Miktarı [ton]", "IBB Tesislerinde Geri Dönüştürülen Malzeme Miktarı [ton]", "Atiktan Turetilmis Yakit Miktarı [ton]", "Cop Gazindan Uretilen Elektrik Enerjisi Miktarları [MWh]"])
plt.grid(True)

# Grafiği göster
plt.show()

alternatif metin


3.15. -> Veri Görselleme - Tüm Verilerin Birleştirilmesi Sonucu

alternatif metin


3.16. -> Veri Görselleme - Tüm Verilerin Bar Kod İle Veri Seti Görselleştirilmesi - Bar plotları çizmek için kod hazırlığı

bar_width = 0.2
index = range(len(yil_bilgisi))

plt.figure(figsize=(16, 14))

# Kompost Miktarı Bar Plot
plt.bar(index, kompost_miktari, bar_width, label=csv_dosya.columns[1], color='blue')

# Geri Dönüştürülen Malzeme Miktarı Bar Plot
plt.bar([i + bar_width for i in index], geri_donusturulen_malzeme_miktari, bar_width, label=csv_dosya.columns[2], color='green')

# Atıktan Türetilmiş Yakıt Miktarı Bar Plot
plt.bar([i + 2 * bar_width for i in index], atik_yakiti_miktari, bar_width, label=csv_dosya.columns[3], color='red')

# Çöp Gazından Üretilen Elektrik Enerjisi Miktarı Bar Plot
plt.bar([i + 3 * bar_width for i in index], elektrik_enerjisi_miktari, bar_width, label=csv_dosya.columns[4], color='purple')

# X eksenini belirli yıllara ayarla
plt.xlabel('Yıl')
plt.ylabel('Miktar')
plt.title('Atıktan Geri Kazanım Miktarları')
plt.xticks([i + 1.5 * bar_width for i in index], yil_bilgisi)
plt.legend(["Uretilen Kompost Miktarı [ton]", "IBB Tesislerinde Geri Dönüştürülen Malzeme Miktarı [ton]", "Atiktan Turetilmis Yakit Miktarı [ton]", "Cop Gazindan Uretilen Elektrik Enerjisi Miktarları [MWh]"])
plt.grid(True)

plt.tight_layout()
plt.show()

alternatif metin


3.17. -> Veri Görselleme - Tüm Verilerin Bar Kod İle Veri Seti Görselleştirilmesi - Sonucn Oluştulması

alternatif metin

---------<<<<<<------VERİ İŞLEMESİ ve GÖRSELLEŞTİRMESİ SÜREÇLERİ TAMAMLANMIŞTIR------->>>>>>-----------


(3. ARA ) VERİ SETİ BULMA, DRIVE ALANINA YÜKLEME, GOOGLE COLAB, GOOGLE DRIVE, VERİ İŞLEMESİ ve GÖRSELLEŞTİRMESİ SÜREÇLERİ TAMAMLANMIŞTIR. ŞİMDİ YAPAY ZEKA ALGORİTMALARI İLE TAHMİN UYGULAMASI İŞLEMLERİ GERÇEKLEŞTİRİLECEKTİR.


4. Bölüm -> Yapay Zeka Uygulaması Kapsamında Veri Seti Üzerinde Tahmin Uygulamasının Geliştirilmesi - Gerçekleştirilmesi

4.1. Bu uygulamada amaç: İBB İstanbulun İlçeleri Genelinde Günlük Su Tüketimlerinin Yapay Zeka Algoritmalarıyla İşlenerek Analizler Ortaya Çıkarılması

alternatif metin

Bu uygulamanın veri seti: İBB Açık Veri Portalı, İlçe Bazında Su Tüketim Miktarı, Veri Seti Linki-->>


4.2. Veri Seti İçeriği

Veri Seti İçeriği


4.3. Veri Seti Üzerinde Hazırlıklar

Veri Seti İçeriği


4.4. Veri Setinin İşlenmesi

Veri Seti İçeriği

İşlenmiş Veri Seti Linki-->>


4.5. Veri Seti Üzerinde Google Colab Üzerinde İşleme Başlama

    print("Merhaba, Avcılar!")

    import sys
    print(sys.version)

    #Google Colab'a Google Drive Bağlantısı
    from google.colab import drive
    drive.mount('/content/drive')

    #Google Drive'daki Dosyaya Erişim Bağlantısı
    import os
    os.chdir('/content/drive/My Drive/YapayZekaIstanbul')
    !pwd

alternatif metin


4.6. Google Drive Çalışma alanımızda csv uzantılı veri seti bulma kodunu bir önceki örnekten farklı sonuç olması açısından çalıştıırıyoruz

import os
import pandas as pd

VeriSetiKonumu = '/content/drive/My Drive/YapayZekaIstanbul/VeriSetleri'

# VeriSetiYolu içindeki .csv dosyalarını bul ve say
csv_dosyaları = [dosya for dosya in os.listdir(VeriSetiKonumu) if dosya.endswith('.csv')]

# .csv dosya sayısını ekrana yazdır
csv_dosya_sayisi = len(csv_dosyaları)
print(f"VeriSeti dosyası içerisinde {csv_dosya_sayisi} tane .csv dosyası bulunuyor.")

alternatif metin


4.7. Su veri seti üzerinde ön işlemeye tabi tutuyoruz.

# Veri setinin yolunun gösterimi veya yüklemesi
VeriSetiYolu = '/content/drive/My Drive/YapayZekaIstanbul/VeriSetleri/ilcesuveriseti.csv'
data = pd.read_csv(VeriSetiYolu, delimiter=';')

# Sayısal kolonlardaki verileri temizleyip sayıya dönüştürme
for col in data.columns[2:]:
    data[col] = data[col].str.replace('.', '').astype(int)

# Düzenlenmiş veri setinin ilk birkaç satırını gösterme
print(data.head())

alternatif metin


4.8. Su veri seti üzerinde ön işlemeye tabi tutulan verilerin görselleştirilmesi matplotlib ile 2 eksen görselleştirilmesi işlemi

alternatif metin

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

# Veri setini yükleme ve temizleme
data = pd.read_csv(VeriSetiYolu, delimiter=';')

# Sayısal kolonlardaki verileri temizleyip sayıya dönüştürme
for col in data.columns[2:]:
    data[col] = data[col].str.replace('.', '').astype(int)

# Belirtilen ilçeler için veriyi filtreleme
selected_ilces = ["AVCILAR", "BEYLIKDUZU", "BUYUKCEKMECE", "KUCUKCEKMECE", "SILIVRI", "ESENYURT"]
filtered_data = data[data['ILCELER'].isin(selected_ilces)]

# Seçilen ilçeler için yıllık su tüketim miktarlarını çizme
plt.figure(figsize=(15, 8))

for ilce in selected_ilces:
    ilce_data = filtered_data[filtered_data['ILCELER'] == ilce]
    plt.plot(data.columns[2:], ilce_data.iloc[0, 2:], label=ilce)

plt.xlabel('Yıllar')
plt.ylabel('Su Tüketimi (m3)')
plt.title('Belirli İlçelerin Yıllara Göre Su Tüketim Miktarları')

# Y eksenine binlik ayırıcı ekleme
ax = plt.gca()
ax.yaxis.set_major_formatter(ticker.FuncFormatter(lambda x, pos: f'{int(x):,}'))

plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()

4.9. Su veri seti üzerinin görselleştirilmesinde graph ve plot ekleme ile görselin detaylandırılması - plotly Kütüphane Kurulum İşlemi

!pip install plotly

alternatif metin


4.10. Su veri seti üzerinin görselleştirilmesinde graph ve plot ekleme ile görselin işleme alınması

alternatif metin

kod içeriği--> .

    import pandas as pd
    import matplotlib.pyplot as plt
    import plotly.graph_objects as go
    
    # Veri setini yükleme ve temizleme
    data = pd.read_csv(VeriSetiYolu, delimiter=';')
    
    # Sayısal kolonlardaki verileri temizleyip sayıya dönüştürme
    for col in data.columns[2:]:
        data[col] = data[col].str.replace('.', '').astype(int)
    
    # Belirtilen ilçeler için veriyi filtreleme
    ilce_bilgileri = ["AVCILAR", "BEYLIKDUZU", "BUYUKCEKMECE", "KUCUKCEKMECE", "SILIVRI", "ESENYURT"]
    filtered_data = data[data['ILCELER'].isin(ilce_bilgileri)]
    
    # Plotly kullanarak interaktif grafik oluşturma
    fig = go.Figure()
    
    for ilce in ilce_bilgileri:
        ilce_data = filtered_data[filtered_data['ILCELER'] == ilce]
        fig.add_trace(go.Scatter(
            x=data.columns[2:],
            y=ilce_data.iloc[0, 2:],
            mode='lines+markers',
            line=dict(width=3),
            name=ilce
        ))
    
    fig.update_layout(
        title='AVCILAR, BEYLIKDUZU, BUYUKCEKMECE, KUCUKCEKMECE, SILIVRI, ESENYURT İlçelerin Yıllara Göre Su Tüketim Miktarları',
        xaxis_title='Yıllar',
        yaxis_title='Su Tüketimi (m3)',
        yaxis=dict(tickformat=','),
        template='plotly_white'
    )
    
    fig.show()

4.11. Görsel Üzerinden Esenyurt ilçesinin su verisinin görselleştirilmesi

alternatif metin


4.12. Görsel Üzerinden Küçükçekmece ilçesinin su verisinin görselleştirilmesi

alternatif metin


4.13. Görsel Üzerinden Avcılar ilçesinin su verisinin görselleştirilmesi

alternatif metin


4.14. Elde Edilen Görsel

alternatif metin


4.15. Kodun Bütünlüğü

alternatif metin


4.16. Model Eğitimi

alternatif metin

    import pandas as pd
    import numpy as np
    from sklearn.preprocessing import MinMaxScaler
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import LSTM, Dense
    import matplotlib.pyplot as plt
    from sklearn.metrics import mean_absolute_error, mean_squared_error
    
    # Veri setini yükleme ve temizleme
    data = pd.read_csv(VeriSetiYolu, delimiter=';')
    
    # Sayısal kolonlardaki verileri temizleyip sayıya dönüştürme
    for col in data.columns[2:]:
        data[col] = data[col].str.replace('.', '').astype(int)
    
    # Belirtilen ilçeler için veriyi filtreleme
    selected_ilces = ["AVCILAR", "BEYLIKDUZU", "BUYUKCEKMECE", "KUCUKCEKMECE", "SILIVRI", "ESENYURT"]
    filtered_data = data[data['ILCELER'].isin(selected_ilces)]
    
    # Örneğin sadece AVCILAR ilçesi için tahmin yapalım
    ilce = 'AVCILAR'
    ilce_data = filtered_data[filtered_data['ILCELER'] == ilce].iloc[0, 2:].values.reshape(-1, 1)
    
    # Yılları içeren bir dizi oluşturma
    years = data.columns[2:].astype(int)
    
    # Veriyi ölçeklendirme
    scaler = MinMaxScaler(feature_range=(0, 1))
    ilce_data_scaled = scaler.fit_transform(ilce_data)
    
    # Girdi ve çıktı oluşturma (Zaman serisi verisi için)
    def create_dataset(dataset, tahmin_adimi=1):
        dataX, dataY = [], []
        for i in range(len(dataset) - tahmin_adimi):
            a = dataset[i:(i + tahmin_adimi), 0]
            dataX.append(a)
            dataY.append(dataset[i + tahmin_adimi, 0])
        return np.array(dataX), np.array(dataY)
    
    tahmin_adimi = 4
    trainX, trainY = create_dataset(ilce_data_scaled, tahmin_adimi)
    
    # LSTM girdi şekli (örnek sayısı, zaman adımı, özellik sayısı)
    trainX = np.reshape(trainX, (trainX.shape[0], trainX.shape[1], 1))
    
    # LSTM Modeli oluşturma
    model = Sequential()
    model.add(LSTM(50, return_sequences=True, input_shape=(tahmin_adimi, 1)))
    model.add(LSTM(50))
    model.add(Dense(1))
    model.compile(loss='mean_squared_error', optimizer='adam')
    
    # Modeli eğitme
    # validation_split parametresi eklendi
    history = model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=2, validation_split=0.2)

4.17. Model Eğitimi Sonucu

Hatalı Sonuc - Rastgele :DDD :

alternatif metin

İstenen Tam Sonuc:

alternatif metin

    # Eğitim verisi üzerinde tahmin yapma
    trainPredict = model.predict(trainX)
    
    # Tahminleri ters ölçeklendirme
    trainPredict = scaler.inverse_transform(trainPredict)
    trainY = scaler.inverse_transform([trainY])
    
    # Test verisi oluşturma (Son 4 yıl)
    test_data = ilce_data_scaled[-tahmin_adimi:]
    test_data = np.reshape(test_data, (1, tahmin_adimi, 1))
    
    # Test verisi üzerinde tahmin yapma
    test_predict = model.predict(test_data)
    
    # Tahminleri ters ölçeklendirme (Son yıl)
    test_predict = scaler.inverse_transform(test_predict)
    test_y = ilce_data[-1:] 
    
    # Modelin hata performansını çizdirme
    plt.figure(figsize=(12, 6))
    plt.plot(history.history['loss'], label='Eğitim Kaybı')
    plt.plot(history.history['val_loss'], label='Doğrulama Kaybı')
    plt.title('Model Eğitim ve Doğrulama Kaybı')
    plt.xlabel('Epoch')
    plt.ylabel('Kayıp')
    plt.legend()
    plt.show()

4.18. Modeli değerlendirmesi, Modelin kayıp ve başarı oranlarının tespiti

Eğitim Modelinin Toplam Kayıp Oranı (Yüzdelik): 3.25%

Eğitim Modelinin Başarı Oranı (Yüzdelik): 96.75%

alternatif metin

    # Eğitim sürecindeki kayıp değerlerini yüzdelik olarak hesaplama
    Modelin_kayip_degeri = [loss * 100 for loss in history.history['loss']]
    
    # Eğitim sürecindeki kayıp değerlerini yüzdelik olarak yazdırma
    for epoch, loss in enumerate(Modelin_kayip_degeri, 1):
        print(f"Eğitim Adımı {epoch}: Kayıp Oranı = {loss:.2f}%")
    
    # Eğitim sürecindeki kayıp değerlerinin yüzdelik ortalamasını hesaplama
    Kayip_hesabi = np.mean(Modelin_kayip_degeri)
    print(f"Eğitim Modelinin Toplam Kayıp Oranı (Yüzdelik): {Kayip_hesabi:.2f}%")
    print(f"Eğitim Modelinin Başarı Oranı (Yüzdelik): {100-Kayip_hesabi:.2f}%")

4.20. Oluşturulan Modelin Değerlendirmesi ve Sonuç

alternatif metin

    # Modelin tahmin performansını çizdirme
    time_step = len(ilce_data) - len(trainY[0]) # Changed testY to trainY
    
    plt.figure(figsize=(12, 6))
    plt.plot(years[time_step:time_step + len(trainY[0])], trainY[0], label='Gerçek Değerler', color='blue') # Changed testY to trainY
    plt.plot(years[time_step:time_step + len(trainPredict)], trainPredict, label='Tahminler', color='red')
    plt.title('Avcılar İlçesi için Gerçek Su Kullanım Değerleri ve Tahmin Edilen Değerlerin Görselleştirilmesi')
    plt.xlabel('Yıl')
    plt.ylabel('Su Tüketimi x (10^6) m^3')
    plt.legend()
    plt.xticks(rotation=45)
    plt.show()

alternatif metin


Hz. Mevlana'nın Sözleriyle Eğitim serimizi tamamlıyoruz.

Mum olmak kolay değildir !! 
Işık saçmak için önce yanmak gerekir.
                          Hz. Mevlana

Arkadaşlar çalışmalarınızda başarılar dilerim. Öğr. Gör. Ali ÇETİNKAYA


Bu Çalışmayı Oluşturulması İçin Kullanılan Referans Kaynaklar:

NOT: Bu kitaplar ülkemizin yapay zeka alanında ortaya çıkardığı çalışmalardan önemli kaynaklardır. Her yazılımcının, mezun ve / veye öğrencilerinin mutlaka kütüphanelerinde olması gereken kitaplardır.

  1. Ord. Prof. Dr. Cahit ARF, "Makine düşünebilir mi ve nasıl düşünebilir", Atatürk Üniversitesi-Üniversite Çalışmalarını Muhite Yayma ve Halk Eğitimi Yayınları Konferanslar Serisi, (1), 91-103. Erzurum, 1959.

  2. Prof. Dr. Vasıf NABİYEV, "Teoriden Uygulamalara Algoritmalar", Seçkin Yayınları, Ankara, 2011.

  3. Prof. Dr. Vasıf NABİYEV, "Yapay zeka: insan-bilgisayar etkileşimi", Seçkin Yayınları, Ankara, 2021.

  4. Prof. Dr. Ali OKATAN, Tamer KARATEKİN, Dr. Kağan OKATAN, "100 Sayfada Makine Öğrenmesi Kitabı", Papatya Bilim Yayıncılık, İstanbul, 2020.

  5. Prof. Dr. Vasıf NABİYEV, "Teoriden Uygulamalara Algoritmalar", Seçkin Yayınları, Ankara, 2011.

  6. Prof. Dr. Ercan Nurcan YILMAZ & Dr. Öğr. Üyesi Serkan GÖNEN, "Örneklerle Uygulamalı C ve C++ - 2023", İstanbul Gelişim Üniversitesi Yayınları, İstanbul, 2023.

  7. Prof. Dr. Çetin ELMAS, "Yapay Zeka Uygulamaları", Seçkin Yayıncılık, İstanbul, 2021.

  8. Prof. Dr. Şadi Evren ŞEKER, "Algoritmalar", Nobel Akademik Yayıncılık, Ankara, 2021.

  9. Prof. Dr. Eşref ADALI, "Bilişim Etiği ve Hukuku", İTÜ Ulusal Yazılım ve Sertifikasyon Merkezi, İstanbul, 2017.

  10. Dr. Atınç YILMAZ, Öğr. Gör. Umut KAYA, "Derin Öğrenme", KODLAB Yayıncılık, İstanbul, 2022.

  11. Dr. Yalçın ÖZKAN, "Uygulamalı Derin Öğrenme", Papatya Bilim Yayıncılık, İstanbul, 2021.

  12. Dr. Andriy BURKOV, "The hundred-page machine learning" book (Vol. 1, p. 32). Quebec City, QC, Canada: Andriy Burkov, 2019.

  13. Dr. Öğr. Üyesi Fahri VATANSEVER, "Algoritma Geliştirme ve Programlamaya Giriş", Seçkin Yayınları, Ankara, 2009.

  14. Dr. Öğr. Üyesi Selçuk ALP & Arzu KİLİTCİ "Algoritmalar ve Programlamaya Giriş", Umuttepe Yayınları, Kocaeli, 2015.

  15. Öğr. Gör. Ali ÇETİNKAYA, "Bulanık Mantık ve Python Uygulamaları". İstanbul Gelişim Üniversitesi Yayınları, 2023.

  16. Öğr. Gör. Tuğba SARAY ÇETİNKAYA & Öğr. Gör. Ali ÇETİNKAYA, Algorithm Design in Programming Language Education - Özgür Yayınları, Gaziantep, 2023.

  17. Öğr. Gör. Ali ÇETİNKAYA, Mühendislik Alanında Yapay Zeka (YZ) İçerikli Araştırmalarda Yaklaşımlar - Serüven Yayınevi, İzmir, 2022.

  18. Öğr. Gör. Ali ÇETİNKAYA, Approaches with Artificial Intelligence (AI) Algorithms to Smart System Works - Platanus Publishing, Ankara, 2023.

  19. Öğr. Gör. Ali ÇETİNKAYA’nın internet sayfaları:

    https://scholar.google.com.tr/citations?hl=tr&user=XSEW-NcAAAAJ  
    https://avesis.gelisim.edu.tr/alcetinkaya
    https://github.com/acetinkaya/
    https://alicetinkaya.site/
    

<-- Saygılarımla Öğr. Gör. Ali ÇETİNKAYA - Temmuz 2024 -->


Yukarıdaki bilgi, resim ve kod çalışmaları açık kaynak paylaşım olarak github "acetinkaya" alanında paylaşımı yapılmıştır.

Github alanından; star - yıldız ile beğenme bildirimi ile paylaşımlarıma destek verebilirsiniz.

Bilgi paylaşıldıkça çoğalır ve gelişir. İyi çalışmalar dilerim.


Yazdığınınz kodun hakkını verin !!!

Öğr. Gör. Ali ÇETİNKAYA İstanbul, 2024


Bu Github paylaşımının IEEE ve APA formatlarınada atıf verilme şekli:

IEEE--> A. Cetinkaya, "Yapayzeka." GitHub, [Online]. Erişim Linki: https://github.com/acetinkaya/yapayzeka. Son Erişim Tarihi: Gün Ay Yıl.

APA--> Cetinkaya, A. (2024). Yapayzeka [GitHub Deposu]. GitHub. Erişim Linki: https://github.com/acetinkaya/yapayzeka. Son Erişim Tarihi: Gün Ay Yıl.


Proje Durumu: İlgili paylaşımlar ve Python programlama dilinde yazılmış yazılım kodlarına sürüm güncellemeleri yaptıkça bu paylaşımları güncelleyeceğiz. GitHub bölümünden beğeni bildirimi olarak bir yıldız vererek çalışmalarımı destekleyebilirsiniz. Bilgi paylaşıldıkça büyür ve gelişir.

Katkıda Bulunma: Çekme istekleri memnuniyetle karşılanır. Büyük değişiklikler için lütfen önce neyi değiştirmek istediğinizi görüşmek üzere ilgili Python kodunu belirttiğiniz bir soru - yanıt bölümü açın.

Lisans: MIT Lisansı altında yayımlandı

Yazar ve Güncelleme Yapan: Öğr. Gör. Ali Çetinkaya (MSc.) - 2024


Project Status: We will update these shares as we make version updates to the related dependencies and software code written in Python programming language. You can support my work by giving a star as a like notification from the GitHub section. Knowledge grows and develops as it is shared.

Contributing: Pull requests are welcome. For major changes, please open a question-and-answer section indicating the relevant Python code to discuss what you'd like to change first.

License: Released under the MIT License

Authored and Maintained by Lect. Ali Cetinkaya (MSc.) - 2024