You are on page 1of 184

VERİ BİLİMİ

DOÇ. DR. NUMAN ÇELEBİ

İSTANBUL ÜNİVERSİTESİ AÇIK VE UZAKTAN EĞİTİM FAKÜLTESİ


İçindekiler

1. Ver B l m İç n Temel Kavramlar

Grş
1.1. Ver B l m Ned r?
Bölüm Özet
Ün te Soruları

2. Ver B l m İç n Python Programlamasına G r ş

Grş
2.1. Python Programlama D l
Bölüm Özet
Ün te Soruları

3. Python’a Özgü Ver Yapıları-1 (l ste)

Grş
3.1. Python’da Değ şken Tanımlama
3.2. Python'a Özgü Ver Yapıları
Bölüm Özet
Ün te Soruları

4. Python’a Özgü Ver Yapıları-2 (tuple, Küme, Sözlük)

Grş
4.1. Tuple (demet) Ver Yapısı
4.2. Küme (set) Ver Yapısı
4.3. Alt Başlık : Sözlük Ver Yapısı
Bölüm Özet
Ün te Soruları
5. Python’da Kontrol Yapıları-1

Grş
5.1. Programlama Kontrol Akış Şek ller
Bölüm Özet
Ün te Soruları

6. Python’da Kontrol Yapıları-2

Grş
6.1. Wh le Kontrol Yapısı
Bölüm Özet
Ün te Soruları

7. Python İç n Ver Anal z Araçları-1 (numpy)

Grş
7.1. Numpy Kütüphanes
Bölüm Özet
Ün te Soruları

8. Python İç n Ver Anal z Araçları-1 (pandas)

Grş
8.1. Pandas Kütüphanes
Bölüm Özet
Ün te Soruları

9. Python İç n Ver Anal z Araçları-3 (matplotlıb)

Grş
9.1. Matplotl b Kütüphanes
Bölüm Özet
Ün te Soruları
10. İstat st ksel Anal z

Grş
10.1. Keş fsel Ver Anal z
10.2. Ver ler n Yüklenmes
Bölüm Özet
Ün te Soruları

11. Mak ne Öğren m (denet ml -Denet ms z Öğrenme)

Grş
11.1. Mak ne Öğren m Ned r?
11.2. Mak ne Öğren m Ve Geleneksel Programlama
11.3. Mak ne Öğren m Nasıl Çalışır?
11.4. Mak ne Öğren m Sürec
11.5. Mak ne Öğren m Türler
11.6. Mak ne Öğren m nde Problem Türler
Bölüm Özet
Ün te Soruları

12. Regresyon

Grş
12.1. Bas t Doğrusal Regresyon
Bölüm Özet
Ün te Soruları

13. Sınıflandırma

Grş
13.1. Loj st k Regresyon
Bölüm Özet
Ün te Soruları
14. Kümeleme

Grş
14.1. Kümeleme Algor tması
Bölüm Özet
Ün te Soruları
1. VERİ BİLİMİ İÇİN TEMEL KAVRAMLAR

Giriş

Ver B l m k tabının lk bölümü olan bu bölümde, Ver B l m le lg l genel b lg ler ver lecekt r.
Günümüzde çok popüler olan bu b l m dalı yalnız başına çalışan b r yapıya sah p değ ld r. Bunun sebeb
Ver B l m ’n n b rden fazla b l m dalının kes şmes nden oluşan ve b rden fazla b l m dalını ç ne alan b r
b l m dalı olmasından kaynaklanır. Dolayısıyla okuyucuların y b r ver b l mc olması ç n bu kes şen
b l m dalları hakkında temel b lg lere sah p olması gerek r. Temel kavramları çselleşt ren b r k mse ver
b l m projeler nde daha başarılı sonuçlar elde eder.

1.1. Veri Bilimi Nedir?

Ver b l m , ver çer s nde yer alan ancak d rekt olarak gözle görülemeyen kalıpları/örüntüler bulmak,
anlamlı b lg ler elde etmek ve ş kararları vermek ç n modern araçlar ve tekn kler kullanarak büyük
hac ml ver lerle lg lenen b r çalışma alanıdır. Ver b l m , tahm ne dayalı modeller oluşturmak ç n
karmaşık mak ne öğren m algor tmaları kullanır. Anal z ç n kullanılan ver ler b rden fazla kaynaktan
olab l r ve çeş tl formatlarda sunulab l r. Ver b l m , d j tal araçlarla üret len büyük m ktarda ver göz
önüne alındığında, günümüzde çeş tl endüstr ve şletmeler n öneml b r uğraş alanı hal ne gelm şt r.
Ş rketler, şler n büyütmek ve müşter memnun yet n artırmak ç n ver b l m tekn kler n uygulamaya
başladılar.

1.1.1. Veri Biliminde Kullanılan Temel Kavramlar

Bu bölümde lk olarak Ver B l m ’n n ne olduğunu öğrenmeye başlamadan önce b l nmes gereken bazı
tekn k ve temel kavramlar aşağıda kısaca açıklanmıştır.

1. Mak ne Öğren m

Mak ne öğren m (Mach ne Learn ng-ML), ver b l m n n bel kem ğ d r. Ver B l mc ler, temel stat st k
b lg ler ne ek olarak mak ne öğren m hakkında sağlam b r b lg ye sah p olmalıdır. ML ver y anal z etmek
ç n kullanılan algor tmaları kapsar.

2. Modelleme

Matemat ksel modeller, ver ler hakkında b lg lere dayanarak hızlı hesaplamalar ve tahm nler yapmaya
mkân sağlar. Modelleme aynı zamanda mak ne öğren m n n b r parçasıdır ve bel rl b r problem çözmek
ç n hang algor tmanın en uygun olduğunu ve bu modeller n nasıl eğ t leceğ n bel rlemey çer r.

3. İstat st k
İstat st k, ver b l m n n merkez nde yer alır. İstat st k b lg s olmadan Ver Blm yapılamaz.
Algor tmalardan elde ed len çıktılar stat st ksel yöntemler kullanılarak anlamlandırılır. İstat st k anal zler
sonucu kullanılan ver lerden daha zek , yararlı sonuçlar elde ed l r.

4. Programlama

Başarılı b r ver b l m projes n yürütmek ç n b r m ktar programlama gerekl d r. Ver b l m nde kullanılan
en yaygın programlama d ller Python ve R’d r.  Python özell kle popüler b r d ld r. Çünkü öğrenmes
kolaydır ve ver b l m ve mak ne öğren m ç n b rçok kütüphaneye/k taplığa sah pt r.

5. Ver tabanları

Başarılı/yetenekl b r ver b l mc olmak ç n, ver tabanlarının nasıl çalıştığını, nasıl yönet leceğ n ve
onlardan nasıl ver çıkarılacağı konusunda b lg sah b olmak gerek r. Ver Tabanları, b r sorgulama d l ne
sah p olan ve b rçok yazılımla b rl kte kullanılan ver ler n tutulması, saklanması, kayded lmes ,
f ltrelenmes ve sorgulanması ve kullanılması amacıyla gel şt r lm ş olan s stemlerd r. Günümüzde farklı
f rmaların gel şt rd ğ çok sayıda Ver Tabanı S stemler vardır. Bunlar arasında en sık kullanılan M croso
SQL Server, MySql, Oracle ve Postrage SQL vb. s stemlerd r.

1.1.2. Temel Makine Öğrenimi Algoritmaları

B r ver b l mc n n kullandığı en temel mak ne öğren m algor tmaları aşağıda kısaca açıklanmıştır:

1. Regresyon

Regresyon, denet ml öğrenme tekn kler ne dayalı b r mak ne öğrenmes algor tmasıdır. G rd
özn tel kler n n b r fonks yon le tems l ed lerek, çıktı özn tel kler n n tahm n ed lmes ne mkan veren b r
modeld r. Regresyon çıktısı gerçek veya sürekl b r değer olab l r. Örneğ n, b r odanın sıcaklığını tahm n
etmek g b .

2. Kümeleme

Kümeleme, denet ms z öğrenme tekn kler ne dayalı b r mak ne öğren m algor tmasıdır. B r d z
et ketlenmem ş ver noktası üzer nde çalışır ve her ver noktasını b r kümede gruplandırır.

3. Karar Ağacı

Karar ağacı, öncel kle sınıflandırma ç n kullanılan denet ml b r öğrenme yöntem n fade eder.
Algor tma, çeş tl g rd ler bel rl b r parametreye göre sınıflandırır. B r karar ağacının en öneml avantajı,
anlaşılmasının kolay olması ve sınıflandırılmasının neden n açıkça göstermes d r.

4. Destek Vektör Mak neler

Destek vektör mak neler (SVM'ler) öncel kle sınıflandırma ve regresyon modeller ç n kullanılan
denet ml b r öğrenme yöntem d r. Ancak çoğunlukla sınıflandırma problemler nde kullanılır. SVM'ler le
hem doğrusal hem de doğrusal olmayan sınıflandırmalar gerçekleşt reb l r.
5. Na ve Bayes

Na ve Bayes, k l ve çok sınıflı sınıflandırma problemler ç n en y kullanılan stat st ksel olasılık tabanlı
b r sınıflandırma yöntem d r. El n zde eğ t lm ş bulunan ver ler kend formülüne göre şler ve her durum
ç n yüzdel k b r oran çıkarır. Daha sonra g r len test ver s n bu çıkan olasılıklara göre sınıflandırır.

1.1.3. Bir Veri Bilimi Projesinin Yaşam Döngüsü

Ver B l m ’n n ne olduğunu daha y kavramak ç n ver b l m n n ş zekâsından nasıl farklılaştığını


anlamak gerek r. Bunu daha y açıklayab lmek ç n bu bölümde b r ver b l m projes n n yaşam
döngüsüne dâh l olan aşamaların ayrıntılı açıklaması ver lm şt r.

1. Kavram Çalışması

B r ver b l m projes n n lk aşaması, kavram çalışmasıdır. Bu adımın amacı, ş model üzer nde b r
çalışma yaparak sorunu anlamaktır. Örneğ n, 1.35 karatlık b r elmasın f yatının tahm n ed lmeye
çalışıldığını varsayalım. Bu durumda, lk olarak sektörde kullanılan term noloj y öğrenmek gerek r. Yan
sektörün çalışma yapısını anlamak lazımdır. Daha sonra sektör hakkında yeter nce lg l ver y toplamaya
geç l r.

2. Ver Hazırlama

Ham ver ler ver b l m projeler nde d rekt olarak kullanılamaz. Bundan dolayı ver hazırlama, ver b l m
yaşam döngüsünün en öneml adımını oluşturur. Ver b l mc s , herhang b r değer katmayan boşlukları
veya ver ler bel rlemek ç n önce ver ler nceler. Bu şlem sırasında, aşağıdak adımların bazılarına ht yaç
duyar:

Ver Entegrasyonu

Ver entegrasyonu, farklı kaynaklardan gelen ver ler tek b r ver set nde bütünleşt rme uygulamasıdır.
N ha amaç, kullanıcılara konulara ve yapı türler ne bağlı olarak tutarlı ver er ş m sağlamaktır. Bu sayede
tüm uygulamaların ve ş süreçler n n ver ht yaçlarını karşılamaktır. Ver entegrasyon sürec , genel ver
yönet m sürec n n ana b leşenler nden b r d r ve büyük ver entegrasyonu ve mevcut ver ler paylaşma
ht yacı artmaya devam ett kçe artan sıklıkta kullanılmaktadır.

Ver Dönüşümü

ETL (ayıklama, dönüştürme, yükleme) şlem nde farklı kaynaklardan gelen ver kümeler n n kopyaları b r
araya toplanır, uyumlu hale get r l r ve b r ver tabanına yüklen r

Ver Azaltma

Çeş tl stratej ler kullanarak, kal tey veya sonucu etk lemeden ver boyutunun azaltılması şlem d r.

Ver tem zleme


Eks k değerl kayıtlar doldurularak ve gürültülü ver ler düzelt lerek tutarsız ver ler n düzelt lmes
şlem d r.

3. Model Planlama

Ver ler tem zlend kten sonra uygun b r model seç l r. İstenen model problem n doğasına uygun olmalıdır.
Ele alınan problem b r regresyon problem m yoksa b r sınıflandırma problem m olduğuna karar
ver l r/tesp t ed l r. Bu adım aynı zamanda ver ler n daha der nlemes ne b r anal z n sağlamak ve
değ şkenler arasındak l şk y anlamak ç n Keş fsel Ver Anal z (EDA) sürec n çer r. Keş fsel ver anal z
(EDA) ç n h stogramlar, kutu graf kler ve trend anal z g b bazı tekn kler kullanılır. Örneğ n bu tekn kler
kullanarak, b r karat le b r elmasın f yatı arasındak l şk n n Şek l 1’dek g b doğrusal olduğu
göster leb l r.

Şek l 1.1. Ver ler arasındak l şk n n göster lmes

Ardından, ver ler eğ t m ve test olmak üzere k bölüme ayrılır. Model eğ tmek ç n eğ t m ver ler ve
model doğrulamak ç n test ver ler kullanılır. Test sonuçları doğru çıkmaz se, başka b r model kurarak,
model n yen den eğ t lmes gerek r. Eğer test sonuçları doğru se/geçerl yse kurulan model farklı ver
setler ç n kullanılab l r. Model planlama ç n kullanılan çeş tl araçlar vardır:

4. Model Planlama Araçları

Burada ver b l m nde model planlamada açık kaynak kodlu ve t car olarak kullanılan araçlar b rer cümle
le açıklanmıştır.

Ayrıntılı anal z ç n görselleşt rme dah l olmak üzere hem normal stat st ksel anal z hem de öğrenme
anal z ç n kullanılab l r.

Python

Ver anal z ve mak ne öğren m gerçekleşt rmek ç n zeng n b r k taplık/kütüphaneye sah pt r.

Matlab

Popüler ve öğrenmes kolay araçlardan b r d r.

SAS
 Eks ks z b r stat st ksel anal z gerçekleşt rmek ç n gereken tüm b leşenlere sah p güçlü tesc ll b r araçtır

5. Model Oluşturma

Yaşam döngüsündek b r sonrak adım, model oluşturmaktır. Çeş tl anal t k araçları ve tekn kler
kullanarak, yararlı b lg ler "keşfetmek" amacıyla ver ler şlen r. Örneğ n, el m zdek 1.35 karatlık b r
elmasın f yatını tahm n etmek st yoruz. El m zdek f yatlandırma ver ler n kullanarak, 1.35 karatlık b r
elmasın f yatını tahm n etmek ç n onu Şek l 2’dek g b doğrusal b r regresyon model ne bağlayab l r z.

Şek l 2.2. Doğrusal model örneğ .

Doğrusal regresyon, k değ şken ve arasındak l şk y tanımlar. Regresyon ç zg s ç z ld kten sonra,


aşağıdak formülü kullanarak b r g rd s değer ç n b r değer tahm n edeb l r z:

Bu denklemde:

= Doğrunun eğ m n

= y eksen n kesme noktasını

fade eder.

Model n doğru çalıştığı doğrulandıktan sonra, b r sonrak düzeye, yan kullanıma geç l r. Değ lse, model
daha fazla ver yle yen den eğ tmek veya daha yen b r model veya algor tma kullanmak ve ardından
şlem tekrarlamak gerek r. Python d l nde Pandas, Matplotl b ve NumPy g b k taplıklar kullanarak
modeller oluşturulab l r.

6. İlet ş m

B r sonrak adım, çalışmanın temel bulgularını almak ve bunları paydaşlara letmekt r. İy b r ver b l mc ,
bulgularını, sorunu çözmek ç n atılan adımlarla lg l ayrıntılar da dâh l olmak üzere ş odaklı kullanıcı
k tles le paylaşması gerek r.
Bölüm Özeti

Ver ler, günümüzde şletmeler n en öneml kaynakları hal ne gelm şt r. Çünkü ver ler ş yönet c ler n n
gerçeklere, stat st ksel sayılara ve eğ l mlere dayalı kararlar almasına yardımcı olur.

Gel şen teknoloj yle b rl kte artan ver ler n şleneb lmes ç n ver b l m mult d s pl ner b r alan olarak
ortaya çıktı. Ver B l m büyük m ktarda ver den b lg ve öngörü elde etmek ç n b l msel yaklaşımlar,
prosedürler ve algor tmalar kullanır. Ver b l m , ayrıca gerçek olayları ver lerle anlamak ve ncelemek ç n
f k rler , ver ncelemes n , Mak ne Öğren m n ve bunlarla lg l stratej ler b r araya get ren b r kavramdır.
Ver b l m , ver madenc l ğ , stat st k, tahm ne dayalı anal z g b çeş tl ver anal z alanlarının b r
uzantısıdır. Başka b r fade le Ver B l m , stat st k, matemat k ve b lg sayar b l m g b d ğer alanlara a t
b rçok yöntem ve kavramı kullanan gen ş b r alandır. 

Bu bölümde Ver B l m ç n gerekl olan temel kavramlara değ n lm şt r. Daha sonrak bölümlerde detaylı
olarak göreceğ m z mak ne öğrenmes algor tmalarından kısaca bahsed lm şt r. Son olarak Ver B l m
yaşam döngüsünün adımları açıklanmıştır.

Kaynakça

İlker Arslan, “Python le Ver B l m ”, Pusula, 2. Baskı, 2019

WEB: https://towardsdatasc ence.com/ ntro-to-data-sc ence-531079c38b22

WEB: https://www.s mpl learn.com/tutor als/data-sc ence-tutor al/what- s-data-sc ence


Ünite Soruları

1. Aşağıdak lerden hang s Ver B l m le l şk l b r b l m dalı değ ld r?

A) İstat st k

B) Ver tabanı

C) Mak ne öğrenmes

D) Tar h

2. Aşağıdak lerden hang s ver b l m temel kavramlarından b r değ ld r?

A) Modelleme

B) Programlama

C) F z k

D) Ver tabanları

3. Aşağıdak lerden hang s Ver B l m ’n n faydalarından b r değ ld r?

A) İşletmelere yararlı çıktılar sağlar.

B) İşletmelere gereks z b r uğraş get r r.

C) Tahm nleme şlemler nde kullanılır.


D) Müşter memnun yet sağlar. 

4. Aşağıdak lerden hang s Mak ne Öğren m algor tmalarından b r değ ld r?

A) İstat st k

B) Regresyon

C) Karar Ağacı

D) Na ve Bayes

5. Aşağıdak lerden hang s Model planlama araçlarından b r değ ld r?

A) R

B) SAS

C) C#

D) Matlab

6. Aşağıdak lerden hang s ver b l m araçlarından b r olan ver tabanlarına örnek olan b r
s stem değ ld r?

A) Oracle

B) Python

C) Postgre SQL
D) MySQL

7. Genel b r ver b l m projes kaç adımdan oluşur?

A) 3

B) 4

C) 6

D) 1

8. Aşağıdak adımlardan hang s ver b l m proje yaşam döngüsü çer s nde yapılan
şlemlerden b r değ ld r?

A) Ver hazırlama

B) Model Planlama

C) Raporlama

D) İlet ş m

9. Aşağıda ver lenlerden hang s Ver b l m nde yapılan kavram çalışmasının amaçlarından
b r değ ld r?

A) Sorunu anlamak

B) Term noloj ye hak m olmak

C) Sektörün çalışma yapısını anlamak


D) Sektörün karlı olup olmadığını öğrenmek

10. Aşağıdak algor tmalardan hang s denet ml öğrenme sınıfında yer almaz?

A) Destek Vektör Mak neler

B) Kümeleme

C) Regresyon

D) Karar ağaçları

CEVAP ANAHTARI

1. d 2. c 3. b 4. a 5. c 6. b 7. c 8. c 9. d 10. b
2. VERİ BİLİMİ İÇİN PYTHON PROGRAMLAMASINA
GİRİŞ

Giriş

Ver B l m uygulamaları ç n b r gel şt rme aracına ht yaç vardır. Ver b l m ç n hang programlama
aracının en uygun olduğu konusunda tartışmalar devam etmekted r. Ancak şunu unutmamak gerek r b r
ver b l m projes ç n tüm kütüphaneler ve çözümler ç nde barındıran tek b r araç yoktur. Ver B l mc
ht yaçlarına göre farklı ver b l m araçlarını zaman zaman b rl kte kullanmak zorunda kalab l r.

Bu k tap kapsamında Ver B l m aracı olarak Python programlama d l kullanılacaktır. Bu programın sah p
olduğu zeng n kütüphaneler sayes nde ver b l m problemler ne hızlı çözüm üret leb lmekted r. Bu
bölümde bu programlama d l ç n gerekl olan araçlar ve kurulumları anlatılacaktır. 

Python kodları ve ver b l m uygulamalarının denenmes ç n IDE (Integrated Development Env ronment
– Tümleş k Gel şt rme Ortamı) olarak adlandırılan b r ortama ht yaç vardır. Bu k tap kapsamında IDE
ortamı olarak kolaylığı ve kullanışlılığı sebeb yle ver b l m nde yaygın kullanım alanı bulan Jupyter
Notebook kullanılacaktır. Bu bölümde bu çalışma k tabının kend b lg sayarınızda nasıl akt f ed leceğ
açıklanmıştır.    

2.1. Python Programlama Dili

Python, Gu do Van Rossum tarafından 1990 yılında gel şt r lmeye başlanan nesne yönel ml ,
yorumlanab len ve yüksek sev yel b r programlama d l d r. İlk ortaya çıkışından bu yana yazılım ve
özell kle ver b l m uygulamalarında en fazla kullanılan popüler programlama d ller nden b r hal ne
geld . Bu d l bu kadar popüler yapan etmenler n başında Numpy, Pandas ve Sc k t-learn g b sah p
olduğu b rçok gel şt rme aracı kütüphaneler n açık kaynak kodlu olarak ücrets z b r şek lde
nd r leb lmes d r. Bu yapısı Python’u genel amaçlı yazılım mühend sl ğ ve ver uygulamaları gel şt rmek
ç n öğren lmes gereken en öneml d llerden b r hal ne get rm şt r. Yayınlanan sürümler düzenl olarak
https://www.python.org/ s tes nde lan ed lmekte ve eklenen yen l kler açıklanmaktadır. Bu dokümanın
yazılma sürec nde en son sürüm olarak October 5th,2020 tar h nde Python 3.9 yayınlanmıştır. Python
3’ün öncek sürümler nde yazılan kodlar Python 3.9’da çalışmaktadır.

2.2. Python ile Veri Bilimi Arasındaki İlişki

Python, popülerl ğ n hızlı b r şek lde arttırmaktadır. İlk defa programlamaya başlangıç yapanlar ya da
farklı d llerde uzmanlaşanlar “Python öğrenmel m y m?” sorusunu sormaktadır. Uzun yıllar önce
programlama öğrenmek steyenler ç n b r programlama d l n öğrenmek veya aş na olmak ş md k nden
çok daha zordu. Ancak zamanla nsan d l ne yakın den leb lecek yüksek sev yel programlama d ller
ortaya çıkmıştır.

Python kodlarını yorumlamak ve öğrenmek d ğer d llere göre daha kolaydır. D ğer d llerde bulunan
noktalama şaret zorunlulukları, parantezler veya kurallar programlamaya yen başlayan kullanıcı ç n
zaman zaman zorluklar çıkarmaktadır. Python’da bu tür zorunluluklar olmadığı g b yapısı t bar yle d ğer
d llere göre daha saded r. Python, söz d z m açısından algor tma tabanlı b r d l olup C veya C++ g b ver
yapısı tabanlı b r d l değ ld r. Python öğrenmek, önceden kodlama deney m olan ve deney m
olmayanlar k ş ler ç nde uygun b r d ld r.

Ayrıca Python, bel rl b r gel şt r c topluluğuna ve öğret c dokümana sah p olmuştur. Python le program
gel şt r rken karşılaşmanız muhtemel olan b rçok sorunun cevabı stackoverflow g b s telerde
bulunmaktadır. Buda Python’u öğren rken hızlı lerlemen ze mkan sağlar. Python, M croso , L nux ve
Mac OS X üzer nde çalışab len ve PyPI le d ğer d llerle etk leş m sağlayan b r d ld r. En öneml s de
Google, Python'u resm programlama d l olarak lan etmes onun ne kadar öneml b r d l olduğunu
göstermekted r.  Ancak, Java ve C’ye göre daha yavaş çalışır.  

Python'un ver anal z ç n neden bu kadar öneml olduğunu ncelemeden önce, ver anal z le ver b l m
arasındak l şk y kurmak öneml d r. Çünkü Ver B l m programlama d l nden büyük ölçüde yararlanma
eğ l m nded r. Başka b r dey şle, Python'un ver b l m ç n yararlı olmasının b rçok neden , aynı zamanda
ver anal z ç n uygun olmasının da nedenler n oluşturur.

Ver anal stler , sonuçları anal z etmekten ve raporlar oluşturmaktan sorumludur. Ver anal stler ,
kend ler ne sunulan soruları yanıtlamak ç n ver ler kullanarak günlük şler kotarırken, Ver b l mc ler
geleceğ tahm n etmeye ve bu tahm nler yen sorularla çerçevelemeye çalışır. Başka b r dey şle, ver
anal stler günlük şlere odaklanırken, ver b l mc ler se olab lecekler tahm n etmeye çalışır. Her k
meslek de yazılım mühend sl ğ b lg s , temel matemat k b lg s ve algor tmaların anlaşılmasını gerekt r r.
Dahası, her k meslek de R, SQL ve tab k Python g b programlama d ller b lg s ne ht yaç duyar. Sonuç
olarak, b r ver b l mc s n n deal olarak güçlü b r problem çözme zekâsına sah p olması gerek rken, ver
anal st n n Excel ve Tablue g b araçları kullanab lme konusunda yetk n olmalıdır.

2.3. Python Programlama Dilinin Kurulumu

İnternet tarayıcısını (browser) açıp adres çubuğuna https://www.anaconda.com/  adres yazılır. Açılan
pencereden “Products” sekmes ne tıklanır. Daha sonra aşağı doğru açılan pencereden en üstte yer alan
“Ind v dual Ed t on” e tıklandıktan sonra aşağıdak şek lde ver len ekran görüntüsüne ulaşılır. 
Şek l 2.1. Anaconda kurulum ve sürüm seç m ekranı

Açılan ‘Your data sc ence toolk t’ ekranın altında yer alan “Download” düğmes ne basılıyor.

Şek l 2.2. Anaconda kurulumu ç n seç len sürümün yükleme ekranı

Açılan

pencerede şlet m s stemler ne ve şlemc n z n (64 b t- 32 b t) durumuna göre Şek l 2.5’te göster len lg l
sekme tıklanır. Bu şlemden sonra program b lg sayarınızda bel rtt ğ n z b r klasöre yüklenmeye
başlayacak ve kuruluma geçecekt r. 

Şek l 2.3. İşlet m s stem ve şlemc ye göre kurulacak sürümün seç m ekranı

2.4. Python Programlama Dilinin Kurulumu


Kurulumdan sonra b lg sayarınızın başlat menüsünde bulunan ara sekmes n n ç ne “anaconda” yazarak
uygulamanın nerede olduğunu bulab l rs n z. Açılan pencerede en üstte yer alan “Jupyter Notebook” a
sağ tıklayarak sağa doğru açılan pencerede “Görev çubuğuna sab tle” sekmes ne tıklayarak, görev
çubuğuna sab tlem ş olursunuz (Şek l 2.6).

Şek l 2.4. Jup ter Notebook’un görev çubuğuna sab tlenmes

Bu sayede Python ve Ver B l m öğrenme sürec nde gel şt rme ortamı olarak kullanılacak olan araca daha
hızlı er ş m sağlanır. Bunun ç n sadece görev çubuğunda sab tlenm ş olan Jupyter Notebook s mges ne
tıklanır (Şek l 2.7).

Şek l 2.5. Jupyter Notebook gel şt rme ortamının çalıştırılması

Daha sonra aşağıda ver len ekran görüntüsüne ulaşmış oluruz. 

Şek l 2.6. Jupyter Notebook gel şt rme ortamının ana ekranı


Bu ekranın sağ üst köşes nde yer “New” sekmes ne tıklanır ve aşağı doğru açılan pencereden “Python3”
seç lerek tıklanır.

  

Şek l 2.7. Jupyter Notebook çalışma ç n Python 3’ün seç lme ekranı

Bu aşamadan sonra k tap boyunca anlatılacak örnekler n kodlandığı ve denend ğ aşağıdak şek lde
göster len bütünleş k Jupyter Notebook gel şt rme ortamına er ş lm ş olunur.

Şek l 2.8. Jupyter Notebook bütünleş k gel şt rme ara yüzü

Bölüm Özeti

Bu bölümde Ver Blm çalışmalarımızdak kodlamalar ç n kullanılacak olan Python d l n n


özell kler nden kısaca bahsed lm şt r. Daha sonra Ver B l m le Python arasındak l şk kurularak neden
ver b l m uygulamalarında bu d l n kullanıldığı açıklanmaya çalışılmıştır. Son olarak Python ve Jupyter
Notebook gel şt rme ortamının kullanıcıların kend b lg sayarlarına nasıl akt f edecekler ekran
görüntüler le adım adım anlatılmıştır.

Kaynakça

İlker Arslan, “Python le Ver B l m ”, Pusula, 2. Baskı, 2019

WEB: https://www.anaconda.com/

WEB: https://www.python.org/doc/essays/blurb/
Ünite Soruları

1. Aşağıda ver len tar hlerden hang s Python d l n n ortaya çıkışı olarak kabul ed l r?

A) 1980

B) 1995

C) 1999

D) 1990

2. Aşağıda ver len adreslerden hang s Python d l n n resm web s tes d r?

A) https://www.python1.org/

B) https://www.python.org/

C) https://www.python.net/

D) https://www.python. o/

3. Aşağıda ver len fadelerden hang s Python d l ç n yanlıştır?

A) Ücrets z sürümler vardır

B) Ver B l m nde yaygın kullanılır.

C) Öğrenmes kolaydır
D) C d l ne göre daha hızlıdır.

4. Aşağıda ver len fadelerden hang s Ver Anal stler ç n doğru b r söylemd r?

A) Daha çok günlük rut n ver şlemler le uğraşırlar.

B) Güçlü problem çözme özell kler olması gerek r

C) Ver B l mc lere göre daha fazla ücret alırlar.

D) R, Python g b d ller b lmes ne gerek yoktur

5. Aşağıda ver len Python ürünler nden hang s b reysel kullanıcılar ç nd r?

A) Team Ed t on

B) Commerc al Ed t on

C) Ind v dual Ed t on

D) Enterpr se Ed t on.

6. Python’un aşağıda ver len şlet m s stemler n n hang s ne kurulumu desteklenmez?

A) W ndows.

B) L nux

C) Netware

D) MacOS
7. Aşağıda Jupyter Notebook ç n ver len fadelerden hang s yanlıştır?

A) Kullanımı kolaydır.

B) Python d l tarafından desteklenmez.

C) Ücrets z b r uygulamadır

D) Web arayüzü görünümünded r. 

8. Aşağıda ver len sürümlerden hang s en güncel süreme yakın Python sürümüdür?

A) Python 1.4

B) Python 3.9

C) Python 3.7

D) Python 2.9

9. Aşağıdak şıklardan hang s W ndows, MacOS ve L nux tarafından desteklenen şlemc


türüdür.?

A) 16 b t

B) 32 b t

C) 64 b t

D) 48 b t
10. Aşağıdak şıklardan hang s sadece W ndows şlet m s stem tarafından desteklenen
şlemc türüdür.?

A) 32 b t

B) 64 b t

C) 48 b t

D) 16 b t

CEVAP ANAHTARI

1. d 2. b 3. d 4. a 5. c 6. c 7. b 8. b 9. c 10. a
3. PYTHON’A ÖZGÜ VERİ YAPILARI-1 (LİSTE)

Giriş

Ver ler sürekl olarak artmaktadır. Bu ver ler n şlenmes ve anlamlı hale get r lmes ç n araçlara h tyaç
vardır. Geleneksel programlama araçlarının b r çoğu bu ver ler şlemek ç n gerekl özell klere ve ver
yapılarına sah p değ ld r. Bundan dolayı ver b l m yapmak ç n b r araca/tool’a ht yaç vardır. Bu
bölümde bu araçlardan olan Python d l ne özgü ver yapılarından en öneml s   olan L ste yapısı detaylı b r
şek lde örneklerle açıklanmıştır.

3.1. Python’da Değişken Tanımlama

B r Python değ şken , sayısal ya da met nsel değerler saklamak ç n b lg sayar belleğ nde ayrılan konumu
tanımlar. Başka b r dey şle, python programındak b r değ şken, şlenmes ç n b lg sayara ver ver r.
Temelde sayısal ve met nsel olmak üzere k t p ver vardır. Python'dak değ şkenler, herhang b r adla
veya a, bb, abc g b alfabelerle b ld r leb l r/tanımlanab l r.

Bunun ç n sağdak örnekler nceleyel m. Python'da lk olarak sayısal t pe atfen "s" adlı b r değ şken
tanımlayıp çer ğ ne sayısal b r değer aktarılmıştır. Daha sonra met nsel t pe atfen "m" adlı b r değ şken
tanımlayıp çer ğ ne met nsel b r değer aktarılmıştır. Met nsel fadeler; " " ç tırnak çer s nde yazılır.
Değ şkenlere değer atama şlem genelde sağdan sola doğru olup; atama şlem ç n “=” şaret kullanılır.

Şek l 3.1. Değ şken tanımlama

Yukarıdak ekran görüntüler ne d kkat ed l rse bazı satırlar yeş l olarak gözükmekted r. Bu satırlar
açıklama satırları olup program çalıştırılınca d kkate alınmaz. Python d l nde açıklama satırları # şaret
kullanılarak oluşturulur. Buna göre yukarıdak b r nc ekranda sadece 3. satırda yer alan s=100 komutu;
k nc ekranda se sadece 4. Satırda yer alan m=“Ver B l m ” komutu değerlend rmeye alınır. Bel rt len
değ şkenlere değerler n atanması şlem n n gerçekleşmes ç n programın çalıştırılması (run) gerek r.
Bunun ç n aşağıdak ekranda gözüken Jupyter NoteBook ara yüzü üst kısmında bulunan ► şaret ne
basmak gerek r.

Şek l 3.2. Yazılan programın çalıştırılması (run ed lmes )

Değ şken değerler n n ekranda görüntülenmes ya da çıktı şlem ç n pr nt( ) fonks yonu kullanılır.
Parantez çer s ne, ekrana yazdırılacak değ şken adı g r l r. Ya da değ şken adları teker teker yazdırılıp
çalıştırıldıktan sonra değ şken değerler ekrana yazdırılmış olur. Aşağıda ver len Şek l 3.3’tek ekran
çıktısında; Şek l 3.1’de tanımlanmış olan “s” ve “m” değ şkenler her k yöntem kullanılarak ekrana
yazdırılmıştır.

Şek l 3.3. Değ şkenler n ekrana yazdırılması

3.1.1. Temel Sayısal Veri Tipleri

Temelde sayısal ver t pler nteger ve float olmak üzere k kısma ayrılır.  Integer ver t p , v rgül çermeyen
sayıları fade eder. Float ver t p se v rgül çeren (ondalıklı) sayıları çer r. Aşağıdak ekran çıktısında bu k
sayı t p ne örnek ver lm şt r (Şek l 3.4).
Şek l 3.4. Integer ve float ver t p

3.2. Python'a Özgü Veri Yapıları

Python’da L ste, Tuple, Küme ve Sözlük olmak üzere dört farklı ver yapısı vardır. Bu ver yapıları Python
d l ne özgüdür. Bu yapılar Python ortamında farklı ver türler n depolamada daha fazla esnekl k ve daha
hızlı şlem sağlar. Sonrak bölümlerde, bu ver yapılarının her b r n n Python kullanılarak nasıl
uygulanab leceğ n n ayrıntıları ver lm şt r.

3.2.1. Liste Veri Yapısı Oluşturma

L ste, sıralı b r öğe d z s d r. Ancak l ste farklı ver türler n çereb l r. Yan b r l stedek tüm öğeler n aynı
türde olması gerekmez. Bu özell ğ le l ste,  Python'da en çok kullanılan ver yapılarından b r olup esnek
b r yapıya sah pt r. L steler le b rden fazla numarayı, metn veya farklı ver t p n aynı değ şken yapı
çer s nde saklamak mümkündür. L ste [ ] köşel parantez kullanılarak oluşturulur. L stelerde ver ler [ ]
çer s nde yer alır ve v rgüllerle ayrılırlar. Aşağıdak ekran görüntüsünde (Şek l 3.5) “ l ste”1 adı le
oluşturulmuş b r l ste örneğ yer almaktadır. 

Şek l 3.5 L ste oluşturma örneğ

Python’da l ste elemanlarına er ş m nd s değer le gerçekleşmekted r. Python’da nd s değerler 0’dan


başlar. Er ş lmek stenen nd s değer ne L ste_adı [ nd s_no] yazılarak er ş m sağlanır. Benzer b ç mde
değ ş m stenen elemanın nd s değer g r l r. L ste_adı [ nd s_no] =yen _deger ve eş tl kten sonra yen
değer yazılır. Aşağıdak ekran görüntüsünde (Şek l 3.6) lk olarak l sten n b r nc elemanının ( nd s
değer =0) değer ekrana yazdırılmıştır. Daha sonra bu değer yen b r değer le değ şt r lm şt r.
Şek l 3.6. L ste elemanlarına er ş m örneğ

L ste uzunluğunu öğrenmek ç n Len() metodu kullanılır. L steye eleman eklemek ç n  .append( ) metodu
kullanılır. L steye eklenecek eleman .append(eklenecek_eleman) tırnak çer s ne yazılır. Bu şlemlere a t
örnekler aşağıdak ekran görüntüler nde Şek l 3.7 ve Şek l 3.8’de sırası le ver lm şt r.

Şek l 3.7. L sten n uzunluğunu öğrenme

Şek l 3.8. L steye yen b r eleman ekleme

3.2.2. Liste İçerisine Başka Bir Liste Eklemek

Bu şlem ç n lk olarak elemanları met n olan b r l ste oluşturalım. Daha sonra bu l stey , önceden
oluşturduğumuz sayısal l ste çer s ne ekleyel m. Aşağıdak şek lde (Şek l 3.9) yapılan şlemler n ekran
çıktısı gözükmekted r.
Şek l 3.9. L steye farklı b r l ste eklemek

3.2.3. Listenin Birden Çok Elemanına Erişmek

B rden çok elemana er şmek ç n : kullanılır. Ardışık elemanları yazmak ç n nd sler [a:b] b ç m nde
yazılır. Bu yapıda Python, a le başlayan fakat b-1 le b ten elemanları göstermekted r. Yan başka b r fade
le bell aralıkta elemana er şmek stersek lk harf başlangıç nd s , son harf se er ş lmek stenen elemanın
nd s değer n n b r fazlası olması gerek r.

Aşağıdak örnekte  (Şek l 3.10) görüldüğü üzere l sten n lk dört elemanına er şmek ç n, er ş lmek stenen
eleman sayısının b r üst değer olarak nd s değer g r lmes gerek r

Şek l 3.10. L sten n b rden çok elemanına er şmek

İşaret n başına [:] b r şey yazılmasa başlangıç değer olarak “0” sıfır alınır. Yan [:b] le [0:b] aynı anlama
gelmekted r. Bu şlem n ters de doğrudur. Yan [a:]  yazıldığında l ste elemanı a nd sl değerden başlayıp
l sten n son elemanına kadar tümünü yazdırır. Bu fadeler ekran görüntüsü Şek l 3.11’de ver len
örneklerle açıklanmıştır.  
Şek l 3.11. Başlangıç veya b t ş nd s bel rt lmeden stenen sayıda elemana er şmek

L ste elemanlarını bell b r atlama aralığı le yazdırmak mümkündür. Bu şlem ç n [a:b:k] formatı
kullanılır. Burada k, l ste elemanlarını yazdırırken atlanılacak aralık değer n bel rt r (Şek l 3.12).

Şek l 3.12. Atlama aralığı le l ste elemanlarını yazdırmak

3.2.3. Liste Veri Yapısında Kullanılan Bazı Yararlı Metotlar

Bu bölümde l ste ver yapısı le kullanılan . ndex(), .pop(), .del(), .remove() ve .sorted() g b bazı yararlı
metotlarının kullanımı le lg l örnekler ver lm şt r. Ş md bu metotları sırası le nceleyel m.

L stedek b r elemanın hang sırada olduğunu yan nd s numarasını öğrenmek ç n . ndex() metodu
kullanılır. Aşağıda Şek l 3.13’de ver len örnekte lk olarak “adlar” adlı çer ğ met nsel olan b r l ste
oluşturulmuştur. Daha sonra bu l stede yer alana “Hasan” adlı sm n l stedek nd s numarası ekrana
yazdırılmıştır. 

Şek l 3.13. L stedek b r elemanın nd s numarasını bulmak

L stede yer alan bell b r sıradak elemanı s lmek ç n .pop() metodu kullanılır. S l necek elemanın nd s
değer parantez çer s ne yazılır. Aşağıda Şek l 3.14’te ver len örnekte nd s değer g r len eleman l steden
s l nm şt r.
Şek l 3.14. L stede nd s numarası g r len elemanı s lmek

L stedek bell b r sıradak elemanı s lmek ç n k nc b r metot olarak  del() metodu kullanılır. Ancak
bunun kullanımı .pop() metodundan b raz farklıdır. Benzer b r şlem .remove() metodu le de yapmak
mümkündür.

Aşağıda Şek l 3.15’te ver len örnekte lk olarak “f nal” adlı b r l ste oluşturulmuştur. Daha sonra bu
l steden nd s değer 2 olan eleman del() komutu yardımıyla s l nm şt r. İk nc örnek se aynı l steden
değer 77 olan eleman bu sefer .remove() metodu kullanılarak s l nm şt r.  Sonuçlar sırası le ekrana
yazdırılmıştır.

Şek l 3.15. L steden del() ve .remove() metodu le eleman s lmek

L stede yer alan elemanları sıralamak ç n .sorted() metodu kullanılır. Sıralama şlem büyükten küçüğe
yapmak ç n reverse=TRUE argümanı yazılması gerek r. L stedek elemanları tersten yazdırma ç n se
.reverse() metodu kullanılır.

Aşağıda Şek l 3.16’da ver len örnekte lk olarak “sıcaklık_değerler ” adlı b r l ste oluşturulmuştur. Daha
sonra bu l sten n elemanları küçükten büyüğe sıralanmıştır. İk nc örnek sıralama şlem reverse=TRUE
argümanı kullanılarak büyükten küçüğe doğru gerçekleşt r lm şt r. Üçüncü örnekte se  l ste elemanları
.reverse() metodu kullanılarak ters çevr lm şt r.  Yapılan şlemler n sonuçları sırası le ekrana yazdırılmıştır.
Şek l 3.16. L ste elemanlarını sıralama ve ters çev rme

Bölüm Özeti

Bu bölümde lk olarak Python d l ne a t temel ver t pler ve değ şkenler hakkında b lg ver lm ş ve
Jupyter Notebook gel şt rme ara yüzünde bu ver t pler ç n yapılan örnekler n ekran görüntüler
sunulmuştur.

Ayrıca Python d l ne özgü yapılarından L ste ver yapısı hakkında genel b lg ver ld kten sonra L ste’ye a t
özell klerle le lg l b rçok örnek yapılarak konunun anlaşılması sağlanmaya çalışılmıştır. Her örneğe a t
ekran görüntüler ayrıca ver lm şt r.

Kaynakça

Atıl Samancıoğlu, “Python Sıfırdan Uzmanlığa Programlama”, Un Kod, 1. Baskı, 2020

İlker Arslan “Python le Ver B l m ”, Pusula, 2. Baskı, 2019

WEB: https://www.w3schools.com/python/python_l sts.asp


Ünite Soruları

1. 150 sayısının Python ‘da b r değ şkene atanma b ç m aşağıdak şıklardan hang s nde
doğru olarak ver lm şt r?

A) k=150.0

B) k= “150”

C) k=150

D) k=(150)

2. Python’da açıklama satırı yazmak ç n aşağıdak hang şaret satırın başına yazılır? 

A) !

B) #

C) $

D) %

3. z olarak ver len b r değ şken n değer n ekrana yazdırmak ç n Python’da aşağıda ver len
komutlardan hang s kullanılır?

A) pr nt(z)

B) pr nt “z”
C) pr nt z

D) pr nt-z

4.  5+5 sayı toplamının ver t p aşağıdak şıklardan hang s nde doğru olarak ver lm şt r?

A) met n

B) float

C) str ng

D) nteger

5. Aşağıdak şıklarda ver len fadelerden hang s Python’a özgü ver yapılarından b r
değ ld r?

A) Tuple

B) Konteynır

C) Küme

D) Sözlük

6.  34,44,54,64,74 sayıları L ste ver yapısında oluşturulmak sten yor. Aşağıda ver len
şıklardan hang s bu şlem doğru olarak fade etmekted r?

A) L ste=(34,44,54,64,74)

B) L ste={34,44,54,64,74}
C) L ste=[34.44.54.64.74]

D) L ste=[34,44,54,64,74]

7.   34,44,54,64,74 sayılarının L ste10 adıyla l ste ver yapısında oluşturulduğunu kabul ed n.


Oluşturulan bu l steye 84 nolu sayıyı ekleyecek komut aşağıdak şıklarda hang s nde doğru
olarak ver lm şt r.

A) L ste10.append(84)

B) L ste10.add(84)

C) L ste10.add[84]

D) L ste10.append[84]

8.  110,120,130,140,150,160 sayılarının l ste b ç m nde L ste 20 adıyla tanımladığını göz


önüne alın. L ste20[2:4] komutuyla l sten n hang elemanları göster lm ş olur?

A) 130,140

B) 140,150

C) 130,140,150

D) 120,130,140

9.  Elemanları 110,120,130,140,150,160 sayılarından oluşan ve L ste30 adıyla oluşturulan b r


l steden, 140 sayısını s len komut aşağıdak şıklardan hang s nde doğru olarak ver lm şt r?

A) L ste30.del(140)
B) del.L ste30(140)

C) L ste30.remove(140)

D) L ste30.remove[140]

10.  Elemanları 110,120,130,140,150,160,170 sayılarından oluşan ve L ste40 adıyla b r l ste


oluşturulduğunu göz önüne alın. Buna göre del(L ste40[4]) komutu çalıştırılınca aşağıdak
şlemlerden hang s n yapar?

A) 140 sayısını s ler

B) 110,120,130,140 sayılarını s ler

C) 140,150,160,170 sayılarını s ler

D) 150 sayısını s ler

CEVAP ANAHTARI

1. c 2. b 3. a 4. d 5. b 6. c 7. a 8. a 9. c 10. d
4. PYTHON’A ÖZGÜ VERİ YAPILARI-2 (TUPLE, KÜME,
SÖZLÜK)

Giriş

B r ver b l mc olarak ş m z ver lerle uğraşmak. Gerçek dünyada ver ler farklı b ç mlerde ve yerlerde
tutulmaktadır. Dolayısıyla her ver n n saklanacağı ver yapısı farklı olab lmekted r. Ver b l m nde
kullanacağımız araç olan Python d l ne özgü ver yapılarının özell kler n y b l rsek önümüze çıkacak ver
b l m problemler nde ver ler n hang b ç mde tutulup şleneceğ ne daha y karar ver p daha başarılı
sonuçlar elde edeb l r z.

4.1. Tuple (Demet) Veri Yapısı

Tuples, tıpkı l steler g b sıralı b r öğe d z s d r. Tuple'lar ve l steler arasındak temel fark;  L stelerden farklı
olarak Tupple’da ver değerler n değ şt rmek mümkün değ ld r. Bunun neden çer ğ değ şt r lmemes
gereken ver ler Tuple ver yapısında tutulur.

4.1.1. Tuple Oluşturma

Öğeler, v rgülle ayrılmış olarak parantezler n () ç ne yerleşt r lerek b r demet (Tuple) oluşturulur.
Parantezler steğe bağlıdır, ancak bunları kullanmak uygulamada kolaylık sağlar.  B r demet farklı
türlerde ( nteger, float, l ste, str ng, vb.) öğeye sah p olab l r. Aşağıda Şek l 4.1’de ver len ekran
görüntüsünde lk olarak float t p nde öğe çeren b r demet oluşturulmuştur. İk nc s nde se hem met n
(str ng) hem de nteger öğe çeren b r tuple nesnes oluşturulmuştur. 

Şek l 4.1. Tuple oluşturma

4.1.2. Tuple Öğelerine Erişim


B r demet n öğeler ne nd s numaraları kullanılarak er ş m sağlanır. Tuple’da nd s numaraları l stelerde
olduğu g b sıfır (0)'dan başlar.  Bu nedenle örneğ n 6 elemanlı b r demet, 0'dan 5'e kadar nd slere sah p
olacaktır. Demettek b r öğeye er şmek ç n köşel parantez [ ] çer s ne nd s numarası olarak b r tam sayı
yazılmalıdır. Float ya da d ğer sayı türler nd s numarası olarak kullanılmaz. Aşağıda Şek l 4.2’de ver len
örnekte oluşturulan tuple2 nesnes n n sıfırıncı ve beş nc nd s numaralarına karşılık gelen elemanlar
ekrana yazdırılmıştır.  

Şek l 4.2. Tuple öğelere er ş m

Ver yapılarında değ şken ve değ şmez türler vardır. Ver nesneler , şlenmek üzere b r b lg sayarın
belleğ nde saklanır. Bu değerlerden bazıları programın çalışması sırasında değ şt r leb l r (mutable).
Ancak d ğerler n n çer kler bellekte oluşturulduktan sonra değ şt r lemez ( mmutable). Sayılar, met nler
ve Tuple'lar değ şmez olması demek çer kler n n oluşturulduktan sonra değ şt r lemeyeceğ anlamına
gel r. Öte yandan, L ste veya Sözlük nesnes ndek öğeler değ şt r leb l r. B r l ste veya sözlüktek öğeler
eklemek, s lmek ve yen den düzenlemek mümkündür. Dolayısıyla bu ver yapıları değ şt r leb l r
nesnelerd r. Tuple’ın baştak tanımında fade ed ld ğ g b tuple elemanlarının çer ğ değ şt r lemez
özell ğ vardır. Başka b r fade le TUPLE nesneler ne ver eklemek ve ver s lmek şlem gerçekleşmez.

Aşağıda Şek l 4.3’te ver len örnekte görüldüğü g b Tuple2’n n sıfırıncı nd s nolu elemanının çer ğ
değ şt r lmek stenm şt r. Ancak bu şlem “ mmutable” özell ğ nden dolayı gerçekleşmey p hata
verm şt r.   

Şek l 4.3. Tuple ver yapısının değ şt r lemezl k özell ğ

Ancak elemanları değ şt r lemeyen Tuple nesnes n n çer ğ n farklı değ şkenlere atamak mümkündür.
Aşağıdak örnekte tuple3 ve tuple5 nesneler n n her b r elemanı farklı b r değ şkene aktarılmıştır (Şek l
4.4).
Şek l 4.4. Tuple elemanlarının değ şkenlere aktarılması

4.1.3. Listeye Göre Tuple Avantajları

Tuple’lar L stelere oldukça benzed ğ nden k s de benzer durumlarda kullanılır. Bununla b rl kte, b r
l steye b r tuple uygulamanın bel rl avantajları vardır. Aşağıda bu avantajlardan bazıları ver lm şt r:

 Genelde heterojen (farklı) ver türler ç n Tuple ve homojen (benzer) ver türler ç n l steler kullanırız.

  Tuple’lar değ şmez olduğundan, b r demet boyunca y neleme, L ste’den daha hızlıdır. Yan haf f b r
performans artışı var.

  Değ şmez öğeler çeren demetler, b r sözlük ç n anahtar olarak kullanılab l r. L stelerle bu mümkün
değ ld r.

 Değ şmeyen ver ler n z varsa, onu Tuple olarak uygulamak, yazmaya karşı korumalı kalması sağlanır.

4.2. Küme (Set) Veri Yapısı

Küme (set), farklı nesneler n değ şt r leb l r, sıralanmamış b r koleks yonudur. Ver nesneler n sıralama
olmadan her nesneden sadece b r tane olacak şek lde kaydetmek ç n Set (küme) yapısı kullanılır. Küme,
Matemat ktek kümen n b r Python uygulamasıdır. Küme nesnes n n, b rleş m, kes ş m, fark vb.
Matemat ksel küme şlemler n gerçekleşt rmek ç n uygun yöntemler vardır. Küme ver yapısında,
ver ler n sırası öneml değ ld r. Set’ler, l stelerde olduğu g b sonradan değ şt r leb l r ver ler çer r.

4.2.1. Küme Oluşturma

Kümeler, b r kaç farklı şek lde oluşturulab l r. B r nc s d rekt olarak Pythonda yerleş k b r fonks yon olan
set () fonks yonunu kullanarak d rekt olarak b r küme oluşturulab l r. İk nc olarak L ste veya Tuple ver
yapısında oluşturulmuş b r ver nesnes set() fonks yonu kullanılarak küme yapısına dönüştürülür. D ğer
b r yöntem se küme parantezler { } çer s ne “v rgül” le ayrılmış öğeler yazılarak oluşturulur.  Kümedek
öğeler n türler n n aynı olması gerekmez, kümeye çeş tl karışık ver türü değerler aktarılab l r.
Aşağıdak ekran görüntüsünde (Şek l 4.5) lk olarak b r l ste oluşturulmuştur. Daha sonra bu l ste
set(l stem) komutu le kümeye dönüştürülmüştür. Type() komutu le de oluşturulan nesnen n ver t p
görüntülenm şt r. Son örnekte se süslü parantez {} çer s ne d rekt olarak öğeler n yazılmasıyla
oluşturulmuş küme ver lm şt r. D kkat ed l rse [] parantez ver t p n n L ste olduğunu fade ederken, {} se
ver t p n n küme olduğunu göstermekted r.

Şek l 4.5. Küme oluşturma örnekler

Aşağıda Şek l 4.6’da ekran görüntüler örnekte se Tuple ver yapısında yer alan ver ler küme ver yapısına
dönüştürülmes n n adımları gözükmekted r.

Şek l 4.6. Tuple ver yapısını kümeye dönüştürme

4.2.2. Kümeye Veri Ekleme, Silme ve Çıkarma İşlemleri


Kümeye ver eklemek ç n .add( ) metodu kullanılır. Ancak bu metot kümeye sadece b r eleman ekler.
B rden çok eleman eklenmeye çalışılırsa hata ver r. B rden fazla eleman eklemek ç n .update() komutu
kullanılır. Ancak bu yaklaşımda kümeye ver b r l ste olarak eklen r. Bunun ç n eklenecek ver önce l ste
olarak oluşturulur, daha sonra kümeye eklen r.

Aşağıda ver len ve Şek l 4.7’de gözüken örnekte; lk olarak “alışver ş” küme ver s ekrana yazdırıldı. İk nc
olarak  bu kümeye .add() metodu le yoğurt öğes eklend r. Üçüncü adımda b rden fazla eleman eklemek
ç n “ek_l ste” adında b r l ste oluşturuldu. Daha sonra bu ek l ste “alışver ş” küme ver s ne eklenerek
ekrana yazdırıldı. 

Şek l 4.7. Kümeye ver ekleme şlem

Kümeden öğe çıkarma şlem ç n .d scard( ) metodu kullanılır. S lme şlem ç n se .pop() metodu
kullanılır. Ancak kümeler düzens z ver yapıları olduğundan  .pop() le hang elemanın s l neceğ önceden
b l nmez. Bu metot rasgele küme elemanlarından b r n s ler.

Aşağıdak örnekte (Şek l 4.8) bu k şlem n adımları ver lm şt r. İlk olarak .d scard( ) metodu le yoğurt
öğes kümeden çıkarılmıştır. Daha sonra .pop() metodu le kümeden b r eleman s l nm şt r. Ancak bu
eleman d kkat ed ld ğ g b b r nc sıradak ya da sonuncu sıradak eleman değ ld r. Rasgele olarak
“sucuk” elemanı s l nm şt r. 

Şek l 4.8. Kümeden eleman çıkarma ve s lme şlem

4.3. Alt Başlık : Sözlük Veri Yapısı


Sözlük ver yapısı, b r öğe olarak yalnızca tek b r değer tutan d ğer Ver Türler nden farklı olarak, b r
har ta g b ver değerler n depolamak ç n kullanılan, sırasız b r ver değerler koleks yonudur. Sözlük
oluşturmak ç n b r adet anahtar(key), b r adet değer(value)olması gerek r. Sözlük'tek her anahtar -
değer ç k nokta üst üste “:” le ayrılırken, her anahtar -değer ç d ğer anahtar-değer ç ler nden
"v rgül" le ayrılır.

4.3.1. Sözlük Oluşturma

Sözlük ver yapısı, “v rgül” le ayrılmış küme parantezler {} ç ne b r d z öğe yerleşt r lerek oluşturulab l r.
B r sözlüktek değerler herhang b r ver türünde olab l r ve çoğaltılab l r, Sözlük ayrıca yerleş k d ct ()
fonks yonu le de oluşturulab l r. Sözlük ver yapısının genel formatı  sozluk={"key":"value"} şekl nded r.

Aşağıdak Şek l 4.9’da ver len ekran görüntüsünde lk olarak model ve f yat l steler oluşturuldu. İk nc
adımda bu k l ste anahtar-değer b ç m nde modelf yat_sozluk1 adı le sözlük ver yapısına nasıl
dönüştürüldüğü göster lm şt r. Üçüncü adımda modelf yat_sozluk1 ver yapısının t p n n ne olduğu type()
komutu le ekrana yazdırılmıştır. Son adımda d ct () fonks yonu le bu k l sten n modelf yat_sozluk2
adıyla sözlük ver yapısına dönüştürülmes ver lm şt r.

Şek l 4.9. Sözlük oluşturma şlem

4.3.2. Sözlük Elemanlarına Erişmek ve Anahtar Kelimelerini Öğrenmek

Sözlük ver yapısı çer s nde yer alan elemanlara er şmek ç n L stelerde var olan ndeksleme
mantığı/yapısı kullanılır. Sözlükler b z m oluşturmadığımızı varsayıp, başka b r ver kaynağından
geld ğ n göz önüne alalım. Bu durumda sözlüğün anahtar ve değer öğeler n öğrenmek steyeb l r z. Bu
şek lde karışımıza çıknan b r sözlük ver s nden key'ler öğrenmek ç n .keys( ) metodu, sözlük değerler n
görmek ç n se  .values() metodu kullanılır.

Aşağıdak örneklerde (Şek l 4.10) bu şlemler sırasıyla göster lm şt r. İlk olarak sozluk4 adlı b r sözlük
oluşturuldu. D kkat ed l rse sözlük elemanlarından b r nc s nteger, k nc s l ste ve üçüncüsü sözlük ver
yapısındadır.  İk nc adımda “sozluk” anahtarının çer ğ ekrana yazdırıldı.  Üçüncü adımda sozluk4
sözlüpğünün lk önce anahtar  kel meler ve daha sonrada bu anahtarlara karşılık gelen değerler
görüntülend .
Şek l 4.10. Sözlük elemanlarına er şmek

4.3.3. Sözlük Elemanlarında Değişiklik ve Güncelleme Yapmak

Sözlüğün herhang b r elemanına değ şt rmek stersek, sözlüğün key (anahtar) kel mes n n değer / çer ğ
değ şt r l r. Sözlükte güncelleme yapmak ç n se .update( ) metodu kullanılır.

Aşağıda Şek l 4.11’de ver len ekran görüntüsünde lk olarak sozluk5 adlı b r sözlük oluşturulmuştur.
İk nc adımda bu sözlüğün k nc anahtar değer değ şt r lm şt r. Üçüncü olarak sozluk6 adlı yen b r
sözlük oluşturuldu. Dördüncü adımda yen _konut adlı başka b r sözlük oluşturuldu. Son olarak bu yen
sözlük .update() metodu le sozluk6 adlı sözlüğe eklenerek güncellenmes sağlandı.

Şek l 4.11. Sözlük elemanlarında değ ş kl k ve güncelleme şlem

Bu komutların dışında sözlük ver yapısında  .clear(), tems(), pop tem() ve pop()  metotları yaygın
olarak kullanılır.  Aşağıdak ekran görüntüsünde (Şek l 4.12) bu metotlara a t örnek şlemler ver lm şt r.
Şek l 4.12. Sözlük ver yapısında kullanılan bazı komut şlemler

Bölüm Özeti

Bu bölümde Python’a özgü ver yapılarından Tuple, Küme ve Sözlük yapıları anlatılmıştır. Her b r ver
yapısının oluşturulması, elemanlarına er ş lmes , eleman eklenmes , s l nmes ve ver yapılarının
güncellenmes özell kler ne a t detaylı örnekler yapılmıştır. Bu örneklere a t Jupyter Notebook’ta yazılan
kodların ekran görüntüler ver lm ş ve kodların açıklamaları adım adım yapılmıştır.

Kaynakça

WEB: https://www.program z.com/python-programm ng/tuple

Atıl Samancıoğlu, “Python Sıfırdan Uzmanlığa Programlama”, Un Kod, 1. Baskı, 2020

İlker Arslan “Python le Ver B l m ”, Pusula, 2. Baskı, 2019

Wes McK nney, “Python for Data Analys s”, O’Re lly Med a, Inc., 1005 Gravenste n H ghway North,
Sebastopol, CA 95472., İk nc Baskı, 2017
Ünite Soruları

1. Tuple (Demet) ver yapısı le lg l aşağıdak fadelerden hang s doğrudur?

A) Elemanları değ şt r leb l r

B) Tuple’da nd s değer 1’den başlar

C) Tuple elemanları değ şt r lemez

D) Tuple sadece sayısal değerler çereb l r

2. Elemanları 20,30,40,50,60,70,80,90,100 sayılarından oluşan Tuple5 adlı b r tuple nesnes


göz önüne alınız. Tuple5[8] komutunun sonucu aşağıdak şıklardan hang s nde doğru olarak
ver lm şt r?

A) 80

B) 100

C) 90

D) 80,90

3. Elemanları 120,130,140,150 sayılarından oluşan tuple6 adlı b r tuple nesnes göz önüne
alınız. Komut satırına x,y,z,k=tuple6 yazılıyor. Bu durumda z’n n değer ne olur?

A) 150
B) 120

C) 140

D) 130

4. Elemanları “A”, “B”, “C”, “D” ve adı Ben m_L ste olan b r l ste oluşturuluyor. Bu l ste küme
ver yapısına dönüştürülmek sten yor. Bunun ç n aşağıdak komutlardan hang s
kullanılmalıdır?

A) type()

B) add()

C) update()

D) set()

5. Elemanları “A”, “B”, “C”, “D” ve adı Ben m_Küme olan b r küme oluşturuluyor. Bu kümeden
“C” elemanı s l nmek sten rse aşağıdak komutlardan hang s yazılması gerek r?

A) Ben m_Küme.d scard(“C”)

B) Ben m_Küme.d scard(C)

C) Ben m_Küme.del(“C”)

D) Ben m_Küme.del(C)

6. T={“not1”: 34, “not2”: 44, “not3”: 54,} b ç m nde ver len b r yapı hang türde b r ver
yapısını fade eder?
A) Tuple

B) Sözlük

C) Küme

D) L ste

7. B r sözlüğün anahtar kel meler ne er şmek ç n aşağıda ver len hang komut kullanılır.

A) pop()

B) values()

C) keys()

D) len()

8. Adı “sepet m” olan b r küme göz önüne alın. Daha sonra komut satırına sepet m.pop()
komutu yazılıp çalıştırılıyor. Bu durumda aşağıda ver len fadelerden hang s doğrudur?

A) kümen n lk elemanını s ler

B) kümen n son elemanını s ler

C) kümen n ortasındak elemanı s ler

D) kümeden rasgele b r eleman s ler

9. Sözlük ver yapılarında kullanılan .pop tem() komutu ne yapar?

A) Sözlüğün lk anahtarını görüntüler


B) Sözlüğün son anahtarını s ler

C) Sözlüğün lk anahtar ve değer n s ler

D) Sözlüğün son anahtar ve değer n s ler

10. s={“Ad1”: “Canan”, “Ad2”: “Kemal”, “Ad3”: “Ayşe”} olarak ver len b r ver yapısında
“Canan” sm n “Mehmet Z ya” olarak değ şt recek komut aşağıdak şıklarda hang s nde
doğru olarak ver lm şt r?

A) s[“Ad1”]=“Mehmet Z ya”

B) s[“key1”]=“Mehmet Z ya”

C) s[“key1”]= Mehmet Z ya

D) s[“Ad1”]= Mehmet Z ya

CEVAP ANAHTARI

1. c 2. b 3. c 4. d 5. a 6. b 7. c 8. d 9. d 10. a
5. PYTHON’DA KONTROL YAPILARI-1

Giriş

Bu bölümde lk olarak programlama da kullanılan kontrol yapılarının genel ç mler nasıldır. Bu kontrol
yapılarının Python’da kullanım farklılıkları nelerd r. Sıralı, seçmel ve tekrarlı kontrol yapıları, Python
d l ne özgü ver yapıları le nasıl kullanılır. Tüm bu sorular bu bölümde örnekler ver lerek detaylı b r
şek lde ekran görüntüler le açıklanmıştır. Okuyucu bu bölüm sonunda bu yapıları kullanab lecek
yetenekler kazanab lecekt r.

5.1. Programlama Kontrol Akış Şekilleri

Kontrol akışı (yapısı), b r yazılım programının bağımsız fadeler n n, tal matlarının veya şlevler n n
yürütüldüğü ve değerlend r ld ğ sıradır. Bas tçe fade etmek gerek rse program akışı, kod satırlarının
şlend ğ sırayı tanımlayan genel b r ter md r. B r b lg sayar programı temel kontrol yapıları kullanılarak
yazılab l r. B r kontrol yapısı değ şkenler anal z eden ve ver len parametrelere göre g d lecek yönü seçen
b r programlama bloğudur. Başka b r fade le b r kontrol yapısı sadece b lg sayarın verd ğ b r karardır. Bu
nedenle, programlamada temel karar verme sürec d r ve kontrol akışı, b r b lg sayar programının bel rl
koşullar ve parametreler ver ld ğ nde nasıl tepk vereceğ n bel rler.

B lg sayar programlamasının ver ler ve yönergeler olmak üzere k temel yönü vardır. Ver lerle çalışmak
ç n değ şkenler ve ver türler n , tal matlar/yönergelerle çalışmak ç n se kontrol yapılarını ve fadeler n
anlamak gerek r

Herhang b r program aracılığıyla kontrol akışı; sıralı, seç m ve tekrarlı olmak üzere üç temel kontrol
yapısı türü le gerçekleşt r l r (Şek l 5.1).

Şek l 5.1. Kontrol yapıları

Sıralı
Sıralı yürütme en bas t programlama kontrol yapısıdır. Herhang b r karşılaştırma şlem olmadığından
fadeler tems l eden program kodları sırayla b rb r ardına yürütülür.

Seç ml

Kararlar ç n kullanılan bu yapılar, dallanma yan k veya daha fazla alternat f yol arasından seç m yapma
durumunda olan problemler n kodlanmasında kullanılır. 
 f
  f...else
 Tekrarlı

Döngü ç n kullanılan tekrarlı yapılar, yan b r kod parçasını arka arkaya b rçok kez çalıştırmak demekt r.
 for döngüsü
 wh le döngüsü
Bu kontrol yapıları b lg sayar programlamasında b rl kte kullanılab l r. B r d z b rkaç döngü çereb l r; b r
döngü, kend ç nde yuvalanmış b r döngü çereb l r veya b r koşulun k dalının her b r , döngüler ve
daha fazla koşullu d z ler çereb l r.

5.1.1. If Yapısı

Python'dak şartlı fade, bel rl b r kısıtlamasının/şartın doğru veya yanlış olarak değerlend r lmes ne
bağlı olarak farklı hesaplamalar veya eylemler gerçekleşt r r. Başka b r fade le şart doğru olan fade (ler)
le l şk lend r ld ğ nde, l şk l fadeler yürütülür, aks takd rde lg l fadeler yok sayılarak atlanır. İfadeler n
yürütülmes n n veya fadeler n atlanmasının koşulun sonucuna göre yalnızca b r kez gerçekleşmes n
st yorsak, koşullu kontrol yapıları kullanılır (Şek l 5.2).

Şek l 5.2. Şartlı kontrol yapısı

Python'da koşullu fadeler f kontrol dey m tarafından şlen r. Bas t If kontrol yapısının genel formu
aşağıdak g b d r.

If şart:

 Gerçekleştirilecek işlem
Python'da, f fades şart cümles nden sonrak test fades n değerlend r r. Test fades doğru (True) olarak
değerlend r l rse f gövdes ç ndek fade (ler) çalıştırılır. Şart fades yanlış (False) olarak değerlend r l rse,
f gövdes ç ndek fadeler atlanır. Aşağıda Şek l 5.3’te ver len ekran görüntüsünde f kontrol yapısının
çalışmasına a t örnekler ver lm şt r. B r nc örnekte 5>4 fades doğru olduğundan fadeler kısmında
bel rt len kısım ekrana yazdırılmıştır. İk nc örnekte lk olarak 65 değer “notu”    adlı değ şkene
aktarılmıştır. Daha sonra bu değer n 50’den büyük olup olmadığı kontrol ett r lm şt r. Şart sonucu doğru
olduğundan ekrana “geçt ” bares yazdırılmıştır. Üçüncü örnekte se “notu” değ şken n n değer 45 olarak
değ şt r lm ş ve aynı f cümles çalıştırılmıştır. D kkat ed l rse şart cümles doğru olmadığından f gövdes
ç ndek fadeler atlanır ve ekrana herhang b r çıktı yazdırılmaz.

Şek l 5.3. f kontrol yapısı örneğ

5.1.2. If Else Yapısı

Sonuç açısından k durum varsa f..else kontrol yapısı (Şek l 5.4).  kullanılır. Else fades , f fades ndek
şart yanlışsa yürütülecek olan kod bloğunu bel rtmekt r. Böylece, else cümles , b r d z faden n
yürütülmes n sağlar. 

Şek l 5.4. f  else kontrol yapısı


Yukarıdak akış şemasında göster ld ğ g b , Python programı önce şart fades n değerlend r r. Temeldek
şart f fades ndek durumdur. Buradak şart karşılanırsa veya şart doğruysa, o zaman yalnızca f
fades n n gövdes ndek fade-1(ler) çalıştırılır. Şart doğru değ lse, else fades n n gövdes ndek fade-2
(ler) çalıştırılır. If ve else fadeler n n gövdes g r nt leme le başlar. Bu yapının genel b ç m aşağıdak
g b d r.

If şart sağlanıyorsa:

  işlem-1’i yap

else:

  işlem-2’yi yap

Aşağıdak örnekte (Şek l 5.5), lk olarak puan değ şken ne 90 değer atanıyor. Daha sonra bu değer 85
sayısı le karşılaştırılıyor. Karşılaştırma sonucu True olduğundan sonuç “geçt ” olarak ekrana
yazdırılmıştır. İk nc örnekte puan değ şken ne 80 değer atanarak lg l program tekrar çalıştırıldı. Ancak
bu sefer karşılaştırma sonucu False olduğundan else kısmında sonrak fadeler şlet lerek ekrana “kaldı”
sonucu yazdırıldı.  

Şek l 5.5. f..else kontrol yapısı örneğ

5.1.3. If-Elif-Else Yapısı

G r len b r değere göre k den fazla sonuç durumu varsa If-el f-else yapısı kullanılır. El f dey m , b rden çok
fadey TRUE ç n kontrol etmeye ve koşullardan b r TRUE olarak değerlend r ld ğ anda b r kod bloğu
çalıştırmaya z n ver r. Bu kontrol yapısında en fazla b r fade olab len else 'ten farklı olarak, f'den sonra
stenen sayıda el f fades kullanılab l r. Bu kontrol yapısının gene b ç m aşağıdak g b d r.

If  değer şart-1 sağlıyorsa:


  işlem-1’i yap

elif  değer şartı-2 sağlıyorsa:

 işlem-2’yi yap

elif  değer şartı-3 sağlıyorsa:

 işlem-3’ü yap

else:

 bu işlemi yap

Aşağıda Şek l 5.6’da ver len örnekte lk olarak puan değ şken ne 65 değer atanıyor. Daha sonra bu değer
sırasıyla 85, 70 ve 65 sayıları le karşılaştırılıyor. İlk karşılaştırmada 65<85 küçük olduğu ç n sonuç False
oluyor ve b r sonrak el f kontrol noktasına geç yor. Burada da yapılan kontrolde 65<70 olduğunda
üret len sonuç False olduğundan b r sonrak el f kontrol noktasına geç ş oluyor. Bu kontrol noktasında
65>60 True olduğundan notu değ şken ne “B” değer atanıyor. Bu aşamadan sonra d ğer kontrol noktaları
atlanarak else kel mes n n altında olan pr nt komutu le notu değ şken ne aktarılan değer ekrana
yansıtılıyor.

İk nc örnekte se x ve y değ şkenler ne sırasıyla 7 ve 10 değerler atanıyor. Sonra bu k değ şken n


çer ğ ne bağlı olarak karşılaştırma yapılıyor ve sonuç ekrana yazdırılıyor.

Şek l 5.6. f..el f..else kontrol yapısı örneğ

5.1.4. İn İşlecinin Kullanımı


' n' operatörü, b r değer n b r d z de olup olmadığını kontrol etmek ç n kullanılır. Aranan değ şken
bel rt len d z de bulunursa doğru (True), aks takd rde yanlış (False) sonucu üret l r. Başka b r fade le ' n'
şlec “ ç nde var mı” sorgusu yapar ve varsa koşul çer s ndek şlem çalıştırılır (Şek l 5.7).

Şek l 5.7. n şlec n n kullanım örneğ

5.1.5. For Kontrol Yapısı

Döngü, b lg sayar programlarının yazılmasında yaygın olarak kullanılan temel b r programlama kontrol
yapısıdır (Şek l 5.8). Bel rl b r koşula ulaşılıncaya kadar tekrarlanan b r yönergeler d z s d r. B r for
döngüsünün k bölümü vardır: y neleme koşullarını bel rten kısım ve y neleme başına b r kez çalıştırılan
b r gövde (döngü ç şlemler ). Şartlı kısım genell kle gövden n hang y nelemen n yürütüldüğünü
b lmes n sağlayan açık b r döngü sayacı veya döngü değ şken n çer r.

Şek l 5.8. for kontrol yapısı

for yapısı sıralı geç şler ç n kullanılır. Örneğ n: b r l ste, str ng veya d z de gez nme/dolaşmak g b . Python'
un döngü ç n çoğu d ğer d llerde var olan for ( = 0; <n; ++) g b b r yapısı yoktur. Bunun yer ne aynı
şlem yer ne get ren “for n” döngüsü kullanılır. Aşağıda bu yapının genel formu ver lm şt r. 

for değişken in dizi:

  işlem (ler)
Sıralı geç şler ç n “ n” n for ç n nasıl kullanılacağı aşağıda Şek l 5.9’da ver len örneklerde açıklanmıştır.

Şek l 5.9. for  döngüsü örneğ -1

Ş md de for döngüsü le f kontrol yapısını b rl kte kullanılan örnekler yapalım (Şek l 5.10). İlk olarak l ste
çer s ndek sayılardan ç olanları ekrana yazdıralım. İk nc s nde se f kontrol yapısı le tek olanları “tek
sayı” ç olanlara “ç sayı” yazdıralım.  

Şek l 5.10. for  döngüsü örneğ -2

For döngüsü le l ste ver yapısının dışındak d ğer ver t pler le de şlemler yapmak mümkündür.
Aşağıdak şek lde bunlara a t örnekler ver lm şt r (Şek l 5.11).
Şek l 5.11. for  döngüsü örneğ -3

5.1.6. For Döngüsünün Python Veri Yapıları İle Kullanımı

Bu bölümde for döngü yapısının Pyton’a özgü ver yapıları le kullanımına a t örnekler ver lm şt r.

Küme Ver Yapısı le Kullanımı

Aşağıdak örnekte for döngüsü le Küme ver yapısının kullanılması açıklanmıştır (Şek l 5.12). 

Şek l 5.12. for döngüsü le küme ver yapısı örneğ

Sözlük Ver Yapısı le Kullanımı

Aşağıdak örnekte for döngüsü le Sözlük ver yapısının kullanılması açıklanmıştır (Şek l 5.13). 
Şek l 5.13. for döngüsü le sözlük ver yapısı örneğ

İç çe for Döngüsü Kullanımı.

 Aşağıda for le ç çe döngü yapısının açıklandığı b r örnek ver lm şt r (Şek l 5.14). 


Şek l 5.14. for döngüsü le sözlük ver yapısı örneğ

Bölüm Özeti

Bu ders m zde Python d l ndek kontrol yapılarını öğrend k.  İlk olarak f dey m ; f else; f el f dey mler
açıklandı. Daha sonra döngüsel kontrol şlemler nde kullanılan for kontrol yapısı anlatıldı. Ayrıca, for
yapısını öncek ha alarda öğrenm ş olduğumuz Python’a özel ver yapıları le b rl kte nasıl kullanıldığını
gösteren örnekler yapıldı.

Kaynakça

WEB: http://net- nformat ons.com/python/flow/for.htm

Wes McK nney, “Python for Data Analys s”, O’Re lly Med a, Inc., 1005 Gravenste n H ghway North,
Sebastopol, CA 95472., İk nc Baskı, 2017

İlker Arslan “Python le Ver B l m ”, Pusula, 2. Baskı, 2019


Ünite Soruları

1. Aşağıda ver len fadelerden hang s kontrol yapıları çer s nde yer almaz?

A) Tekrarlı

B) Sıralı

C) Sorgulamalı

D) Seç ml

2. Aşağıdak ekran görüntüsü ver len sonucun elde ed leb lmes ç n puan le 80 arasına
şıklardan hang şaret get r lmes gerek r?

A)  ==

B) <

C)  >

D) >=

3. Aşağıda ver len ekran görüntüsünün elde ed lmes ç n yas değer ne olmalıdır?
A) 18

B) 17

C) 19

D) 16

4. Aşağıda ver len sonucun oluşab lmes ç n “?” şaret yer ne ne yazılması gerek r?

A) notu

B) gun
C) rakam

D) sayı 

5. Aşağıda ver len ekran görüntüsünde “?” ve “??” şaretl yerlere yazılması gereken fadeler
hang şıkta sırası le doğru ver lm şt r?

A) yok-yok

B) yok-var

C) var-var

D) var-yok 

6.

Aşağıdak ekran görüntüsünü elde etmek ç n “?” şaret yer ne ne yazılması gerek r?

A) sayılar

B) takımlar
C) "Tranzonspor","Fenerbahçe","Galatasaray","Beş ktaş","Sakaryaspor"

D) ("Tranzonspor","Fenerbahçe","Galatasaray","Beş ktaş","Sakaryaspor")

7. Aşağıda ver len ekran görüntüsünde “?” şaret yere yazılması gereken fade hang şıkta
doğru olarak ver lm şt r?

A) fade

B) x

C) end

D) end= “ ”

8. Aşağıda ver len ekran görüntüsünde “?” ve “?” şaret yerlere yazılması gereken fadeler
hang şıkta doğru olarak ver lm şt r?

A) adlar-adlar

B) adlar-l ste
C) l ste-adlar

D) l ste-l stem

9. k=[23,33,43,53,63,73,83,93,103], k l stes ndek elemanları ekrana yazdırmak ç n hang


kontrol yapısı kullanılır?

A) f

B) f – else

C) for

D) f-for

10. Aşağıda ver len fadelerden hang s doğru değ ld r?

A) Döngüsel yapılarda for kullanılır.

B) for ve f aynı kod çer s nde kullanılmaz.

C) f şartlı cümleler ç n kullanılır

D) B rden çok seçenek farsa f el f yapısı kullanır. 

CEVAP ANAHTARI

1. c 2. b 3. c 4. b 5. d 6. a 7. d 8. a 9. c 10. b
6. PYTHON’DA KONTROL YAPILARI-2

Giriş

Wh le kontrol yapısı for g b döngüsel şlemler ç n kullanılır. For döngüsel yapısından farklı olarak
kend ne özgü b r yapısı vardır.  Problem n yapısına göre bu k döngüden hang s kullanılacağına karar
ver l r. Her k döngüsel yapının kend ne göre avantaj ve dezavantajları vardır.

Döngüsel yapılardan zaman zaman çıkmak veya bell b r noktayı atlamak gerekeb l r. Bu tür durumlarda
döngüden çıkmak ç n Break komutu kullanılır. Döngünün bell b r adımını atmak ç n se Cont nue
dey m kullanılır.

Ayrıca ver yapılarında kullanmak ç n yararlı komutlar olan Range komutu ve Random Kütüphanes
vardır. Bu k yapı da ver b l m uygulamalarında yaygın olarak kullanılmaktadır.  D ğer b r yararlı komut
se Z p komutudur.

Bu bölümde wh le yapısı le b rl kte bu yararlı komutlar ve kütüphane örnekler yardımıyla açıklanacaktır.

6.1. While Kontrol Yapısı

Y neleme, aynı kod bloğunu defalarca, potans yel olarak b rçok kez çalıştırmak anlamına gel r. Y nelemey
uygulayan b r programlama yapısına döngü den r. Programlamada, bel rs z ve bel rl olmak üzere k tür
y neleme vardır: Bel rs z y nelemeyle, döngünün çalıştırılma sayısı önceden açıkça bel rt lmem şt r.
Aks ne bel rt len blok, bazı koşullar karşılandığı sürece tekrar tekrar yürütülür (Şek l 6.1).

Şek l 6.1. Wh le yapısının şeması

Kes n y nelemeyle, bel rlenen bloğun kaç kez çalıştırılacağı döngü başladığında açıkça bel rt l r.
Python’un wh le fades n n döngüler oluşturmak ç n nasıl kullanıldığını görel m. Temel wh le
döngüsünün b ç m aşağıda göster lm şt r:
wh le <şart>:

    < şlem(ler)>

Bu göster mde:

<şart> döngü başlatılmadan önce başlatılan ve daha sonra döngü gövdes nde b r yerde değ şt r len b r
veya daha fazla değ şken çer r.

< şlem(ler)>, genell kle döngünün gövdes olarak anılan tekrar tekrar çalıştırılacak bloğu tems l eder.

B r wh le döngüsüyle karşılaşıldığında, <şart> lk olarak şart bağlamında değerlend r l r. Doğruysa, döngü


gövdes çalıştırılır. Sonra < şlem(ler)> tekrar kontrol ed l r ve eğer hala doğruysa, gövde yen den
çalıştırılır. Bu, < şlem(ler)> yanlış olana kadar devam eder. Aşağıda Şek l 6.2’de ver len ekran
görüntüsünde wh le örnekler görülmekted r. B r nc örnekte 1’den 10’a kadar olan sayılar ekrana
yazdırılmıştır. İk nc örnekte met nsel b r fade 5 kez ekrana yazdırılmıştır. Üçüncü örnekte se l ste ver
yapısında yer alan 6 nolu elemandaha önce öğrenm ş olduğumuz .pop() komutu le s l nene kadar kaç
kez l stede gözüktüğü ekrana yazdırılmıştır.   

Şek l 6.2. Wh le yapısı örnekler

6.1.1. Break Anahtar Komutu

Break anahtar komutu şart fades n n doğru (True) olduğu anda geçerl döngüyü sonlandırır, şart fades
gerçekleşmed ğ sürece (False) döngü ç ndek fadeler yürütülmeye devam eder (Şek l 6.3).
Şek l 6.3. Break komut yapısı

Başka b r fade le bu anahtar kel mes b r döngüden çıkmayı gerekt ren şartların oluştuğu anda tet klen r.
Break komutu hem wh le hem de for döngüler nde kullanılab l r. İç çe döngüler kullanıldığı durumlarda,
break fades en çtek döngünün yürütülmes n durdurur ve bloktan sonrak kod satırını çalıştırmaya
başlar.

Aşağıda Şek l 6.4’de ver len ekran görüntüsünde break komutunun kullanımına a t örnek kodlar
ver lm şt r. Bu görüntünün b r nc örneğ nde l stem1’dek tüm elemanlar sırayla okunduktan sonra 5 le
çarpılarak for döngüsü le ekrana yazdırılmıştır. İk nc örnekte se aynı l sten n lk üç elemanı okunup 5 le
çarpıldıktan sonra ( f sayılar==30)şartı gerçekleşt ğ ç n ger kalan l ste elemanları yazdırılmadan
döngüden çıkılmıştır.
Şek l 6.4. Break komutuna a t örnek

Ş md de Wh le döngüsünün durdurulması şlem n Break komutunu kullanarak yapalım. Aşağıdak


örnekte şartın True olduğu sürece dönmes sten yor. Döngüden çıkma şlem kullanıcıya bırakılıyor.
Bunun ç n kullanıcıdan döngüyü sonlandırmasını sted ğ nde b r sayı g r lmes sten yor (Bu örnekte
kullanıcıdan çıkmak ç n sıfır sayısı g rmes sten yor). G r len sayı çıkmak ç n kodda ayarlanan sayıya eş t
se döngü sonlandırılmış oluyor. Aks takd rde döngü dönmeye devam eder.  Bu örneğ n ekran çıktısı
aşağıda Şek l 6.5’te ver lm şt r.

Şek l 6.5. Wh le döngüsünün durdurulması

6.1.2. Continue Anahtar Komutu

Cont nue, aynı break dey m g b b r döngü kontrol komutudur. Cont nue komutu, break komutunun ters
olan şlem yapar. Adından da anlaşılacağı g b cont nue fades , döngüyü b r sonrak y nelemey devam
ett rmeye veya yürütmeye zorlar. Bu dey m döngüde çalıştırıldığında, dey m zleyen döngü ç ndek kod
atlanacak ve döngünün b r sonrak y nelemes başlayacaktır (Şek l 6.6).

Şek l 6.6. Cont nue komut yapısı


Aşağıda Şek l 6.7’de ver len lk örnekte l stem1 n elemanları for döngüsü le ekrana yazdırılıyor. İk nc
örnekte se l ste1’dek elemanlar okunurken 30 sayısına gel nd ğ nde yan f sayılar==30 olduğunda bu
sayı yazdırılmadan b r sonrak sayıya atlanıp kalan sayılar ekrana yazdırılmaktadır. 

Şek l 6.7. Cont nue komut yapısı

6.1.3. Yararlı Metotlar-1: Range Metodu

Range metodu le bell b r sayı aralığı g r l r ve bu sayı aralığının çer s nde l ste elemanları otomat k
oluşturulur. range () Python'da yerleş k olan b r fonks yondur. B r kullanıcının bel rl sayıda b r eylem
gerçekleşt rmes gerekt ğ nde Python'da genell kle L st ve str ng  g b ver yapılarında for ve wh le
döngüsü le b rl kte kullanılır. Range () kullanıcının bel rl b r aralıkta b r d z sayı oluşturmasına z n ver r.
Kullanıcı bu sayı d z s n n nerede başlayıp b teceğ ne ve b r sayı le sonrak arasındak farkın ne kadar
büyük olacağına karar vereb l r. Bu yüzden Range () temelde üç bağımsız değ şken alır.

start (başlangıç): d z n n değer döndürüleceğ başlangıç tam sayısı

stop (duruş): d z n n değer döndüreceğ son elemandan sonrak tam sayı

Step (adım): d z de başlangıç değer nden sonrak göster lmek stenen değer ç n gereken artışı bel rleyen
tamsayı.

Aşağıda ver len ekran görüntüler nde bu fonks yonun kullanımı le lg l örnekler ver lm şt r

range (stop).

Bu kullanım tek argüman alır. Kullanıcı range () fonks yonu çer s ne b r tamsayı g rd ğ nde çıktı olarak
0'dan başlayan ve durma noktası olarak g r len tamsayıyı çermeyen, ancak bu sayıya kadar olan tüm tam
sayı değerler n ekrana yazdırır (Şek l 6.8)
Şek l 6.8. range (stop) kullanım örneğ

range (start, stop).

Bu kullanım k argüman alır. Kullanıcı range () fonks yonu çer s ne sayı d z s n n nereden başlayıp nerede
b teceğ kararını ver r.  Bu kullanım sayes nde kullanıcı d z y her zaman 0'dan başlatmak zorunda kalmaz.
Aşağıdak örnekte kullanıcı (başlangıç, b t ş) olarak g rm ş olduğu değerlere bağlı olarak üret lm ş olan
d z elemanları ekrana yazdırılmıştır (Şek l 6.9).

Şek l 6.9. range (start, stop) kullanım örneğ

range (start, stop, step)

Bu kullanım üç argüman alır. Kullanıcı range () fonks yonu çer s ne sayı d z s n n nereden başlayıp nerede
b teceğ kararının yanı sıra b r sonrak adımda hang d z elemanının göster leceğ n bel rten b r tam sayı
değer le aradak farkın ne kadar büyük olacağını da seçeb l r. Bu kullanımda adım değer g r lmez se
range () fonks yonu otomat k olarak adım değer n b r alır. Aşağıdak Şek l 6.10’da kullanıcının (başlangıç,
b t ş, adım) olarak g rm ş olduğu değerlere bağlı olarak üret lm ş olan d z elemanlarının sonuç ekran
görüntüsü ver lm şt r.

Şek l 6.10. range (start, stop, step) kullanım örneğ

6.1.4. Yararlı Metotlar-2: Random Metodu

B lg sayar b l m nde özell kle s mülasyon uygulamalarında rasgele sayı üretmek çok öneml b r araçtır.
Çoğu programlama d ller nde gel şt r lm ş çeş tl hazır sayı üretme kütüphaneler mevcuttur. Python d l
ç nde de Random modülü mevcuttur. Random modülünü çağırmak ç n mport random komut satırı
kullanılır.

Random modülü, sözde rastgele değ şkenler (pseudo-random var ables) oluşturmak ç n Python’da
yerleş k olan b r modüldür. Rastgele b r sayı almak, b r l steden rastgele b r öğe seçmek, öğeler rastgele
karıştırmak g b rastgele bazı eylemler gerçekleşt rmek ç n kullanılab l r.

Rastgele Float T p nde Sayı Üretmek


Random.random () metodu, 0.0 le 1.0 arasında rastgele b r v rgüllü sayı döndürür. Fonks yonun herhang
b r argümana ht yacı yoktur. Bu metodu çalıştırmak ç n lk olarak random metodu çalışma sayfasına
yüklenmes ( mport ramdom) gerek r. Aşağıdak örnekte (Şek l 6.11) float t p nde sayı üret m örneğ
ver lm şt r.

Şek l 6.11. Float t p nde sayı üret m örneğ

Rastgele Integer T p nde Sayı Üretmek

Integer sayı üretmek ç n Random.rand nt () metodu bel rt len tamsayılar arasında rastgele b r tam sayı
üret r. Bu şlem ç n random.rand nt (start, stop) kalıbını kullanılır. Aşağıdak örnekte (Şek l 6.12) 1 le 100
arasında nteger b r sayı üreten kodun ekran görüntüsü ver lm şt r.

Şek l 6.12. Integer t p nde sayı üret m örneğ

Bell B r Aralıkta İstenen Sayıda Rastgele Tamsayı D z s Oluşturma

NumPy Kütüphanes kullanılarak Rand nt() metodu le rastgele b r tamsayı d z s oluşturulab l r. Bu


metot, aralığın alt sınırı, aralığın üst sınır ve oluşturulacak tamsayı değerler n n sayısı veya d z n n boyutu
olmak üzere üç bağımsız değ şken alır. Rastgele tamsayılar, alt değer dah l ve üst değer har ç olmak üzere
üret l r. Aşağıdak örnekte, Numpy kütüphanes kullanılarak rastgele oluşturulan b r tamsayı d z s
göster lm şt r (Şek l 6.13).

Şek l 6.13. Bell b r aralıkta tam sayı d z s oluşturma örneğ

6.1.5. Yararlı Metotlar-3: Zip Metodu


Python programlamasındak z p (), parametre olarak b rden çok y neleneb l r veya kapsayıcıyı (conta ner)
parametre olarak alan yerleş k standart b r Python fonks yonudur. Bu fonks yon, b rden fazla
y neleneb l r d z n n aynı elemanlarını eşlemek ç n kullanılır. Z p() fonks yonu tarafından parametre
olarak kullanılan y neleme nesneler Python’a özgü l ste, sözlük, met n (str ng) veya herhang b r ver
nesne olab l r. Z p () fonks yonu, her y neley c n n lk öğeler n b r araya get r r, ardından k nc öğeler b r
araya get r r ve bu böyle devam eder. Z p () y nelenen öğeler aynı uzunlukta değ lse y neleneb len en
küçük uzunluk, üret len çıktının uzunluğunu oluşturur.

Tuple Ver ler n Z p() Fonks yonu İle B rleşt r lmes

Aşağıdak örneğ göz önüne alalım ((Şek l 6.14). Görüldüğü g b lk olarak üç adet Tuple nesnes
oluşturulmuştur. Daha sonra bu nesneler n karşılıklı elemanları Z p() fonks yonu le b rleşt r lm şt r.
Ancak ekran çıktısında b rleşt r len elemanlar gözükmemekted r. 

Şek l 6.14. Z p() fonks yonunun kullanımı.

Bunun ç n b rleşt r len nesneler n herhang b r Python ver yapısına dönüştürülmes gerek r. Ş md
yukarıda Z p fonks yonu le (Şek l 6.14) b rleşt r len ver nesneler n Tuple nesnes ne dönüştürel m (şek l
6.15).

Şek l 6.15. Tuple nesnes ne dönüştürme şlem

Yukarıda ver len ekran çıktısında görüleceğ g b Tuple nesnes nde üçüncü öğe yoktur.  Bunun sebeb aynı
uzunlukta olmayan nesneler n Z p() fonks yonu le b rleşt r lmes durumunda elde ed len nesnen n
uzunluğu en küçük nesnen n uzunluğu kadar olab lmes nden kaynaklanmıştır.

Tuple Ver ler n n Sözlüğe Dönüştürülmes

Z p fonks yonu kullanarak k tuple’ı sözlüğe dönüştürmek ç n, lk olarak tuple nesneler oluşturulur.
Daha sonra bu nesneler d ct() fonks yonu kullanılarak sözlük ver yapısına dönüştürülür (Şek l 61.6). 
Şek l 6.16. Sözlük nesnes ne dönüştürme şlem

L ste Ver ler n n Küme Ver Yapısına Dönüştürülmes

Aşağıdak örnekte (Şek l 6.17) lk olarak farklı ver t p nde üç adet l ste ver nesnes oluşturulmuştur. İk nc
şlem olarak bu l steler z p fonks yonu le b rleşt r ld , daha sonra set() fonks yonu kullanılarak   küme  ver
yapısına dönüştürüldü. 

Şek l 6.17. Küme nesnes ne dönüştürme şlem

Bölüm Özeti

Bu bölümde Python d l ndek kontrol yapılarından Wh le dey m n öğrend k. Python programlamada çok
yararlı olan Break, Cont nue, Range ve Z p g b anahtar kel me ve komutlar anlatıldı.  Her b r komut ve
dey m ç n çok sayıda örnek yapıldı. Her b r örneğ n çalışan koduna a t ekran görüntüler bölüm çer s nde
ayrı ayrı ver ld .

Kaynakça

WEB: https://www.tutor alsteacher.com/python/random-module

WEB: https://www.geeksforgeeks.org/python-range-funct on/

WEB: https://www.codementor. o/@l kegeeks/python-z p-funct on-tutor al-s mple-examples-x5tnr4mkv


Ünite Soruları

1.  Aşağıda ver len fadelerden hang s wh le kontrol yapısı ç n doğru b r fade değ ld r?

A) şart ve şlemler olmak üzere k yapıdan oluşmaktadır.

B) şart cüles kontrol ç n kullanılır.

C) döngüsel şlemler ç n kullanılır.

D) Seç ml yapılar le kullanılamaz.

2.  Aşağıdak ekran görüntüsü ver len kodun çıktısında şıklarda ver len değerlerden hang s
yer almaz?

A) 13

B) 15

C) 12

D) 14
3. Aşağıda ver len ekran görüntüsü ver len koda ekrana kaç kez yazılır?

A) 5

B) 6

C) 4

D) 3

4. Aşağıda ver len sonucun oluşab lmes ç n 4 numaralı satıra aşağıdak fadelerden hang s
yazılması gerek r?

A) sayı=sayı+1

B) sayı=sayı-1

C) sayı+=1
D) sayı=sayı

5. Aşağıda ver len kodun çıktısı hang şıkta doğru olarak ver lm şt r?

A) 61,25,34

B) 34,35,42

C) 25,34,35

D) 54,61,25

6. Aşağıdak ekrandak çıktının alınab lmes ç n 3 numaralı satıra ne yazılması gerek r

A) f seh r=="İstanbul"

B) f seh rler=="İstanbul":

C) f seh r=="İstanbul":
D) f seh r==İstanbul:

7. Aşağıda ver len ekran görüntüsünde “?” şaret yere yazılması gereken fade hang şıkta
doğru olarak ver lm şt r?

A) 4,14

B) 4:15

C) 4:14

D) 4,15

8. Aşağıda kodu ver len ekran görüntüsünde şıklarda ver len sonuçlardan hang s
üret lemez?

A) 13

B) 12

C) 16

D) 15
9. Aşağıda ver len ekrandak koddan üret len çıktıda şıklarda ver lenlerden hang s yer almaz

A) (“Can”, 40)

B) (“Zehra”, 17)

C) (“Hale”, 25)

D) (“Kazım”, 25)

10. Aşağıda l steler sözlük yapısına dönüştürmek ç n hang komut kullanılmalıdır?

A) d ct

B) z p

C) l st

D) set

CEVAP ANAHTARI

1. d 2. b 3. c 4. b 5. d 6. c 7. d 8. c 9. d 10. a
7. PYTHON İÇİN VERİ ANALİZİ ARAÇLARI-1 (NUMPY)

Giriş

Python son yıllarda ver b l m dışında özell kle mühend sl k uygulamalarında da gen ş kullanım alanı
bulan b r d l hal ne gelm şt r. Bunu sağlayan en öneml etken Numpy g b sah p olduğu kütüphanelerd r.
Kodlaması uzun süren matemat ksel fonks yon ve algor tmalar bu kütüphaneler sayes nde hızlıca
uygulanab lmekted r. Buda ş dünyasında bulunan mühend s ve ver b l mc ler ne c dd zaman kazanımı
ve kolaylıklar get rmekted r. Bu bölümde bu kütüphanen n özell kler ver len örnekler yardımıyla
açıklanacaktır.

7.1. Numpy Kütüphanesi

NumPy, Numer cal Python'un kısaltmasıdır. Python programlamadak en yararlı b l msel


kütüphanelerden b r d r. Büyük çok boyutlu d z nesneler ve bunlarla çalışmak ç n çeş tl araçlar sağlar.
Pandas, Matplotl b ve Sc k t-learn g b çeş tl d ğer kütüphaneler bu kütüphanen n üzer ne nşa ed lm şt r.
Bu, Python’un ver b l m araç set n n neredeyse tüm gücünün üzer ne nşa ed ld ğ temeld r. NumPy'y
öğrenmek, herhang b r Python ver b l mc s n n yolculuğunun lk adımıdır.

D z ler, b r veya daha fazla boyuta sah p olab len öğeler / değerler koleks yonudur. Tek boyutlu b r d z
Vektör, k boyuta sah p b r d z se Matr s olarak adlandırılır. NumPy d z ler ndarray veya N boyutlu
d z ler olarak adlandırılır ve aynı tür ve boyuttak öğeler depolar. Yüksek performansıyla b l n r ve
d z ler n boyutu büyüdükçe ver ml depolama ve ver şlemler sağlar. NumPy kütüphanes , Anaconda
nd r ld ğ nde yüklenm ş olarak gel r. Ancak Numpy paket n kullanab lmek ç n, her yen oturumdan önce
paket n mport komutu le çalışma k tabına yüklenmes gerek r. Bu şlem aşağıda ver len Şek l 7.1’dek
kod le gerçekleşt r l r.

Şek l 7.1. Numpy kütüphanes n n yüklenmes

7.1.1. Numpy Dizisi Oluşturma

Numpy d z s oluşturmak ç n np.array() metodu kullanılır. B r l stey , tuple'ı veya herhang b r d z


benzer nesne, array ()metodu le Numpy d z s ne dönüştürülür ya da herhang b r nesne oluşturmadan
d rekt olarak array () metodu le Numpy d z s oluşturulab l r.
Aşağıda Şek l 7.2’de ver len ekran görüntüsünde lk olarak “deger” adında b r l ste oluşturuldu. Daha
sonra bu l ste array () metodu le “deger_d z ” adlı b r Numpy d z s ne dönüştürüldü. İk nc örnekte se
Numpy d z s d rekt olarak oluşturuldu.  

Şek l 7.2. Numpy d z s oluşturma

Python'ın L ste ver yapısında matemat ksel ve stat ksel şlemler yapacak b r özell k yoktur. Örneğ n;
öğrenc ler n b r nc sınavdan ve k nc sınavdan almış oldukları notlar ayrı l stelerde tutulursa ve bu k
notun ortalaması alınmak sten rse, bu şlem l stelerle yapmak mümkün değ ld r. Aşağıdak ekran
çıktısında (Şek l 7.3) görüldüğü g b l ste le oluşturulmuş ver yapıları üzer nde matemat ksel şlemler
yapılamaz.

Şek l 7.3. L ste ver yapısı le ortalama hesaplama

Bu sorunu aşmak ç n Python d l nde Numpy paket gel şt r lm şt r. Numpy paket nde temel ver yapısı
Numpy d z ler d r (NumPy array). Numpy d z ler l stelerden farklı olarak sadece tek türde ver çer r.
Numpy d z s ne farklı ver ler tanımlarsanız b le bu ver ler aynı ver t p ne çevr l r. Aşağıda Şek l 7.4’te,
Şek l 7.3’te l stelerle hesaplanmaya çalışılan sınav notlarının ortalaması şlem n n Numpy d z ler le
gerçekleşt r lmes ver lm şt r.
Şek l 7.4. Numpy d z ler le ortalama hesaplama

Numpy d z ler nde şlemler elemanlar bazında gerçekleş r. Yan d z dek aynı sıradak ( nd sl ) elemanlar
uygulanan şleme tab tutuluyor. Normal Python l steler ndek şlemler Numpy d z ler nde farklı sonuçlar
ver r. Aşağıdak Şek l 7.5’de görüldüğü g b l stelerdek toplama (+) şlem k veya daha fazla l stey
b rleşt rmek anlamına gel r.

Şek l 7.5.  L stelerde b rleşt rme şlem

Ancak bu şlem Şek l 7.6’da görüldüğü g b Numpy d z ler açısından matemat ksel b r şlemd r ve
toplama anlamına gel r.

Şek l 7.6.  Numpy d z ler nde toplama şlem

Normalde Nparray le nteger t p nde elemanları olan b r d z üret l r. Float t p nde elemanları olan b r d z
üretmek ç n dtype komutu dtype=np.float  b ç m nde kullanılır. Aşağıda Şek l 7.7’de ver len ekran
görüntüsünde lk olarak nteger t p nde “d z ” adlı b r d z oluşturuluyor. İk nc örnekte se y ne adı aynı
olan ama elemanları float t p nde olan b r d z oluşturuldu. D kkat ed l rse değerler aynı m ş g b
gözükmekted r. Ancak k nc d z n n elemanlarından sonra  gelen “.” nokta şaret o sayıların float t p nde
olduğunu fade eder.
Şek l 7.7. Float t p nde Numpy d z s oluşturma

7.1.2. İki Boyutlu Numpy Dizisi Oluşturma

İk boyutlu, yan matr s b ç m nde d z oluşturmak ç n aşağıdak Şek l 7.8’de göster ld ğ g b b r yapı
kullanılır.

Şek l 7.8. İk boyutlu Numpy d z s oluşturma

B r d z n n elemanlarını random sayı le doldurmak ç n np.random.rand() metodu kullanılır. Aşağıdak


örnekte (Şek l 7.9) bu komut yardımıyla;  2 satır ve 3 sütundan oluşan k boyutlu b r d z (matr s)
oluşturulmuştur. 

Şek l 7.9. Random komutu le k boyutlu Numpy d z s oluşturma


Bell b r atlama değer le d z oluşturmak ç n np.arange() metodunun kullanılır. Örneğ n; elemanları
(0,1,2,3,4,5,6,7,8,9,10) olan b r d z yer ne; elemanları (2,4,6,8) g b b r d z oluşturmak steyel m. Bunun
g b b r d z oluşturmak ç n aşağıdak komut (Şek l 7.10) kullanılır.

Şek l 7.10. arange() komutu le d z oluşturma

7.1.3. Bir Boyutlu Diziyi Dilimleme

D l mleme, b r ndeksten d ğer ndekse kadar olan öğeler almak anlamına gel r. Bunun ç n d z ndek
başlangıç ve b t ş noktasını [başlangıç: b t ş] yan [start: end] seçmek gerek r. Ayrıca adım boyutunu
seçerek b r parça da alınab l r.  Örneğ n, adım boyutunu 2 almak demek; öğey mevcut ndeksten 2
basamak uzağa almak demekt r. Kısacası tüm bunları tek b r d z ne dah l etmek ç n şu fade kullanılır:
[başlangıç: b t ş: adım] veya [start: end: step-s ze].  Aşağıdak ekran görüntüsünde (Şek l 7.11)
oluşturulmuş olan “d z m3” adlı d z n n b r nc nd s ve dokuzuncu nd s değer arasında atlama adımı k
olarak d l mlenen sayılar ver lm şt r.

Şek l 7.11. B r nc d l mleme şlem örneğ

Başlangıç veya b t ş nd s n bel rtmezsek, varsayılan olarak sırasıyla başlangıç olarak 0 (sıfır) ve b t ş
olarak d z boyutu alınır. Ayrıca, varsayılan olarak adım boyutu 1'd r. Aşağıdak örnekte bu durumları
açıklayan kodun ekran görüntüsü ver lm şt r (Şek l 7.12).
Şek l 7.12. İk nc d l mleme şlem örneğ

7.1.4. İki Boyutlu Diziyi Dilimleme

İk boyutlu b r d z n n satırları ve sütunları vardır. İk boyutlu d z ler d l mlemek b raz zor olab l r. Ama b r
kez anladıktan sonra, herhang b r k boyutlu d z y kolaylıkla d l mleyeb l rs n z.

Aşağıdak örnekte (Şek l 7.13) lk olarak “d z m4” adlı k boyutlu b r d z oluşturuldu. İk nc adımda bu
d z n n elemanları ekrana yazdırıldı. Üçüncü adımda se matr s n sıfır nd sl satır ve sütun elemanı, sonra
satır nd s b r, sütün nd s değer k olan eleman; daha sonra satır nd s b r ve sütun nd s sıfır olan
matr s elemanları d l mlenerek ekrana yazdırılmıştır.

Şek l 7.13. İk boyutlu d z y d l mleme şlem

Bölüm Özeti

Bu ders m zde Python kütüphaneler nden Numpy Kütüphanes anlatıldı. Bu kütüphane ç n lk olarak
özell kler nden bahsed ld . Daha sonra Jupyter Notbook’ta örnekler yaparak anlatılanlar pek şt r lmeye
çalışıldı.

Kaynakça

Wes McK nney, “Python for Data Analys s”, O’Re lly Med a, Inc., 1005 Gravenste n H ghway North,
Sebastopol, CA 95472., İk nc Baskı, 2017

İlker Arslan “Python le Ver B l m ”, Pusula, 2. Baskı, 2019

WEB: https://towardsdatasc ence.com/ ntroduct on-to-numpy-for-data-analys s-3aaded0d0996


Ünite Soruları

1. Aşağıda ver len fadelerden hang s Numpy ç n doğru b r fade değ ld r?

A) Numpy, Numer cal Python’un kısaltmasıdır.

B) Python kütüphaneler nde b r d r.

C) Büyük boyutlu d z ler şlemede başarılı değ ld r

D) Pandas, bu kütüphanen n üzer ne nşa ed lm şt r.

2. Aşağıda ver len fadelerden hang s Numpy kütüphanes n çalışma sayfasına yükler

A) load numpy as np

B) mport numpy as np

C) export numpy as np

D) read numpy as np

3. Ver len b r l ste ver yapısını Numpy d z s ne dönüştürmek ç n aşağıda ver len
komutlardan hang s kullanılır.

A) np.l st(array)

B) np.d z
C) array

D) np.array

4. Aşağıda ver len sonucun elde ed lmes ç n yazılması gereken komut hang şıkta doğru
olarak ver lm şt r?

A) mport numpy as np
np.array([[20,40,15]:[90,70,85]])

B) mport numpy as np
np.array([[20,40,15],[90,70,85]])

C) mport numpy as np
np.array([[20,40,15];[90,70,85]])

D) mport numpy as np
np.array([[20,40,15][90,70,85]])

5. Aşağıda ver len kodun çıktısı hang şıkta doğru olarak ver lm şt r?

A) k satırlı, 4 sütünlü b r numpy d z s oluşturur

B) sek z elemanlı b r numpy d z s oluşturur


C) dört satır, k sütundan oluşan b r numpy d z s oluşturur

D) b r nc satıra dört, k nc satırda k elemanı olan b r numpy d z s oluşturur

6. Aşağıdak ver len kodun çıktısında şıklarda ver len değerlerden hang s yer almaz?

A) 4

B) 0

C) 2

D) 1

7. Aşağıda kodu ver len ekran görüntüsünün çıktısında hang değerler yer alır?

A) 74,64

B) 25,64

C) 64,38

D) 74, 38

8. Aşağıda kodu ver len ekran görüntüsünde şıklarda ver len sonuçlardan hang s üret l r?
A) 45, 14, 66, 81

B) 25,45,14,66,81

C) 45,14,66,81,93

D) 25,45,14,66

9. Aşağıda ver len ekrandak koddan üret len çıktı hang şıkta doğru olarak ver lm şt r?

A) 70

B) 85

C) 15

D) 40

10. Aşağıda bel rt len fadelerden hang s doğrudur?

A) Numpy d z ler nde ndex b rden başlar

B) Numpy d z ler nde son eleman yazdırılamaz


C) Numpy d z ler nde ndex sıfırdan başlar

D) Numpy d z ler ndek elemanlara ndexlerle er ş lemez. 

CEVAP ANAHTARI

1. c 2. b 3. d 4. b 5. c 6. a 7. d 8. a 9. b 10. c
8. PYTHON İÇİN VERİ ANALİZİ ARAÇLARI-1
(PANDAS)

Giriş

Pandas, esasen ver ler n bulunduğu yerd r. Bu araç aracılığıyla ver ler tem zlen r, dönüştürülür ve anal z
ed leb l r. Örneğ n, b lg sayarınızdak b r csv'de depolanan b r ver kümes n keşfetmek sted ğ n z
varsayalım. Pandas, bu csv'dek ver ler b r ver çerçeves ne aktarır ve ardından aşağıdak g b şlemler
yapmaya mkan sağlar. Örneğ n:

Her sütunun ortalaması, medyanı, maks mum veya m n mum değer ned r?

A sütunu B sütunu le l şk l m ?

C sütunundak ver ler n dağılımı nasıl görünüyor?

Ayrıca eks k değerler kaldırmak ve satırları veya sütunları bazı kr terlere göre f ltrelemek g b şlemler
yaparak ver ler tem zlen r. Tem zlenm ş, dönüştürülmüş ver ler b r csv'ye, başka b r dosyaya veya
ver tabanına ger depolama şlem gerçekleşt r l r Sonuç olarak Pandas kütüphanes , modellemeye veya
karmaşık görselleşt rmelere geçmeden önce, ver kümes n n doğasını anlamamıza mkan ver r.

8.1. Pandas Kütüphanesi

Pandas kütüphanes , ver b l m araç set n n b r b leşen olmasının yanı sıra aynı zamanda Python’dak
d ğer kütüphanelerle b rl kte kullanılab len b r pakett r. Pandas, NumPy paket n n üzer ne nşa ed lm şt r.
Buda b rçok NumPy yapısının Pandas'da kullanıldığı anlamına gel r. Pandas’dak ver ler genell kle
Sc Py'de stat st ksel anal z yapmak, Matplotl b'de fonks yonlar ç zmek ve Sc k t-learn'dek mak ne
öğren m algor tmalarını beslemek ç n kullanılır.

Numpy paket farklı ver türler ndek ver ler n b r arada kullanılmasında sıkıntılar yaşamaktadır. Buna
karşın Pandas ver anal z nde daha esnek ve daha y performans sunan b r pakett r. Pandas
kütüphanes n kullanab lmek ç n L ste’ler, Tuple’lar, Sözlük’ler, Fonks yon’lar ve Tekrarlı yapılar g b
temel konularda b lg sah b olmak gerek r.

Pandas kütüphanes mport kotumu le aşağıdak örnekte (Şek l 8.1) olduğu g b Jupyter çalışma k tabına
eklen r. Pd kolaylık amaçlı kullanılan b r kısaltmadır.

Şek l 8.1. Pandas paket n n çalışma sayfasına yüklenmes


Pandas ser ler ve ver çerçeves (DataFrame) olmak üzere k temel b leşen vardır.  Ser , aslında b r
sütundur. DataFrame, se ser koleks yonundan oluşan çok boyutlu b r tablodur (Şek l 8.2). DataFrame'ler
ve Ser ler, b rçok yönden b rb r ne oldukça benzer yapılardır. Boş değerler doldurmak ve ortalamayı
hesaplamak g b b r yle yapab ld ğ n z b r ş d ğer le de yapab l rs n z.

Şek l 8.2. Ser ve Ver Çerçeves

8.1.1. Pandas Serisi ve Veri Çerçevesi Oluşturmak

Pandas ser ler ndekslenm ş b r boyutlu d z ler g b b r yapıya sah pt r. Pandas ser s oluşturmak ç n ç n
pd.Ser es()  metodu kullanılır (Şek l 8.3).

Şek l 8.3. Ser oluşturma örneğ

Pandas da ver çerçeves oluşturmak ç n çeş tl yapılar mevcuttur. Bunlardan b r sözlük ver yapısıdır. Bu
şlem ç n lk olarak sözlük oluşturulur. Aşağıdak örnekte r s datasının sütunlarını çeren b r sözlük
oluşturulmuştur (Şek l 8.4).

Şek l 8.4. r s ver s ç n oluşturulan sözlük

İlk olarak oluşturulan sözlük ver çerçeves ne dönüştürülür. Bu şlem ç n Pandas'ın DataFrame() metodu
kullanılır. Daha sonra oluşturulan çerçeve Şek l 8.5’te ver len görüntüdek g b ekrana yazdırılır.
Şek l 8.5. Sözlüğün ver çerçeves ne dönüştürülmes

8.1.2. Veri Çerçevesi Üzerinde İşlem Yapmak

Ver çerçeves üzer nde ekleme ve s lme g b şlemler uygulanab l r. Bu bölümde bu şlemler örnekler
ver lerek açıklanmıştır.

Ver Çerçeves ne Sütun Ekleme İşlem :

Oluşturulan ver çerçeves ne sütun ekleme şlem b rkaç farklı b ç mde yapılab l r. Yen b r l stey sütün
olarak eklemek ç n Adı “Gözlem_No” ve çer ğ “1” olan b r sütun ekleyel m (Şek l 8.6).

Şek l 8.6. Ver çerçeves ne sütun ekleme

D kkat ed l rse Gözlem_No değer sadece 1 değer nden oluşmaktadır.  Her satıra farklı değerler de
eklemek mümkündür. Bunun ç n aşağıdak kodu yazmak gerek r (Şek l 8.7).
Şek l 8.7. Ver çerçeves ne elemanları farklı olan sütun ekleme

Ver Çerçeves nden Sütun S lme İşlem :

B r ver çerçeves nden sütun s lmek ç n del() metodu kullanılır. Şek l 8.7’dek ver çerçeves n n son
sütununun s l nmes şlem Şek l 8.8’de ekran görüntüsü ver len kod le gerçekleşt r l r.

Şek l 8.8. Ver çerçeves nden sütun s lme şlem

8.1.3. Veri Çerçevesini Dışarıdan Veri Okuyarak Doldurmak

Yukarıdak bölümlerde olduğu şek lde ver ler önce l steler olarak düzenlemek daha sonra bu l steler ver
çerçeves ne dönüştürmek özell kle ver ler n fazla olduğu durumlarda zordur.  Yukarıdak şlemler lk
ha alarda gördüğümüz ver saklama araçlarını tekrar etmek amacıyla oluşturduk. Gerçek hayatta se
ver ler daha çok excel veya csv formatında tutulur. 

Ş md bu tür ver ler pandas ver paket le nasıl okuyup ver çerçeves ne aktarılacağını görel m. İlk olarak
csv dosyamızın yolunu b lmem z gerek r. Kolay tak p etmek amacıyla C’d z s n n altına “AUZEFVERI” adlı
b r d z n oluşturuldu. İçer s ne nternetten nd r len r s ver s n n .csv uzantılı dosyası kayded lm şt r. C’n n
altında “AUZEFVERI” d z n çer s nde yer alan r s dosyasını pandas le okumak ç n gerekl komut aşağıda
ekran görüntüsü ver len Şek l 8.9’dak g b yazılır.

Şek l 8.9. csv uzantılı b r dosyanın okunması

Okunan ver ç ndek nesne türler ne bakmak ç n type () komutunu kullanılır. Sütun b lg ler n öğrenmek
ç n se .columns komutu kullanılır.

Aşağıda ekran görüntüsü ver len Şek l 8.10’da lk olarak type() komutu le r s ver s n n b r ver çerçeves
t p nde olduğu öğren lmekted r. İk nc çıkta se r s ver s n n sütun s mler ekrana yazdırılmıştır.

Şek l 8.10.

type ve .columns() komutunun kullanımı

.clomuns komutu ayrıca ver çerçeves n n sütun s mler n değ şt rmek ç nde kullanılır. Aşağıdak ver len
Şek l 8.11’dek ekran görüntüsünde r s datasının sütunları Türkçe olarak değ şt r lm şt r.
Şek l 8.11. Sütun adlarının değ şt r lmes

Ver Çerçeves nde Sütun Seçmek

Ver çerçeves nde b r sütunu seçmek/görüntülemek ç n ver _çerçeves _adı [“sütun sm ”] yapısı
kullanılır. Eğer [[ ]] ç köşel parantez çer s nde sorgulama yapılırsa bu durumda ver ler ver çerçeves
formatında görüntülenm ş olur (Şek l 812).

Şek l 8.12. Sütun seçme şlem

B rden fazla sütun görüntülemek ç n s mler art arda ç köşel [[ ]] parantez çer s nde yazılması gerek r
(Şek l 8.13).
Şek l 8.13. B rden fazla sütun seçme şlem

Ver Çerçeves nde Satır Seçmek

Satırları seçmek ç n se, sten len satır numaraları arasına ":" olacak şek lde aşağıda Şek l 8.14’de ver len
ekran görüntüsündek g b b r kod yazıyoruz.

Şek l 8.14. Satır seçme şlem

Loc ve LOc Komutları

Pandas’ta Satır ve sütunlarda seç m yapab lmek ç n Loc le Loc fonks yonları kullanılır. Loc konum; Loc
sayısal konum fadeler n tems l etmekted r.

Ş md bu şlemler sırasıyla göstermek ç n İlk olarak ayrı olarak oluşturulan l steler z p fonks yonu le tek
l ste ver s yapısına get rel m. İk nc adımda bu l ste yapısını “ver ” adlı b r sözlük yapısına dönüştürel m.
Son adımda se ver üzer nde daha kolay şlem yapılab lmes ç n sözlük ver yapısı pandas ver çerçeves
hal ne get r ld (Şek l 8.15).
Şek l 8.15. L ste ver ler n n ver çerçeves ne dönüştürülmes

Loc fonks yonunun şlev n daha y anlatmak ç n ndex yer ne satırlara Id olarak "A", "B", "C" b ç m nde
aşağıdak ekran görüntüsü g b s m verel (Şek l 8.16).

Şek l 8.16. L ste ver ler n n ver çerçeves ne dönüştürülmes

Loc fonks yonu le tablodan satır d l mleyel m. Ver y ver çerçeves formatında görüntülemek ç n [[ ]] ç
köşel parantez çer s nde yazmak gerek yor. B rden çok satır seçme şlem ç n aşağıdak kodu yazmak
gerek r (Şek l 8.17).
Şek l 8.17. Loc fonks yonu le ver çerçeves nden satır d l mleme

Satır ve sütun kes ş m kümes değerler n aynı anda seçme şlem ç n yandak komut yazılır. B rden fazla
satır ve sütun kes ş m n n değerler n görüntülemek ç n yandak g b b r komut yazılır.Bel rl değ şkenlere
a t tüm satırları seçt rmek ç n satır sm yer ne “ : ” şaret kullanılır. H sseler.loc[: , “endusuk”, 
“enyuksek”] b ç m nde yazmak gerek r (Şek l 8.18).
Şek l 8.18. Loc fonks yonu le satır sütun kes ş m d l mleme

Satır ve sütun s mler yer ne ndeks numaraları kullanılması ç n loc() fonks yonu kullanılır. Altıncı satır
ve b r nc sütun değerler n göstermek ç n yandak komut yazılır. 1., 2. ve 3. satır ve tüm sütunları
d l mlemek ç n aşağıdak komut yazılır (Şek l 8.19).

Şek l 8.19. Loc fonks yonu le satır d l mleme

B rden fazla satır ve sütunu seçmek ç n satır ve sütun nd s numaraları kullanılır. İnd s numarası 1,2 ve 3
olan satırlar le nd s numarası 2. ve 3. olan sütunların ver ler n n yazdırılması. “ : ” şaret n satır ve sütun
s mler yle de kullanab l r z (Şek l 8.20).
Şek l 8.20. Loc fonks yonu le satır d l mleme

Bölüm Özeti

Bu ders m zde Pandas kütüphanes n n lg l yapıları öğren ld . Pandas paket n n özell kler le lg l bol
örnekler yapılarak paket n detaylı şek lde anlaşılması sağlandı. 

Kaynakça

Wes McK nney, “Python for Data Analys s”, O’Re lly Med a, Inc., 1005 Gravenste nH ghway North,
Sebastopol, CA 95472., İk nc Baskı, 2017

İlker Arslan “Python le Ver B l m ”, Pusula, 2. Baskı, 2019


Ünite Soruları

1. Aşağıdak fadelerden hang s pandaları thal edecek?

A) mport pandas as pd

B) mport panda as py

C) mport pandaspy as pd

D) Yukarıda bel rt lenler n tümü

2. Pandas paket le ser oluşturmak ç n kullanılması gereken komut hang şıkta doğru
olarak ver lm şt r?

A) np.Ser es()

B) matplotl b.Ser es()

C) pd.Ser es()

D) python.Ser es()

3. read_csv komut le okunan b r dosyak ver ler aşağıdak nesnelerden hang s nde
görüntülen r?

A) Character Vector

B) DataFrame
C) Panel

D) L st

4. Aşağıda ver len “öğrenc ” adlı ver çerçeves b ç m nde olan b r nc tabloya, k nc tabloda
gözüktüğü g b “Bölümü” sütununu eklemek ç n yazılması gereken kod hang şıkta doğru
olarak ver lm şt r.

A) öğrenc [Bölümü]= Orman, B lg sayar, Elektron k

B) öğrenc (Bölümü)= “Orman”, “B lg sayar”, “Elektron k”


C) öğrenc (Bölümü)= Orman, B lg sayar, Elektron k

D) öğrenc [Bölümü]= “Orman”, “B lg sayar”, “Elektron k”

5. Aşağıda adı “öğrenc ” olan ver çerçves ndek “No” adlı sütunu s lmek ç n yazılması
gereken komut hang s d r?

A) remove([öğrenc [“No”])

B) cut([öğrenc [“No”])

C) del([öğrenc [“No”])

D) kes([öğrenc [“No”])

6. Aşağıdak “öğrenc ” adlı ver çerçves nde ver len sütun s mler n “Numarası”, “İsm ”,
“Bölümü” b ç m nde değ şt recek kod hang şıkta doğru olarak ver lm şt r?
A) öğrenc .columns=[“Numarası”, “İsm ”, “Bölümü”]

B) öğrenc .columns([“Numarası”, “İsm ”, “Bölümü”])

C) öğrenc .column=[“Numarası”, “İsm ”, “Bölümü”]

D) öğrenc _columns=[“Numarası”, “İsm ”, “Bölümü”]

7. Aşğıdak “öğrenc ” adlı ver çerçves nde “No” ve “Adı Soyadı” sütunlarını ver çerçeves
b ç m nde görüntülemek ç n bu fadeler şıklarda ver len hang yapı çer s ne yazılmalıdır?

A)  a) ()
B) [[]]

C) ([])

D) [()]

8. B r ver çerçves nde bell b r aralıkta satırları seçmek ç n satır numaraları arasına
aşağıdak şıklarda ver len şaretlerden hang s konur?

A) ;

B) -

C) :,

D) :

9. Aşağıda ver len “öğrenc ” adlı ver çerçeves tablosundan 20 numaralı satırı seçmek ç n
yazılması gereken komut hang şıkta doğru olarak ver lm şt r?

A) öğrenc . loc[20]

B) öğrenc . loc[1]

C) öğrenc .loc[“20”]

D) öğrenc _loc[20]

10. Aşağıdak fadelerden hang s type() komutunun şlev n doğru olarak açıklar?

A) ver çerçves n n sütun sayısını ver r.


B) ver çerçves n n satır sayısını ver r.

C) ver yapısının t p n bel rt r.

D) ver yapısının t p n değ şt r r.

CEVAP ANAHTARI

1. a 2. c 3. b 4. d 5. c 6. a 7. b 8. d 9. b 10. c
9. PYTHON İÇİN VERİ ANALİZİ ARAÇLARI-3
(MATPLOTLIB)

Giriş

Ver ler sayısal olarak değerlend rmek anlaşılab l rl k açısından yeter nce uzman olmayı gerekt r r. Bu
sebeple şlenen ver ler n uzman olmayan k ş ler nde anlamasını sağlamak gerek r. Bunun ç n
görselleşt rme araçları kullanılır. Matplotl b, Python’da kullanılan en öneml görselleşt rme araçlarından
b r d r. Bu bölümde bu kütüphane le graf kler n nasıl ç z leceğ ele alınmıştır.

9.1. Matplotlib Kütüphanesi

Ver lerden gerekl stat st ksel çıkarımları yapmak ç n ver ler görselleşt rmek gerek r.  Matplotl b, Python
kullanıcıları ç n böyle b r çözüm sunan popüler ver görselleşt rme aracıdır. Başka b r fade le Matplotl b,
NumPy d z ler üzer ne kurulmuş çok platformlu b r ver görselleşt rme kütüphanes d r. Matplotl b, çeş tl
ç z m türler n destekleyen açık kaynaklı b r ç z m k taplığı olup, çok az satır kodla graf kler, h stogramlar,
çubuk graf kler ve d ğer graf k türler oluşturmaya mkan sağlar. Bu bölümde, Matplotl b le çalışmaya
başlamaya yardımcı olacak temel konular anlatılacaktır. En sık kullanılan graf kler n nasıl oluşturulacağı
ve her b r n n ne zaman kullanılacağı açıklanacaktır.

9.1.1. Matplotlib Kütüphanesinin Yüklenmesi

Matplotl b, kütüphanes n çalışma sayfasına yüklemek ç n aşağıdak komut satırlarını yazmak gerek r.
matplotl b.pyplot  fades “as plt” olarak kısaltılarak kullanılır. .pyplot modülü, graf k üzer nde çeş tl
özell kler değ şt rmeye yarayan fonks yonları çer r. %matplotl b nl ne komut satırı Jupyter Notbook’ta
graf k göster m n sağlamak ç n yazılır (Şek l 9.1).

Şek l 9.1. matplotl b kütüphanes n n yüklenmes

9.1.2. Çizgi Grafiği Çizdirmek

Ç zg graf ğ ç zd rmek ç n lk olarak b r numpy d z s oluşturulacak. Daha sonra bu d z plot() fonks yonu
le ekrana ç zd r lecek. Nnumpy d z s oluşturmak ç n öncel kle numpy paket n n aşağıdak g b
çağrılması gerek r (Şek l 9.2).
Şek l 9.2.Graf k ç z m ç n gerekl kütüphaneler n yüklenmes

Aşağıdak kod satırında lk olarak graf k ç z m nde kullanılan ver ler n bulunduğu x ver d z s oluşturuldu. 
y eksen nde bu ver ler n kares olan değerler yazdırılmak sten yor. Bunun ç n Numpy’n n .power( )
fonks yon özell ğ kullanıldı. plt.plot(x,y) le graf k ç zd r ld . Ayrıca Matplotl b' b r Python komut dosyası
ç nden kullanılıyorsa, graf ğ görüntüleyeb lmek ç n dosyanın ç ne plt.show () yöntem n eklemek
gerek r. plt.show() komutu le de ç zd r len graf k ekrana yansıtıldı (Şek l 9.3). 

Şek l 9.3. Ç zg graf ğ ç z m

Aşağıdak kod le s nüs fonks yon graf ğ ç zd r r. Bu koddak np.l nespace() fonks yonu bel rlenen b r
aralıkta, stenen sayıda sayı çeren b r d z oluşturur. Bu fonks yonun genel kullanım şekl :
np.l nespace(start=, stop=,num= aralıkta oluşturulmak stenen tem sayısı) b ç m nded r.  x satırı le
sayı d z s oluşturuluyor, y satırı le s nüs fonks yonu ç zd r l yor (Şek l 9.4).
Şek l 9.4. S nüs graf ğ ç z m

Graf k Ç zd rmekte Kullanılan Renk ve Karakterler

Graf k ç z m nde ç zg ler n farklı şek lde görünmes stend ğ nde aşağıda ver len şek ldek karakterler
kullanılır (Şek l 9.5).

Şek l 9.5. Graf k ç z m nde kullanılan karakterler

Renk Karakterler :

Ç zg ler n farklı renklerde olması stend ğ nde kullanılması gereken renk karakterler ve anlamları:

“b”⇒ mav ; “g”⇒ yeş l; “r”⇒ kırmızı; “c”⇒ cam göbeğ mav s ; “m”⇒ eflatun; “y”⇒ sarı; “k”⇒ s yah;
“w”⇒ beyaz

Aşağıda ver len ekran görüntüsünde S nüs graf ğ n farklı renk ve karakterle ç z m ne a t kod ver lm şt r.
Kodun açıklaması: 

plt.f gure(f gs ze=(10,5)) graf ğ n boyunu tanımlar. x = np.l nspace(0, 10,40) 0 le 10 aralığında 40 adet sayı
çeren d z oluşturur. y = np.s n(x), s nüs graf ğ ç zd r r. plt.plot(x,y, "g^"), yeş l renk ve  "^" karakter le
s nüs ç zg s ;   plt.plot(x,y, 'r'), kırmızı renkte s nüs ç zg s ç zd rmek ç n kullanıldı. Ç z len graf kler ekrana 
plt.show(), komutu le görüntülend (Şek l 9.6).
Şek l 9.6. Farklı renk ve karakterle s nüs graf ğ ç z m

Çoklu Graf k Ç zd rmek, Et ket ve Izgara Eklemek

Aşağıdak ekran görüntüsünde  plt.plot(x , y, l new dth = 3 ,label = 'Ç zg -1'), kod satırında yer alan
l new dth = 3 ç zg kalınlığını; label = 'Ç zg -1‘et ket  adı vermey ; plt.xlabel('X Eksen ');  plt.ylabel('Y
Eksen '); x ve y eksenler ne s m vermey ; plt.t tle ('Ç zg grafı') Graf ğe başlık vermey ; plt.legend(), graf k
et ket n göstermey ; plt.gr d(l nestyle = '-' , wh ch = 'major' , color = 'grey'); graf ğe ızgara ç zg ler
eklemey sağlar (Şek l 9.7).
Şek l 9.7. Çoklu graf k ç z m

9.1.3. Bar Grafiği Çizdirmek

Bu bölümde Python’un Matplotl b k taplığını tek b r eksende kullanarak farklı b r eksende k çubuk
graf ğ n ve çoklu çubuk graf ğ n nasıl ç z leceğ n göster lm şt r. Önce çubuk graf ğ n ne olduğunu
anlayalım. Farklı grupların sayısal değerler n veya ver ler n karşılaştırmak ç n çubuk graf k kullanılır
veya b r çubuk graf ğ n, kategor k ver ler d kdörtgen çubuklarla görselleşt reb len ve d key veya yatay b r
eksende kolayca ç z leb len b r graf k veya graf k türü olduğunu söyleyeb l r z. Bar graf ğ ç zd rmek ç n
plt.bar() fonks yonu kullanılır.

Aşağıdak örnekte (Şek l 9.8) öğrenc numaraları ve notlarını graf k olarak ç zd ren kodlar yer almaktadır.
Şek l 9.8. Bar graf k ç z m

Çoklu Bar Graf ğ Ç zd rmek

Aşağıdak örnekte, her k tara a da k farklı eksen bulunan aynı graf ktek b r nc ver ve k nc ver olarak
fade ed len çoklu çubuk graf ğ n göreb l rs n z (Şek l 9.9).

Şek l 9.9. Çoklu bar graf k ç z m

Yatay Bar Graf ğ Ç zd rmek

Yatay Bar graf ğ ç zd rmek ç n plt.bar() fonks yonunun sonuna İng l zcede yatay anlamına gelen
“hor zantal” kel mes n n lk harf eklenerek elde  ed len plt.barh() fonks yonu kullanılır (Şek l 9.10).
Şek l 9.10. Yatay bar graf k ç z m

9.1.4. Scatter (Dağıtık) Grafik Çizdirmek

Dağıtık graf k ç zd rmek ç n plt.scatter() fonks yonu kullanılır. Aşağıdak kodu nceleyel m. İlk olarak x1,
y1 ve x2, y2 d z ler oluşturuldu. plt.scatter(x1,y1 ,label = 'Sınıf 1',marker='o' , color = 'green') komutu le
x1 ve y1 değerler koord natlarına yerleşt r ld . Bu kodda marker=‘o‘ le değerler n göster m şekl
bel rlen yor. Fonts ze=12 le karakter büyüklüğü; Plt.legend(loc=‘upper r ght‘) le legend’ın konumu
bel rt l yor (Şek l 9.11).

Şek l 9.11. Dağıtık graf k ç z m


9.1.5. Dilim (Pasta) Grafik Çizdirmek

D l m graf k ç zd rmek ç n plt.p e( ) fonks yonu kullanılır. Yandak kodun açıklaması: D l m=(0,0,0,0.1) 4.
d l m n öne çıkarılmasını sağlar. plt.p e(alan, explode=d l m,..) explode parametres , d l m sayısını sağlar.
startangle=90, parametres se d l m graf ğ n kaç derece döndürüleceğ n tanımlar (Şek l 9.12).

Şek l 9.12. D l m (Pasta) graf k ç z m

Pasta D l m Üzer ne Yüzde İşaretler n n Göster lmes

D l m üzer nde ver ler n % olarak değerler yazdırılmak ç n autopct='%1.1f%%' parametres kullanılır.
Shadow=True parametres d l me gölge ekler (Şek l 9.13).
Şek l 9.13. Pasta graf kte değerler n yüzde olarak göster m

9.1.6. Histogram Grafiği Çizdirmek

H stogram graf ğ n ç zd rmek ç n plt.h st() fonks yonu kullanılır. np.random.normal(s ze=2000),
normal dağılıma uyan 2000 adet rastgele değer üret r. b ns=40,  x, değ şken le üret len 2000 değer n kaç
sütun olarak fade ed leceğ n bel rt r (Şek l 9.14).

Şek l 9.14. H stogram graf k ç z m


Normal dağılıma uymayan rastgele sayı üreterek elde ed len h stogram graf ğ aşağıdak ekran
görüntüsünde ver lm şt r (Şek l 9.15).

Şek l 9.15. Normal dağılıma göre üret lmeyen sayıların h stogram graf ğ

H stograma Kenar Ç zg Ç zd rmek

H stograma kenar ç zg s ç zd rmek ç n edgecolor=“blue” Parametres le mav renkte ç zg ç zd r l r


(Şek l 9.16).

Şek l 9.16. Kenarları ç zd r lm ş h stogram graf ğ

Farklı H stogramları Aynı Graf kte Ç zd rmek


Bunun ç n aşağıdak kod örneğ ver lm şt r. Bu örnekte lk olarak x, y ve z değ şkenler ne normal dağılıma
göre üret len 800 adet sayısal değer atanmıştır. Daha sonra bu değ şkenler n değerler ayrı h stogram
graf kler b ç m nde tek b r graf k üzer nde göster lmekted r (Şek l 9.17). 

Şek l 9.17. Tek b r graf kte b rden fazla h stogram graf ğ ç z m

Bölüm Özeti

Bu bölümde matplotl b kütüphanes kullanılarak bar, h stogram ve pasta d l g b graf kler n nasıl
oluşturulduğuna a t kodlar ve ekran görüntüler örnekler yapılarak göster lm şt r. 

Kaynakça

WEB: https://matplotl b.org/ap /markers_ap .html

İlker Arslan, “Python le Ver B l m ”, Pusula, 2. Baskı, 2019

Wes McK nney, “Python for Data Analys s”, O’Re lly Med a, Inc., 1005 Gravenste n H ghway North,
Sebastopol, CA 95472., İk nc Baskı, 2017
Ünite Soruları

1. Aşağıda ver len şıklardan hang s graf k ç zme kütüphanes d r?

A) numpy

B) pandas

C) sk learn

D) matplotl b

2. plot() fonks yonu ne yapar?

A) ç zg ç zd r r

B) graf k ç zd r r

C) sütun ç zd r r

D) da re ç zd r r

3. Ç z len graf ğ ekrana görüntülemek ç n hang komut kullanılır?

A) plt.plot()

B) plt.show()

C) plt.legend()
D) plt.screen()

4. np.l nspace(5,15, 50) komutu ne yapar?

A) 50 tane sayı üret r.

B) 1-10 arasında 50 tane sayı üret r.

C) 5-15 arasında 50 tane sayı üret r.

D) 5-15 arasında 25 tane sayı üret r.

5. Graf k ç z m nde kullanılan “s” karakter ne nayapar?

A) ver noktalarını kare b ç m nde göster r.

B) ver noktalarını “s” b ç m nde göster r.

C) ver noktalarını küçülterek göster r.

D) ver noktalarını sarı renkte göster r.

6. Graf k ç z m nde kullanılan renk kodlaması ç n aşağıda ver len eşleşt rmeden hang s
yanlış olarak ver lm şt r?

A) k”=s yah

B) r”= kırmızı

C) m”= mav
D) y”= sarı

7. plt.f gure(f gs ze=(8,6)) fonks yonu ne yapar?

A) ç z lecek graf ğ n 48 mm2 olarak ayarlar.

B) ç z lecek graf ğ n en n 6, yüksekl ğ n 8 olarak ayarlar.

C) ç z lecek graf ğ n n alanını 48 cm2 olarak ayarlar.

D) ç z lecek graf ğ n en n sek z, yüksekl ğ n 6 olarak ayarlar.

8. Sütun graf ğ ç zd rmek ç n hang komut kullanılır?

A) plt.plot()

B) plt.bar()

C) plt.p e()

D) plt.show()

9. H stogram graf ğ ç zd rmek ç n hang komut kullanılır?

A) plt.plot()

B) plt.scatter()

C) plt.h st()

D) plt.barh st()
10. plt.gr d() komutu ne yapar?

A) graf ğe yatay ç zg ler ç zd r r

B) graf ğe ızgara ç zg ler ç zd r r

C) graf ğe d key ç zg ler ç zd r r,

D) graf ğ n reng n gr olarak ç zd r r

CEVAP ANAHTARI

1. d 2. a 3. b 4. c 5. a 6. c 7. d 8. b 9. c 10. b
10. İSTATİSTİKSEL ANALİZ

Giriş

Öncek bölümlerde Python d l le lg l temel b lg ler le b rl kte ver ler şlemek ç n kullanılan Python’a
özgü ver yapıları öğren ld . Ver ler şlemede kullanılan Numpy, Pandas ve Matplotl b kütüphaneler ve
özell kler örnekler yapılar anlatıldı. Bu bölümden sonra artık bu b lg ler m z n el m ze aldığımız b r ver
üzer nde nasıl kullanılacağı anlatılacaktır. Bunun lk aşamasını el m zdek ver hakkında tanımlayıcı
stat st k ver ler n çıkarılması oluşturur. Bu bölümde ver ler üzer nde keş fsel anal z n n nasıl yapıldığı
ncelenm şt r. 

10.1. Keşifsel Veri Analizi

Ver b l m nde, Keş fsel Ver Anal z (EDA), ver kümeler n n ana özell kler n genell kle görsel yöntemlerle
özetlemek ç n anal z etmeye yönel k b r yaklaşımdır. EDA, modelleme görev nden önce ver ler n b ze ne
anlatab leceğ n görmek ç n kullanılır. B r sayı sütununa veya bütün b r ver çerçeves tablosuna bakmak
ve ver ler n öneml özell kler n bel rlemek kolay değ ld r. Düz sayılara bakarak çgörü elde etmek yorucu,
sıkıcı ve / veya bunaltıcı olab l r. Keş fsel ver anal z tekn kler , bu durumda b r yardımcı olarak
tasarlanmıştır.

Keş fsel Ver Anal z , ver ler üzer nde mak ne öğrenmes algor tmalarını çalıştırmadan önce, kalıpları
keşfetmek, anormall kler tesp t etmek, h potezler test etmek ve özet stat st kler ve graf kler yardımıyla
ver ler üzer nde lk araştırmaların gerçekleşt r lmes ç n kr t k sürec fade eder.

Keş fsel ver anal z , kurallar ve formüllerle oldukça katı olma eğ l m nde olan çıkarımsal stat st kler n b r
tamamlayıcısıdır. İler düzeyde, EDA, ver set ne farklı açılardan bakmayı ve bunları açıklamayı ve
ardından özetlemey çer r.

10.2. Verilerin Yüklenmesi

Bu ders kapsamında l teratürde var olan “adult.csv” ver set kullanılacaktır. İlk olarak bu ver
nternetten nd r lerek daha önce b lg sayarımızda oluşturduğumuz ver set d z n ne kayded l r. Daha
sonra bu ver set , öğrenm ş olduğumuz ver okuma komutu le aşağıdak g b (Şek l 10.1) çalışma k tabına
yüklen r ve ver .head() komutu le ver n n lk beş satırı görüntülen r. 
Şek l 10.1. Ver set n n yüklenmes ve görüntülenmes

Ülkeler Bazında K ş Sayısı

.shape komutu le ver set n n kaç satır ve sütundan oluştuğu b lg s elde ed l r. Ülkeler bazında ver set
çer s nde her ülkeden kaç yet şk n olduğunu bulmak ç n .group by komutu kullanılır. Bu b lg ler
görüntüleyen ekran çıktısı aşağıdak şek lde ver lm şt r (Şek l 10.2).

Şek l 10.2. Ülkelere göre ver set nde yer alan k ş ler n sayısı

Ver dek Erkekler n ve Kadınların Sayısı

C ns yet erkek olan kayıtların sayısını bulan komutu yazalım. Daha sonra da c ns yet erkek ve gel r
'>50K‘ ya eş t olan kayıtların sayısını bulan komut aşağıdak şek lde ver lm şt r (Şek l 19.3). 
Şek l 10.3. Erkekler n sayısı

C ns yet kadın olan kayıtların sayısını bulan komutu yazalım. Sonra c ns yet kadın ve gel r '>50K‘ ya eş t
olan kayıtların sayısını bulan komutun ekran görüntüsü aşağıdak şek lde ver lm şt r (Şek l 10.4). 

Şek l 10. 4. Kadınların sayısı

Ver y Yaşa Göre Gruplama

Ver y yaşa göre gruplayarak her yaş grubunda kaç k ş olduğunu bulan komutu yazalım. D kkat ed l rse 74
farklı yaş grubu olduğu anlaşılmaktadır. En düşük yaş 17 ve en büyük yaş se 90 olarak elde ed lm şt r
(Şek l 10.5). 
Şek l 10.5. Ver set nde yer yaş grupları ve sayıları

Ver ler n Ortalaması

Ortalama, ver hakkında b lg veren en temel ve öneml stat st k komutudur. Ortalama, b r numunen n,
örneklem n merkez eğ l m n tanımlar. Ortalamalardak bu farklılık, popülasyon ortalaması ve örneklem
ortalaması olmasından kaynaklanır. İlk tüm popülasyonun ortalamasıdır. D ğerler alınan örnekler n
(kadın/erkek) ortalamasıdır (Şek l 10.6).

Şek l 10.6. Ver ler n ortalaması

Ver ler n Standart Sapması

Genell kle ortalama, ver ler n yeterl b r tanımlayıcısı değ ld r. Ver ler , ortalama ve varyans g b k sayıyla
b raz daha y tanımlayab l r z: Varyans ? Ver n n yayılmasını açıklar. (?? −?) ter m ne ortalamadan sapma
den r, bu nedenle varyans, ortalama kare sapmadır. Varyansın karekökü ?, standart sapma olarak
adlandırılır. Standart sapmayı tanımlarız çünkü varyansı yorumlamak zordur. Örnek ver ler m z ç n temel
stat st kler alalım (Şek l 10.7):
Şek l 10.7. C ns yete göre ortalama, varyans ve standart sapma değerler

Örnekler n ortalaması y b r tanımlayıcıdır, ancak öneml b r dezavantajı vardır: Örnek set nde
d ğerler nden çok farklı b r değere sah p b r hata varsa ne olur? Örneğ n, ha alık çalışılan saatler d kkate
alındığında, normalde 20 le 80 arasında b r aralıkta olacaktır; ama yanlışlıkla 1000 değer olsaydı ne
olurdu? Ver n n ger kalanından öneml ölçüde farklı olan b r ver öğes ne aykırı değer den r. Bu durumda,
ortalama μ, uç değere doğru büyük ölçüde değ şecekt r. Bu dezavantaja b r çözüm, b r numunen n orta
değer n veren b r sıra stat st ğ olan stat st ksel medyan μ12 tarafından sunulur. Bu durumda, tüm
değerler büyüklükler ne göre sıralanır ve medyan, sıralı l sten n ortasındak değer olarak tanımlanır.
Dolayısıyla, aykırı değerler karşısında çok daha sağlam olan b r değerd r. Bu açıklamalardan sonra ver
set m zdek çalışan erkek ve kadınların medyan yaşını bulalım (Şek l 10.8).
Şek l 10.8. C ns yete göre medyan değerler

Yüksek Gel rl ler n Medyanını Hesaplama

Ş md de ver set m zdek yüksek gel rl erkek ve kadınların medyan yaşını bulalım. Beklend ğ g b , her k
ver set nde de erkekler ve kadınlar arasındak fark aynı olsa da, yüksek gel rl k ş ler n medyan yaşı tüm
çalışanlarda (erkek/kadın) daha yüksek çıkmıştır (Şek l 10.9).

Şek l 10.9. Yüksek erkek ve kadınların medyan değerler

Ver Dağılımları

Ver ler sadece ortalamalarına, medyanlarına ve varyanslarına bakarak özetlemek tehl kel olab l r: Çok
farklı ver ler aynı stat st klerle tanımlanab l r. Yapılacak en y şey, ver ler nceleyerek doğrulamaktır. Her
b r değer n ne sıklıkta göründüğünü (yan , sıklığının ne olduğunu) açıklayan ver dağılımına b r göz
atab l r z. B r dağılımın en yaygın tems l , her b r değer n sıklığını gösteren b r graf k olan h stogramdır.
Çalışan erkek ve kadınların yaşlarını ayrı ayrı gösterel m (Şek l 10.10).
Şek l 10.10. Erkek ve kadınların dağılımı

Olasılık Kütle Fonks yonu

Olasılık Kütle Fonks yonu (PMF), ayrık rasgele değ şkenler n b r kavramıdır (Şek l 10.11). Kes kl b r
rastgele değ şken n b r değere tam olarak eş t olma olasılığını göster r. En büyük PMF değer ne sah p
rastgele değ şken n değer ne Mod den r.

Şek l 10.11. Olasılık kütle fonks yon graf ğ

Kümülat f Dağılım Fonks yonu

Tanım olarak, b r rastgele değ şken n; X' n Kümülat f Dağılım Fonks yonu (CDF), rastgele değ şken X' n, x'e
eş t veya daha küçük b r değer alması olasılığıdır (Şek l 10.12).

Şek l 10.12. Kütle dağılım fonks yon graf ğ (sol:erkek; sağ=kadın)


Aşağıdak graf kte (Şek l 10.13) kadın ve erkekler n kümülat f dağılım fonks yonu b rl kte gözükmekted r.
Bu graf ğe göre 22’l yaşlarda gel r sev yeler eş t ken, lerleyen yaşlarda zeng n olan erkekler n gel r
kadınların yaklaşık olarak k katına çıkmaktadır.

Şek l 10.13. Bütünleş k kütle dağılım fonks yon graf ğ (erkek-kadın)

Bölüm Özeti

Bu bölümde ver üzer nde yapılan keş fsel ver anal z n n nasıl yapıldığı le lg l açıklamalar ver lm şt r.
Bunun ç n gerekl temel stat st k kavramlar kısaca açıklanarak, yapılan tanımlamalara a t örnekler
yapılmış ve gerekl ekran görüntüler ver lm şt r. Son olarak ele alınan ver ye a t olasılık ve kümülat f
dağılım graf kler ver lm şt r.  

Kaynakça

WEB: https://www.datacamp.com/commun ty/tutor als/exploratory-data-analys s

WEB: https://www.edureka.co/blog/exploratory-data-analys s- n-python/

WEB: https://towardsdatasc ence.com/an- ntroduct on-to-exploratory-data-analys s- n-python-


9a76f04628b8

Laura Igual, Sant Segu , “Introduct on to Data Sc ence”, Spr nger, 2017
Ünite Soruları

1. Keş fsel ver anal z aşağıda ver len şıklardan hang s n daha fazla göz önüne alır?

A) görsel tekn klere

B) matemat ksel hesaplamaya

C) modellemeye

D) ver y stat st ksel olarak anlamaya

2. shape komutu ver hakkında hang b lg y ver r?

A) ver dek satır sayısı

B) ver dek sütun sayısını

C) ver n n satır ve sütun sayısını

D) ver çer sndek boş satırların sayısını

3. Ver set ndek herhnag b r sütuna a t ortalama değer bulmak ç n hang komut kullanılır?

A) var()

B) mean()

C) med an()
D) std()

4. hız = [99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86] ver l stes n n med an değer
aşağıdak şıklardan hang s nde doğru olarak ver lm şt r.

A) 87

B) 89.77

C) 88

D) 86

5. hız = [99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86] ver l stes n n ortalama değer
aşağıdak şıklardan hang s nde doğru olarak ver lm şt r.

A) 88.77

B) 89.77

C) 89

D) 87.5

6. Olasılık fonks yonunu ç zd rmek ç n aşağıda ver len argümanlardan hang s kullanılır?

A) h st

B) h sttype

C) dens ty
D) alpha

7. Kümülat f toplam fonks yonunu ç zd rmek ç n aşağıda ver len argümanlardan hang s
kullanılır?

A) h sttype

B) l new dth

C) b ns

D) cumulat ve

8. Aşağıda ver len “ver ” adlı ver çerçeves nde “ tem” sütununa gruplama şlem le b rl kte
sayma şlem uygulanmak sten yor. Bunun ç n gerekl komut hang şıkta doğru olarak
ver lm şt r?

A) say=ver .groupby(" tem").s ze()

B) say=ver .groupby(" tem").count()

C) say=ver .groupby( tem).count()

D) say=ver .groupby(" tem").head()

9. Aşağıda ver len “ver ” adlı ver çerçeves nde “network_type” “mob le” olan kayıtları
görüntülemek sten yor. Bunun ç n gerekl olan doğru komut hang şıkta ver lm şt r?

A) x = ver [(ver .network_type == ' network_type ')]

B) x = ver [(ver .network_type == mob le)]


C) x = ver [(ver .network_type == 'mob le')]

D) x = ver [(ver .network_type == 'data')]

10. Aşağıda ver len “ver ” adlı ver çerçeves nde göz önüne alınarak aşağıdak komut
yazılıyor.

y =ver [(ver .durat on>=4.0)]

Bu komutun sonucu hang şıkta doğru olarak fade ed lm şt r?

A) 4.0’dan büyük olan durat on değerler görüntülen r.

B) 4.0’a eş t ve büyük olan durat on değerler görüntülen r.

C) 4.0’a eş t durat on değerler görüntülen r.

D) 4.0’dan küçük ve büyük olan durat on değerler görüntülen r.

CEVAP ANAHTARI

1. d 2. c 3. b 4. a 5. b 6. c 7. d 8. a 9. c 10. b
11. MAKİNE ÖĞRENİMİ (DENETİMLİ-DENETİMSİZ
ÖĞRENME)

Giriş

Mak ne öğrenmes özell kle ver çokluğu olan problemlerde problem çözme aracı olarak kullanılır. Bu tür
problemler n çözümünde denet ml ve denet ms z olmak üzere kullanılan temelde k yaklaşım vardır.
Denet ml öğrenme daha çok sınıflama problemler ç n, denet ms z öğrenme yöntemler se kümeleme
problemer ç n kullanılırlar.

11.1. Makine Öğrenimi nedir?

Mak ne öğrenmes , b r b lg sayarın doğru sonuçlar elde etmek ç n kend s ne ver len örneklerden
öğreneb leceğ f kr ne dayanır. Mak ne Öğren m , yen örnekler ç n programcının tekrar kodlamasına
gerek kalmadan ver len b r öğrenme algor tması le kend kend n gel şt rme yoluyla örneklerden
öğreneb len b lg sayar yazılım s stem d r. Bu şek lde öğrenen s stemler gelecek durumlar ç n kullanıcılara
öner sağlar veya tahm nde bulunur. Başka b r fade le mak ne öğren m , eyleme geç r leb l r sezg ler
oluşturmak ç n kullanılab lecek b r çıktıyı tahm n etmek ç n ver ler stat st ksel araçlarla b rleşt ren
yapay zekânın b r parçasıdır. Mak ne öğren m , dolandırıcılık tesp t , tahm n bakım, portföy
opt m zasyonu, görev otomat kleşt rme g b çeş tl uygulamalarda kullanılır.

11.2. Makine Öğrenimi ve Geleneksel Programlama

Geleneksel programlama, mak ne öğren m nden öneml ölçüde farklıdır. Geleneksel programlamada, b r
programcı, yazılımın gel şt r ld ğ sektördek b r uzmana danışarak tüm kuralları kodlar. Her kural
mantıksal b r temele dayanır.  Mak ne mantıksal fadey tak ben b r çıktı yürütür/üret r (Şek l 11.1). S stem
karmaşıklaştığında, daha fazla kural yazılması gerek r. Böyle b r durumda sürdürüleb l rl k zor b r hale
geleb l r.

Şek l 11.1. Geleneksel programlama

Mak ne öğren m bu sorununun üstes nden, g r ş ve çıkış ver ler n n nasıl l şk lend r ld ğ n öğrenerek ve
bunun ç n gerekl kuralları yazarak gel r. Bu şek lde mak ne öğrenmes nde her yen ver
olduğunda/g r ld ğ nde programcıların yen kurallar yazmasına gerek yoktur (Şek l 11.2). Kullanılan
algor tmalar, etk nl ğ zaman ç nde y leşt rmek ç n yen ver lere ve alınan deney m sonuçlarına göre
uyarlanır.

Şek l 11.2. Mak ne öğrenmes n n ana şeması

11.3. Makine Öğrenimi Nasıl Çalışır?

Mak nen n öğrenme şekl nsana benzer. İnsanlar deney mlerden öğren rler. Ne kadar çok b l rsek, o
kadar kolay tahm n edeb l r z. Benzetme yapmak gerek rse, b l nmeyen b r durumla karşı karşıya
kaldığımızda, başarı ht mal b l nen durumdan daha düşüktür. Mak nelerde nsan beyn ne benzer şek lde
eğ t l r. Doğru b r tahm n yapmak ç n mak neye b rçok örnek ver l r/öğret l r. Mak neye mevcut örnekler n
dışında benzer b r örnek verd ğ m zde sonucu anlayab l r/tahm nde bulunab l r. Bununla b rl kte, tıpkı b r
nsan g b , daha önce görülmem ş b r örnek ver l rse, mak ne tahm n etmekte güçlük çeker.

Mak ne öğren m n n temel amacı öğrenme ve çıkarımdır. Her şeyden önce mak ne, kalıpları keşfederek
öğren r. Bu keş f ver ler sayes nde yapılır. Ver b l mc n n öneml b r parçası, mak neye hang ver ler n
sağlanacağını d kkatl ce seçmekt r. B r problem çözmek ç n kullanılan özn tel kler n l stes ne özell k
vektörü den r. Özell k vektörünü, b r sorunu çözmek ç n kullanılan b r ver alt kümes olarak
düşüneb l rs n z.

Mak ne, gerçeğ bas tleşt rmek ve bu keşf b r modele dönüştürmek ç n bazı algor tmalar kullanır. Bu
nedenle, öğrenme aşaması ver ler tanımlamak ve b r model hal nde özetlemek ç n kullanılır. B r
mak neye yeterl m ktarda ver sağlanırsa, gerçek dünyadak problemler çözmek ç n Mak ne Öğren m
Algor tmalarını kullanarak bu ver ler nasıl yorumlayacağını, şleyeceğ n ve anal z edeceğ n öğreneb l r.

Mak ne Öğren m n daha y anlamak ç n sık kullanılan term noloj lerden bazılarını b lmek gerek r.
Mak ne öğrenmes nde kullanılan tanımlamalar:

Algor tma: B r Mak ne Öğren m algor tması, ver lerden kalıpları öğrenmek ve ondan öneml b lg ler
çıkarmak ç n kullanılan b r d z kural ve stat st ksel tekn kt r. B r Mak ne Öğren m model n n arkasındak
mantıktır. Mak ne Öğren m algor tmasına b r örnek, Doğrusal Regresyon algor tmasıdır.

Model: Model, Mak ne Öğren m n n ana b leşen d r. B r model, Mak ne Öğren m Algor tması kullanılarak
eğ t l r. B r algor tma, doğru çıktıyı elde etmek ç n b r model n ver lm ş g rd ye göre alması gereken tüm
kararları eşler.

Tahm n Değ şken : Çıktıyı tahm n etmek ç n kullanılab len ver ler n b r özell ğ d r.

Yanıt Değ şken : Yordayıcı değ şken (ler) kullanılarak tahm n ed lmes gereken özell k veya çıktı
değ şken d r.
Eğ t m Ver ler : Mak ne Öğren m model , eğ t m ver ler kullanılarak oluşturulur. Eğ t m ver ler , model n
çıktıyı tahm n etmek ç n gerekl olan temel eğ l mler ve kalıpları bel rlemes ne yardımcı olur.

Test Ver ler : Model eğ t ld kten sonra, b r sonucu ne kadar doğru tahm n edeb leceğ n değerlend rmek
ç n test ed lmel d r. Bu, test ver set tarafından yapılır.

Bu tanımlamaları özetleyen Mak ne öğrenmes n n şemat k model aşağıda Şek l 11.3’te ver lm şt r.
Mak ne Öğren m sürec , mak neye çok m ktarda ver besleyerek başlar. Bu ver ler kullanarak mak ne,
ver ler arasındak l şk ler ve eğ l mler tesp t etmek üzere eğ t l r. Bu b lg ler daha sonra b r problem
çözmek ç n b r algor tma kullanarak b r Mak ne Öğren m Model oluşturmak ç n kullanılır.

Şek l 11.3. Mak ne öğrenmes n n şemat k yapısı

11.4. Makine Öğrenim Süreci

Mak ne Öğren m sürec , b r problem fades ne çözüm bulmak ç n kullanılab lecek b r öngörücü model
oluşturmayı çer r. Mak ne Öğren m sürec n anlamak ç n, Mak ne Öğren m kullanılarak çözülmes
gereken b r problem n göz önüne alındığını varsayalım. Örneğ n yerel bölgem zde yağmur oluşumunu
tahm n etmek amaçlanmaktadır. Bu şlem mak ne öğren m kullanarak gerçekleşt rmek ç n aşağıdak
adımların zlenmes gerek r (Şek l 11.4).

Şek l 11.4. Mak ne öğrenme sürec

Adım 1: Problem n amacını tanımlama

Bu adımda, tam olarak ney n tahm n ed lmes gerekt ğ n anlamalıyız. B z m durumumuzda amaç, hava
koşullarını nceleyerek yağmur olasılığını tahm n etmekt r. Bu aşamada, bu sorunu çözmek ç n ne tür
ver ler n kullanılab leceğ veya çözüme ulaşmak ç n zlemen z gereken yaklaşım türü hakkında z h nsel
notlar almak da öneml d r.
Adım 2: Ver Toplama

Bu aşamada çeş tl sorular sormak gerek r. Örneğ n; sorunu çözmek ç n ne tür ver lere ht yaç var?
İstenen ver ler mevcut mu? Ver ler nasıl alab l r m? Gerekl olan ver türler n öğrend kten sonra, bu
ver ler n nasıl elde edeb leceğ anlaşılmalı. Örneğ n; Ver toplama şlem manuel olarak veya web kazıma
yoluyla yapılab l r. Baştak sorunumuzu tekrar düşünürsek; hava tahm n ç n gerekl ver ler, nem sev yes ,
sıcaklık, basınç, yerel özell kler g b ver ler anal z ç n toplanmalı ve saklanmalıdır.

3. Adım: Ver Hazırlama

Topladığınız ver ler çoğu zaman stenen formatta olmaz. Ver set nde eks k değerler, fazlalık değ şkenler,
y nelenen değerler vb. g b b rçok tutarsızlıkla karşılaşılır. Bu tür tutarsızlıkların g der lmes çok öneml d r.
Çünkü bunlar yanlış hesaplamalara ve tahm nlere yol açab l r. Bu nedenle, bu aşamada, ver set n
herhang tutarsızlık bu aşamada düzelt l r.

4. Adım: Keş fsel Ver Anal z

Bu aşama tamamen ver ler der nlemes ne anal z ederek ver de saklı olan l şk ler bulmayı amaçlar.
Keş fsel Ver Anal z (EDA), Mak ne Öğren m n n bey n fırtınası aşamasını oluşturur. Ver Keşf , ver lerdek
kalıpları ve eğ l mler anlamayı çer r. Bu adımda, tüm yararlı b lg ler çıkarılır ve değ şkenler arasındak
korelasyonlar anlaşılır. Örneğ n, yağış tahm n durumunda, sıcaklık düştüğünde güçlü b r yağmur olasılığı
olduğunu b l yoruz. Bu tür korelasyonlar bu aşamada anlaşılır ve görselleşt r l r.

Adım 5: B r Mak ne Öğren m Model Oluşturma

Ver Keşf sırasında elde ed len tüm çgörüler ve l şk ler, Mak ne Öğren m Model n oluşturmak ç n
kullanılır. Bu aşama her zaman ver kümes n eğ t m ver ler ve test ver ler olmak üzere k bölüme
ayırarak başlar. Eğ t m ver ler , model oluşturmak ve anal z etmek ç n kullanılacaktır. Model n mantığı,
uygulanmakta olan Mak ne Öğren m Algor tmasına dayandırılır. Yağışı tahm n etme durumunda, çıktı
True (yarın yağmur yağacaksa) veya False (yarın yağmur yağmayacak) şekl nde olacağından, Loj st k
Regresyon g b b r Sınıflandırma Algor tması kullanab l r z. Doğru algor tmayı seçmek, çözmeye
çalıştığınız problem n türüne, ver kümes ne ve problem n karmaşıklık düzey ne bağlıdır.

Adım 6: Model Değerlend rme ve Opt m zasyon

Eğ t m ver set n kullanarak b r model oluşturduktan sonra, model test etme aşmasına gel n r. Test ver
set , model n ver ml l ğ n ve sonucu ne kadar doğru tahm n edeb leceğ n kontrol etmek ç n kullanılır.
Doğruluk hesaplandıktan sonra, modeldek d ğer y leşt rmeler bu aşamada uygulanır. Model n
performansını y leşt rmek ç n parametre ayarlama ve çapraz doğrulama g b yöntemler kullanılab l r.

7. Adım: Tahm nler


Model değerlend r l p gel şt r ld kten sonra, n hayet tahm nlerde bulunmak ç n kullanılır. N ha çıktı,
Kategor k b r değ şken (ör. Doğru veya Yanlış) veya Sürekl M ktar (ör. B r h sse sened n n tahm n değer )
olab l r. Başta örnek olarak ele aldığımız yağış oluşumunun tahm n şlem n n çıktısı kategor k b r
değ şken olacaktır.

11.5. Makine Öğrenimi Türleri

B r mak ne, aşağıdak üç yaklaşımdan herhang b r n zleyerek b r sorunu çözmey öğreneb l r. B r


mak nen n öğreneb leceğ yollar şunlardır:

 Denet ml Öğren m

 Denet ms z Öğrenme

 Takv yel Öğrenme

Denet ml Öğren m

Denet ml öğrenme, mak ney et ketlenm ş ver ler kullanarak öğrett ğ m z veya eğ tt ğ m z b r tekn kt r.
Denet ml Öğren m anlamak ç n b r analoj düşünel m. Çocuklar olarak matemat k problemler n
çözmek ç n hep m z n rehberl ğe ht yacı vardı. Öğretmenler m z, toplamanın ne olduğunu ve nasıl
yapıldığını anlamamıza yardımcı oldu. Benzer şek lde, denet ml öğrenmey b r rehber çeren b r Mak ne
Öğren m türü olarak düşüneb l rs n z. Et ketl ver set , algor tmaya ver lerdek kalıpları anlaması ç n
eğ tecek öğretmend r (Şek l 11.5).

Şek l 11.5. Denet ml öğrenme

Yukarıdak şekl göz önüne alalım (Şek l 11.5). Burada Tom ve Jerry'n n mak ne görüntüler n besl yoruz
ve amaç, mak nen n görüntüler k gruba ayırması ve sınıflandırmasıdır (Tom görüntüler ve Jerry
görüntüler ). Modele beslenen eğ t m ver kümes et ketl d r. Öğretmen g b mak neye "Tom böyle
görünüyor ve bu da Jerry" d yoruz. Bunu yaparak mak ney et ketl ver ler kullanarak eğ t yoruz.
Denet ml Öğrenmede, et ketl ver ler n yardımıyla yapılan y tanımlanmış b r eğ t m aşaması vardır.

Denet ms z Öğrenme
Denet ms z öğrenme, et ketlenmem ş ver ler kullanarak ve model n rehberl k olmadan bu b lg ler
üzer nde hareket etmes ne z n veren eğ t m çer r. Denet ms z öğrenmey herhang b r rehberl k olmadan
öğrenen zek b r çocuk olarak düşünün. Bu tür Mak ne Öğren m nde, model et ketl ver lerle beslenmez
(Şek l 11.6). Çünkü modelde 'bu görüntü Tom ve bu Jerry'd r' konusunda h çb r pucu yoktur, Tom ve
Jerry arasındak kalıpları ve farklılıkları kend başına çözer. Bu şlem ç n çok sayıda ver y şlen r.

Şek l 11.6. Denet ms z öğrenme

Örneğ n, bu görüntünün 1. t p olduğunu anlamak ç n Tom'un s vr kulaklar, daha büyük boyut vb. g b
öne çıkan özell kler n tanımlar. Benzer şek lde Jerry'de de bu tür özell kler bulur ve bu görüntünün 2. t p
olduğunu b l r. Tom'un veya Jerry'n n k m olduğunu b lmeden görüntüler k farklı sınıfa ayırıyor.

Takv yel Öğrenme

Takv yel Öğrenme, b r tems lc n n b r ortama yerleşt r ld ğ ve bu ortamda davranmayı bel rl eylemler
gerçekleşt rerek ve bu eylemlerden aldığı ödüller gözlemleyerek öğrend ğ Mak ne öğren m n n b r
parçasıdır. Bu tür b r Mak ne Öğren m n speten farklıdır. Issız b r adaya bırakıldığınızı hayal ed n! S z ne
yapardınız? Elbette herkes g b pan k yapardınız.  Ancak zaman geçt kçe adada nasıl yaşayacağınızı
öğrenmeye başlarsınız. Çevrey keşfedecek, kl m koşullarını, orada yet şen y yecek türler n , adanın
tehl keler n vb. durumları anlarsınız. Takv yel Öğrenme tam olarak bu şek lde çalışır. Takv yel Öğren m,
esas olarak kend kend ne g den arabalar g b gel şm ş Mak ne Öğren m alanlarında kullanılır.

Aşağıda ver len şek lde (Şek l 11.7) Mak ne Öğren m türler özetlenm şt r. Ş md , bu Mak ne Öğren m
yöntemler n kullanılarak çözüleb len problemler n türler ne bakalım. Bu şekle göre, Mak ne Öğren m nde
çözüleb lecek üç ana sorun türü vardır:
Şek l 11.7. Mak ne öğrenmes le çözülen problem t pler

11.6. Makine Öğreniminde Problem Türleri

Regresyon: Bu tür b r problemde çıktı sürekl b r m ktardır. Yan , örneğ n, mesafeye göre b r arabanın
hızını tahm n etmek st yorsanız, bu b r Regresyon problem d r. Regresyon problemler , Doğrusal
Regresyon g b Denet ml Öğrenme algor tmaları kullanılarak çözüleb l r.

Sınıflandırma: Bu t pte çıktı kategor k b r değerd r. E-postaları stenmeyen posta ve stenmeyen posta
olmayan olmak üzere k sınıfa ayırmak, Destek Vektör Mak neler , Na ve Bayes, Loj st k Regresyon, K-En
Yakın Komşu g b Denet ml Öğrenme sınıflandırma algor tmaları kullanılarak çözüleb len b r
sınıflandırma problem d r.

Kümeleme: Bu tür b r problem, g rd n n özell k benzerl ğ ne göre k veya daha fazla kümeye atanmasını
çer r. Örneğ n, zley c ler lg alanlarına, yaşlarına, coğrafyalarına vb. göre benzer gruplara ayırmak. Bu
şlem K-Means Kümeleme g b Denet ms z Öğrenme algor tmaları kullanılarak yapılab l r. Aşağıda bu üç
türün özell kler n özetleyen şek l aşağıda ver lm şt r (Şek l 11.8).

Şek l 11.8. Regresyon, Sınıflandırma ve Kümeleme arasındak farkın özet tablosu


Bölüm Özeti

Bu bölümde mak ne öğren m hakkında lk olarak temel kavramlar açıklanmıştır. Mak ne öğren m
sürec n n adımları ver lerek bu adımlarda yapılan şlemlerden bahsed lm şt r. Denet ml öğrenme ve
denet ms z öğrenme arasındak farklar şemat k görseller kullanılarak zah ed lm şt r. Mak ne öğren m le
lg l problem türler açıklanmış ve hang problem türünün hang algor tmalar le çözüleceğ le lg l özet
b r tablo sunulmuştur. 

Kaynakça

S nan Uğuz, “Mak ne Öğrenmes ”, Nobel Yayıncılık, 2019

WEB: https://mach nelearn ngmastery.com/superv sed-and-unsuperv sed-mach ne-learn ng-algor thms/

WEB: https://www.analyt cssteps.com/blogs/ ntroduct on-mach ne-learn ng-superv sed-and-


unsuperv sed-learn ng
Ünite Soruları

1. Aşağıdak lerden hang s denet ml öğrenmes algor tması değ ld r?

A) PCA

B) Karar Ağacı

C) Doğrusal Regresyon

D) Na f Bayesyen

2. B r d z g rd ver s ne sah p olduğunuzda ve olası yanıtları b ld ğ n zde ne tür b r mak ne


öğren m algor tması tahm nlerde bulunur?

A) Denet ms z öğrenme

B) Denetleme mantığı

C) Denet ml öğrenme

D) Der n öğrenme

3. Mak ne öğrenme sürec genel olarak kaç adımdan oluşur?

A) 3

B) 7
C) 5

D) 6

4. Aşağıda ver len şıklardan hang s mak ne öğrenmes problem türler nden b r değ ld r?

A) Sınıflama

B) Özell k nd rgeme

C) Kümeleme

D) Regresyon

5. Aşağıda ver len şıklardan hang s mak ne öğren m sürec adımlarından b r değ ld r?

A) Model kurma

B) Ver toplama

C) Tahm nde bulunma

D) Algor tma gel şt rme

6. Mak ne Öğren m (ML) aşağıda ver len fadelerden hang s doğru değ ld r?

A) Mak ne Öğren m (ML), b lg sayar b l m alanıdır

B) ML, b r algor tma veya yöntem kullanarak ham ver lerden kalıpları çıkaran b r yapay zeka
türüdür.

C) Mak ne öğren m nde sadece denet ml algor tmalar kullanılır.


D) Mak ne öğren m n n ana odağı, b lg sayar s stemler n n, açıkça programlanmadan veya
nsan müdahales olmaksızın deney mlerden öğrenmes ne olanak sağlamaktır.

7. Aşağıda ver len res mdek sonucu veren algor tma türü ne olmalıdır?

8. Aşağıda ver len res mdek sonucu veren algor tma türü ne olmalıdır?

A) Pek şt rmel

B) Denet ms z

C) Kümelemel

D) Denet ml

9. Mak ne öğren m (ML) ve yapay zeka (AI) le lg l aşağıda ver len seçeneklerden hang s
doğru değ ld r?

A) Mak ne öğren m , akıllı mak neler programlamanın alternat f b r yoludur.

B) Mak ne öğren m ve yapay zekanın çok farklı hedefler var.


C) Mak ne öğren m , b r ver kümes n yazılıma dönüştüren b r d z tekn kt r.

D) AI, nsan z hn n takl t edeb len b r yazılımdır.

10. Ver set eğ t m ve test (eğ t m-test) ver s olarak k kısma genel olarak hang orana göre
yapılır. Aşağıda ver len şıklardan hang s bu oranı en doğru olarak fade etmekted r?

A) %75~80-%25~30

B) %45~50-%55~50

C) %25~30-%75~70

D) %35~70-%65~30

CEVAP ANAHTARI

1. a 2. c 3. b 4. b 5. d 6. c 7. b 8. c 9. d 10. a
12. REGRESYON

Giriş

Bu bölümde mak ne öğrenmes algor tmalarında b r olan l neer regresyon algor tması ncelenm şt r. Bu
algor tma denet ml öğrenme algor tmasıdır. Bağımsız değ şkenlere göre bağımlı değ şken n alacağı
değer tahm n etmekte kullanılır. Bunun ç n lk olarak var olan ver lerden model n katsayıları bel rlen r ve
bu katsayılara bağlı olarak ver ler n sah p olduğu matemat k formül oluşturulur. Bu formül daha sonra
yen ver ler geld ğ nde çıktının ne olması gerekt ğ n tahm n etme şlem nde gerekl hesaplamaları
yapmak ç n kullanılır.

12.1. Basit Doğrusal Regresyon

  Tahm ne dayalı anal z ve çıkarımlar yapmak ç n bas t doğrusal regresyon kullanılır. Bu regresyon
model nde b r bağımlı ve b r bağımsız değ şken vardır. Modellemede neden ve sonuç olduğu zaman,
regresyon anal z ne g der z. Faktör anal z tekn kler n kullandığımızda gerçek zamanlı anal zde
performans daha doğrudur. Regresyon anal z n n temeller denet ml mak ne öğren m nde kullanılır.
Burada d kkat ed lmes gereken üç öneml nokta vardır.

• Anal z yapab lmek ç n ver lere ht yacımız vardır. Tüm popülasyonu değerlend rmek zahmetl b r şt r.
Bu yüzden anal z ç n örnek ver ler elde ed l r ve kullanılır.

• Ver ler aldıktan sonra, tüm popülasyon ç n şe yarayacak b r model tasarlamamız gerek r.

Ders çalışma saat le başarı arasında neden-sonuç t p modelleme olduğunu fark ett ğ m z düşünel m.
Eğer sonuç böyle çıkarsa, doğrusal regresyonumuzu elde ett ğ m z problemde neden (çalışma saat )
artırdıkça etk n n (başarının) artması anlamına gel r. Bu durumda her k s de paralel olarak değ ş r. 

• Modellemeden sonra çalışma saat le başarı arasında tahm nlerde bulunab l r z.

Doğrusal tahm nler elde etmek ç n matemat ksel b lg lere ht yacımız var. Dolayısıyla, doğrusal b r
denklem kurab lmek ç n doğrusal ç zg n n özell kler n çıkarmamız gerek r. Genel olarak doğrusal b r
ç zg n n denklem matemat ksel olarak aşağıdak şek lde fade ed l r.

Bu denklemde;

, bağımlı b r değ şken (sonuç) veya tahm n ed len değ şkend r.

, bağımsız b r değ şkend r.


  , doğrunun eğ m d r.

, eksen n kest ğ noktanın değer d r.

, ' n b r fonks yonudur. Regresyon model doğrusal b r yaklaşım olduğundan y b r tahm n model
kurab lmek ç n ve ' bulmamız gerek r. Bu katsayılar hesaplandıktan sonra kurulacak doğrusal
denklem yardımıyla ver lecek yen g rd değerler n n sonucunu tahm n edeb l r z. Bu katsayıların
hesaplanmasını sağlayan matemat ksel formüller vardır. Ancak bu k tap kapsamında bu formüller n
detayına g r lmem şt r. Ancak bu formüller kullanan ve b ze sted ğ m z bu katsayıların değerler veren
Python kodunun nasıl kullanılacağı ver lecek örnek le detaylı b r şek lde açıklanacaktır.

Öncel kle Python’da ht yacımız olan tüm kütüphaneler ve sınıfları Jupyter Notebook çalışma sayfasına
aktarmak gerek r. Sonuçlarımızı graf ksel olarak kolayca görselleşt reb lmem z ç n "matplotl b" adlı b r
k taplığı yüklüyoruz. Gerekl hesaplama şlemeler ç n Numpy ve ver okuyup üzer nde şlemler yapmak
ç n Pandas kütüphaneler n de ekl yoruz.  Ayrıca bu zamana kadar kullanmadığımız ve doğrusal
regresyon model m z kurmak ç n gerekl olan sklearn kütüphanes n ve l near regresyon model n n
çalışma sayfasına eklenm ş hal aşağıda Şek l 12.1’de ver lm şt r.

Şek l 12.1. Gerekl kütüphaneler n yüklenmes

12.1.1. Veri Setinin Yüklenmesi

İlk olarak Pandas kütüphanes nden yararlanarak ve read_csv () yöntem n kullanarak ver set m z lg l
d z nden okuyoruz.  Daha sonra ver set m z n lk beş satırını head() yöntem le ekrana görüntülüyoruz.
shape() metodu le de ver m z n kaç satır ve sütundan oluştuğu b lg s n alıyoruz (Şek l 12.2).  
Şek l 12.2. Ver set n n çalışma sayfasına aktarılması

Daha sonra ver m z n sütunlarını Türkçeleşt r yoruz. Bu sayede daha sonuçları daha kolay tak p etm ş
oluruz. Bu şlem ç n columns() metodunu kullanıyoruz. Ayrıca descr be() metodu le de ver m z hakkında
stat st k b lg ler görüntülüyoruz (Şek l 12.3).

Şek l 12.3. Sütun adlarının değ şt r lmes

Son olarak ver m z n graf k üzer ndek durumunu ç zd ren kodlar aşağıda Şek l 12.4’dek ekran
görüntüsünde ver lm şt r. D kkat ed l rse çalışma saat başarı arasında doğrusal b r l şk n n var olduğu
anlaşılmaktadır.
Şek l 12.4. Ver n n graf ksel görünümü

12.1.2. Veri Setinin Hazırlanması

İlk olarak ver m zdek özell kler ve bağımlı değ şken sırasıyla x ve y değ şkenler ne ayırıyoruz.
Ver ler m z n tamamı sayı olduğundan ve ç nde met n olmadığından, ver ler m z kodlamak zorunda
değ l z. Ayrıca L nearRegress on sınıfını kullandığımız ç n, özell k ölçeklend rme şlem n de yapmamıza
gerek yok. Çünkü bu şlem sklearn kütüphanes tarafından halled l yor. Daha sonra ver set n eğ t m set
ve test set şekl nde k ye ayırıyoruz. Ver ler 1 / 3'e bölüyoruz. Böylece 30 satırdan 20 satır eğ t m set ne ve
10 satır test set ne ayrılmış oldu. Bu şlemler yapan kodlar aşağıdak şek lde (Şek l 12.5) sırası le
ver lm şt r.

Şek l 12.5. Bağımlı, bağımsız değ şken, eğ t m ve test ver s n n oluşturulması

12.1.3. Algoritmanın Eğitilmesi

Bu adım da, lk olarak b r doğrusal regresyon nesnes oluşturulacak. Daha sonra bu nesney eğ t m
set m ze uydurmak ve tahm n etmeye başlamak ç n eğ t lecekt r. Aşağıda ver len ekran görüntüsünde
doğrusal regresyon nesnes oluşturuldu. Bu nesnen n arkasındak matemat k b lg s n detaylı olarak
b lmem ze gerek yoktur. Z ra sklearn kütüphanes bu algor tmanın arkasındak gerekl matemat k
eylemler b z m adımıza gerçekleşt r yor.

Son olarak oluşturulan bu model ver ler m ze uydurmamız gerek r. Başka b r dey şle eğ t m ver ler m z
kullanarak model n "öğrenmes n " sağlıyoruz. Oluşturulan nesne ve model n eğ t lmes ç n gerekl kodlar
aşağıdak şek lde ver lm şt r (Şek l 12.6).
Şek l 12.6. Regresyon nesnes n n oluşturulması ve ver n n eğ t lmes

12.1.4. Modelin Katsayı Değerlerinin Hesaplanması

Aşağıda ver len ekran görüntüsünde lk olarak l ner doğru denklem m z n eksen kest ğ noktanın 
( ntercept)  değer , daha sonra doğrunun eğ m olan katsayısının değer hesaplanmıştır. Bu
sonuçların elde ed lmes n sağlayan kodun ekran görüntüler Şek l 12.7’de ver lm şt r. 

Şek l 12.7. Denklem katsayılarının elde ed lmes

Bu katsayıları yer ne koyduğumuzda eğ t lm ş model m z n matemat ksel denklem n aşağıdak b ç mde


elde ed lm ş olur.

12.1.5. Tahminde Bulunma İşlemi

Model m z, oluşturduğumuz eğ t m set le eğ t ld . Artık model , sah p olduğunuz test ver kümes yle test
etmeye başlayab l r z. G r len test ver ler ne göre model m z çeş tl değerler ürett . Tahm n şlem ve bu
değerler ekran yazdıran kod aşağıdak ekran görüntüsünde ver lm şt r (Şek l 12.8).
Şek l 12.8. Gerçek değer ve elde ed len tahm n değerler

B r sonrak adımda amacımız, tahm n n z n ne kadar y çalıştığını görmekt r. Bunun ç n matplotl b


kütüphanes kullanılacaktır. İlk olarak, ver set m zdek gerçek değerler eğ t m set ç n tahm n ed len
değerlere göre görselleşt receğ z. Bu b ze model m z n ne kadar doğru olduğunu söyleyecekt r. Daha
sonra, test set yle başka b r graf k ç zeceğ z. Her k durumda da dağılım graf ğ kullanacağız. Gerçek
değerler (ver kümes nden gelen) mav renkle ve model m z n oluşturduğu doğru denklem kırmızı olarak
ç z lm şt r. Bu şek lde (Şek l 12.9), gerçek ve tahm n değerler kolayca ayırt edeb l r z.

Şek l 12.9. Eğ t m ver s n n modele uyumu

Görüldüğü g b mav noktalar kırmızı ç zg ye yakın olmasına rağmen bazı farklılıklar var (Şek l 12.9). Bu
farklılıklar farklı tekn kler kullanılarak azaltılab l r. Ancak bu konu bu k tabın dışında tutulmuştur.
Ş md test ver s n n graf ksel görünümüne bakalım. Aynı kodu kullanarak fakat sadece değ şkenler Test
yaparak bu şlem gerçekleşt r l r. Bu şlem n kod ekranı ve elde ed len graf k çıktısı aşağıdak ekran
görüntüsünde ver lm şt r (Şek l 12.10).

Şek l 12.10. Test ver s n n modele uyumu

12.1.6. Modelin Değerlendirilmesi

Mak ne öğrenmes algor tmalarının başarımın değerlend r lmes nde bazı değerlend rme ölçütler vardır.
Bu bölümde bu ölçütler n matemat ksel formülasyonlarına g rmeden d rekt olarak kısa açıklamaları ve
daha sonra bu ölçütler n kurulan modelden elde ed len sonuçları ver lecekt r.

Ortalama Mutlak Hata (Mean Absolute Error -MAE)

Mutlak hata, tahm n ed len değerler le gerçek değerler arasındak farktır. Tam olarak fade etmek
gerek rse, ver kümes n n tüm örneğ nde, o örnek ç n gerçek değer le öngörülen değer arasındak her b r
farkın mutlak değer n n ortalamasıdır. Bu ölçüt 0 le sonsuz arasında değerler alab l r. Değer ne kadar
düşük se doğruluk değer o kadar y anlamına gel r.

Ortalama Kare Hata (Mean Squared Error -MSE)

Ortalama Kare Hatası (MSE) en sık kullanılan regresyon kaybı fonks yonudur. MSE, tüm ver kümes nde
örnek başına ortalama kare kaybını fade eder. Uydurulmuş b r ç zg n n ver noktalarına ne kadar yakın
olduğunun b r ölçüsüdür. Ortalama Kare Hata ne kadar küçükse, ver lere uyum o kadar yakın olur yan
daha y doğruluğu göster r. Kare neden yle, büyük hataların MSE üzer nde küçük hatalardan daha fazla
etk s vardır. Bu nedenle MAE, kareden faydalanmadığı ç n aykırı değerlere karşı daha
sağlamdır/duyarsızdır. Ver lerde aykırı değer varsa ve bunlar yok saymak sten yorsa, MAE daha y b r
seçenekt r.
Ortalama Kare Hata Karekökü (Root Mean Squared Error -RMSE)

Kök Ortalama Kare Hatası (RMSE), artıkların (tahm n hataları) standart sapmasıdır. Artıklar, ver
noktalarının regresyon ç zg s nden ne kadar uzakta olduğunun b r ölçüsüdür; RMSE, bu artıkların ne
kadar yayıldığının b r ölçüsüdür. D ğer b r dey şle, ver ler n en uygun ç zg de ne kadar yoğun olduğunu
b ze söyler. Kök ortalama kare hatası, deneysel sonuçları doğrulamak ç n tahm n ve regresyon anal z nde
kullanılır.

Bel rleme Katsayısı-Coe c ent of Determ nat on (R Squared)¶

Bel rleme katsayısı yüzde olarak anlam fade eder. Regresyon denklem n n oluşturduğu ç zg n n
sonuçlarına kaç ver noktasının düştüğüne da r b r f k r ver r. Katsayı ne kadar yüksek olursa, ver
noktaları ve ç zg ç z ld ğ nde ç zg n n geçt ğ noktaların yüzdes o kadar yüksek olur. Katsayı 0.80 se,
noktaların %80' regresyon ç zg s ne düşmes anlamını taşır. 1 veya 0 değerler , regresyon ç zg s n n
sırasıyla ver ler n tümünü veya h çb r n tems l etmed ğ n göster r. Daha yüksek b r katsayı, gözlemler ç n
daha y b r uyum olduğunun b r gösterges d r.

Aşağıda ver len ekran görüntüsünde yukarıda fade ed len ölçütler model başarımı hakkında b ze f k r
vermekted r (Şek l 12.11).

Şek l 12.11. Test ver s n n modele uyumu

Bölüm Özeti

Bu bölümde mak ne öğrenmes algor tmalarından bas t regresyon model anlatılmıştır. İlk olarak
model n matemat ksel denklem ve gerekl açıklamalar ver lm şt r. Daha sonra bu algor tmanın çalışması
l teratürden alınan küçük b r ver set kullanılarak gerekl şlemler adım adım gerçekleşt r lm şt r. Her b r
adımın ekran ve kod çıktıları ayrıca ver lm şt r. Son olarak model değerlend rme ölçütler matemat ksel
zahlarına g rmeden ne amaçla kullanıldıkları ve sonuçlarının ne anlama geld ğ açıklanmıştır. Bu ölçütler
ç n model n verd ğ çıktıların ekran görüntüsü sunulmuştur.

Kaynakça

WEB: https://contactsunny.med um.com/l near-regress on- n-python-us ng-sc k t-learn-f0f7b125a204

WEB: https://pub.towardsa .net/fully-expla ned-l near-regress on-w th-python-fe2b313f32f3


Laura Lgual, Sant Segu , “Introduct on to Data Sc ence”, A Python Approcah to Concepts Techn ques and
Appl cat ons, 2017, Spr nger

Neyran Orhunb lge, “İşletme İstat st ğ n n Temeller , 2013, Nobel Yayınev


Ünite Soruları

1. Aşağıda ver len ölçütlerden hang s Regresyon modeller n değerlend rmek ç n kullanılan
ölçütlerden b r değ ld r?

A) R kare

B) RMSE

C) MSE

D) MPE

2. Tek bağımsız değ şken çeren bas t b r doğrusal regresyon model nde kaç katsayı tahm n
etmek gerek r?

A) 1

B) 2

C) 3

D) 4

3. Mak ne öğrenme sürec genel olarak kaç adımdan oluşur?

A) 3

B) 7
C) 5

D) 6

4. Regresyon anal z nde tahm n ed len değ şken,

A) yanıt veya bağımlı değ şken

B) bağımsız değ şken

C) Ara değ şken

D) genell kle x 

5. Regresyon anal z nde, bağımsız değ şken k logram c ns nden ölçülürse, bağımlı değ şken
aşağıdak lerden hang s doğrudur?

A) K logram c ns nden olamaz

B) Alan b r m nde olmalıdır.

C) K logram c ns nden olmalıdır

D) Herhang b r b r m olab l r

6. L neer regresyon model n çalıştırmak ç n hang Python kütüphanes yüklenmes gerek r?

A) pandas

B) matplotl b

C) numpy
D) sklearn

7. L neer regresyon denklem ndek “ ntercept” değer ç n aşağıdak fadelerden hang s


doğrudur?

A) doğrunun eğ m n bel rt r

B) y eksen n kest ğ noktayı bel rt r

C) Sab t olan katsayıyı fade eder

D) x eksesn n kest ğ noktayı bel rt r..

8. Bas t b r doğrusal regresyon anal z ney nceler?

A) Sadece k değ şken ya da b rçok değ şken arasındak l şk y

B) B r bağımlı ve b r bağımsız değ şken arasındak l şk y

C) Sadece bağımlı değ şkenler arasındak l şk y

D) İk bağımlı ve b r bağımsız değ şken arasındak l şk y

9. y (bağımlı) ve x (bağımsız) sürekl değ şkenler n doğrusal l şk s n test etmek ç n,


aşağıdak graf klerden hang s en uygunudur?

A) Dağılım graf ğ

B) Bar graf ğ

C) H stogram graf ğ
D) Pasta d l m graf ğ  

10. Korelasyon katsayısı ç n aşağıda ver len fadelerden hang s doğrudur?

A) x değ şken n n bel rl b r değer ver ld ğ nde y değ şken n n bel rl b r değer n bel rt r.

B) y değ şken n n bel rl b r değer ver ld ğ nde x değ şken n n bel rl b r değer n bel rt r.

C) x ve y değ şkenler arasındak l şk n n gücünün b r değer n bel rt r.

D) y eksen le x eksen arasındak eğ m değer n bel rt r.

CEVAP ANAHTARI

1. d 2. b 3. b 4. a 5. c 6. d 7. b 8. a 9. a 10. c
13. SINIFLANDIRMA

Giriş

Bu bölümde sınıflandırma problemler nde kullanılan mak ne öğrenmes algor tmalarından loj st k
regresyon algor tması ncelenm şt r. Bu algor tma da l neer algor tma g b denet ml öğrenme
algor tmaları çer s nde yer alır. L neer regresyon algor tmasında farklı olarak, bu algor tma çıktı
değer n n 0-1 veya Evet-Hayır b ç m nde k durum alan problemlerde sınıflandırma aracı olarak kullanılır.
Algor tmanın matemat ksel model formülasyonunda s gmo d fonks yonu kullanılır. Bu fonks yon le
hesaplanan tahm n değer eş k değer nden (genell kle 0.5) büyük olursa 1 sınıfı; küçük olursa 0 sınıfına a t
olmuş olur.

13.1. Lojistik Regresyon

Sınıflandırma tekn kler , mak ne öğren m uygulamalarının öneml b r parçasıdır. Ver B l m ndek
problemler n yaklaşık %70' sınıflandırma problemler d r. Mevcut b rçok sınıflandırma problem vardır.
Loj st k Regresyon, k sınıflı sınıflandırma ç n en bas t ve yaygın olarak kullanılan Mak ne Öğren m
algor tmalarından b r d r. Uygulanması kolaydır ve herhang b r k l sınıflandırma problem ç n temel
olarak kullanılab l r. Loj st k regresyon, b r bağımlı k l değ şken le bağımsız değ şkenler arasındak
l şk y tanımlar ve tahm n eder.

Loj st k Regresyon, b r log t fonks yonu kullanarak b r k l olayın meydana gelme olasılığını tahm n eder.
Doğrusal regresyon denklem :

Burada, y bağımlı değ şkend r ve açıklayıcı değ şkenlerd r.

Doğrusal regresyon sürekl b r çıktı ver r, ancak loj st k regresyon sab t b r çıktı sağlar. Sürekl üret m n b r
örneğ ev f yatı ve h sse sened f yatıdır. Kes kl çıktı örnekler , b r hastanın kanserl olup olmadığını
tahm n etmek, müşter n n ş bırakıp bırakmayacağını tahm n etmekt r. Doğrusal regresyon, Sıradan En
Küçük Kareler (OLS) kullanılarak tahm n ed l rken, loj st k regresyon, Maks mum Olab l rl k Tahm n (MLE)
yaklaşımı kullanılarak tahm n ed l r (Şek l 13.1).
Şek l 13.1. L ner ve loj st k regresyon

OLS veya Sıradan En Küçük Kareler Doğrusal Regresyonda, gözlenen ver ler le tahm n ed len arasındak
karesel hataların toplamını en aza nd recek b r model oluşturarak b l nmeyen parametreler tahm n
etme yöntem d r.

Maks mum olab l rl k tahm n , b r model n parametreler ç n değerler bel rleyen b r yöntemd r.
Parametre değerler , model tarafından açıklanan şlem n gerçekte gözlemlenen ver ler üretme olasılığını
en üst düzeye çıkaracak şek lde bulunur. Yapılan araştırmalar sonucunda MLE tahm nler n n en küçük
kareler yöntem ne eşdeğer olduğu ortaya çıkmıştır.

MLE b r "olasılık" maks m zasyon yöntem d r, OLS se mesafey en aza nd ren b r yaklaşım yöntem d r.
Olab l rl k şlev n n maks m ze ed lmes , gözlemlenen ver ler üretme olasılığı en yüksek olan
parametreler bel rler. İstat st ksel b r bakış açısından, MLE, b r model ç n spes f k parametr k değerler n
bel rlenmes nde ortalama ve varyansı parametreler olarak ayarlar. Bu parametre set , normal b r
dağılımda ht yaç duyulan ver ler tahm n etmek ç n kullanılab l r.

Sıradan En küçük kareler tahm nler , kare sapmaların m n mum toplamına (en küçük kare hatası) sah p
bel rl ver noktalarına b r regresyon doğrusu uydurularak hesaplanır. Her k s de doğrusal b r regresyon
model n n parametreler n tahm n etmek ç n kullanılır. MLE, b r ortak olasılık kütle şlev varsayarken,
OLS, mesafey en aza nd rmek ç n herhang b r stokast k varsayım gerekt rmez.

S gmo d Fonks yonu

Loj st k fonks yon olarak da adlandırılan s gmo d fonks yonu, herhang b r gerçek değerl sayıyı alıp 0 le 1
arasındak b r değere eşleyeb len 'S' şekl nde b r eğr ver r (Şek l 13.2). Eğr poz t f sonsuza g derse,
tahm n ed len y; 1 olur ve eğer eğr negat f sonsuzluğa g derse, tahm n ed len y; 0 olur. S gmo d
fonks yonunun çıktısı 0.5'ten fazlaysa, sonucu 1 veya EVET olarak sınıflandırab l r z. 0.5'ten küçükse, 0
olarak sınıflandırab l r z veya HAYIR olarak adlandırılır. Örneğ n: Çıktı 0.75 se, olasılık açısından şöyle
d yeb l r z: Hastanın kansere yakalanma ht mal yüzde 75’d r.
Şek l 13.2. S gmo d fonks yonun graf ksel şekl

Problem Formülasyonu

Bazı bağımlı değ şkenler n loj st k regresyonunu ( ) bağımsız değ şkenler kümes
üzer nde uygularken, burada g rd ler n sayısıdır. G rd ler n b l nen değerler yle başlanırsa her gözlem
çn lg l gerçek yanıt (veya çıktı) elde ed l r.

Amacınız, tahm n ed len yanıtlar her gözlem ç n gerçek yanıta mümkün olduğunca yakın olacak
şek lde loj st k regresyon fonks yonunu bulmaktır. İk l sınıflandırma problemler nde gerçek yanıt
sadece 0 veya 1 olab l r.  Bu, her 'n n 0 veya 1'e yakın olması gerekt ğ anlamına gel r. Bu nedenle
s gmo d fonks yonu kullanılır.

Loj st k regresyon fonks yonu elde ed ld kten sonra temel matemat ksel bağımlılığın değ şmed ğ n
varsayarak, yen g rd ler n çıktılarını tahm n etmek ç n kullanılır.

Metodoloj

Loj st k regresyon doğrusal b r sınıflandırıcıdır, dolayısıyla log t olarak da adlandırılan doğrusal b r


fonks yon kullanılır. değ şkenler , tahm n
ed len ağırlıklar veya sadece katsayılar olarak da adlandırılan regresyon katsayılarının tahm n ed c ler d r.
Loj st k regresyon fonks yonu

n n s gmo d fonks yonudur.

Loj st k regresyon tahm n ed len en y ağırlıkları bel rler, öyle k fonks yonu tüm
gerçek yanıtlara mümkün olduğunca yakın, burada gözlemler n sayısıdır. Mevcut
gözlemler kullanarak en y ağırlıkları hesaplama sürec ne model eğ t m veya uydurma den r.
fonks yonunu tanımlayan en y ağırlıkları bel rled kten sonra, herhang b r g r ş ç n tahm n
ed len çıktıları elde ed leb l r. Her gözlem ç n , se tahm n ed len çıktı 1
ve aks takd rde 0'dır. Eş ğ n 0,5 olması gerekmez, ancak genell kle 0.5 alınır.

ve arasında b r tane daha öneml l şk vardır, o da . Bu


eş tl k, 'n n neden log t olduğunu açıklar. olduğunda ve se tahm n
ed len çıktının 1 ve aks takd rde 0 olduğu anlamına gel r.

13.1.1. Scikit-Learn'de Model Oluşturma

Bu bölümde yukarıda anlatılan matemat ksel alt yapıları kodlanmış olarak b ze sunan ve bu algor tmaları
çalıştırmamıza mkan veren Sklearn kütüphanes n kullanarak  loj st k regresyon örneğ n n adımları
anlatılacaktır.

Gerekl Kütüphaneler n Yüklenmes

İlk olarak loj st k regresyon algor tmasının kullanab lmek ç n gerekl olan kütüphaneler çalışma
sayfasına aşağıdak şek lde ver ld ğ g b dah ed l r (Şek l 13.3).

Şek l 13.3. S gmo d fonks yonun graf ksel şekl

Ver n n Yüklenmes

Örneğ m zde Loj st k Regresyon Sınıflandırıcısını kullanarak hastaların d yabet olup olmadığı tahm n
ed lmeye çalışılacaktır. Öncel kle Pandas kütüphanes n n csv dosyası okuma şlev n kullanarak
nternetten nd r len P ma Ind an D abetes ver kümes çalışma sayfasına aşağıdak şek lde ver ld ğ g b
yüklen r (Şek l 13.4). Örnekte kullanılacak ver ler aşağıdak bağlantıdan nd reb l rs n z:
https://www.kaggle.com/uc ml/p ma- nd ans-d abetes-database

Şek l 13.4. Ver set n n yüklenmes

Özell k Seçme
Burada, ver len sütunları, bağımlı (veya hedef değ şken) ve bağımsız değ şken (veya özell k değ şkenler )
olmak üzere k tür değ şkene bölmem z gerek r. Aşağıdak ekran görüntüsünde bu şlemler yapan kod
ver lm şt r (Şek l 13.5).

Şek l 13.5. Özell kler n seç lmes

Ver ler Bölme

Model performansını anlamak ç n, ver set n b r eğ t m set ne ve b r test set ne bölmek y b r stratej d r.
Tra n_test_spl t () şlev n kullanarak ver kümes n böleel m. Hedef ve test_set boyutu olmak üzere 3
parametre özell ğ n geçmen z gerek r. Ek olarak, kayıtları rastgele seçmek ç n random_state
kullanab l rs n z. Burada ver kümes 75:25 oranında k bölüme ayrılmıştır. Bu, model eğ t m ç n ver n n
%75’ ve model test ç n ver n n %25’ kullanılacağı anlamına gel r (Şek l 13.6).

Şek l 13.6. Eğ t m ve test ver s n n ayrıştırılması

Model n Oluşturulması ve Eğ t lmes

İlk olarak, kullanılacak olan Log st c Regress on modülü çalışma sayfasına aktarılır. Bu şlem ç n
Log st cRegress on() şlev n kullanarak “model” adında b r Log st c Regress on sınıflandırıcı nesnes
oluşturulur. Ardından, model n z f t() kullanarak eğ t m ver s ne oturtulur. Daha sonra model n ntercept
ve bağımsız değ şkenler n katsayıları bel rlen r. Son olarak s gmo d fonks yonuna g rd olacak olan l neer
denklem elde ed l r (Şek l 13.7).
Şek l 13.7. Eğ t m ve test ver s n n ayrıştırılması

Model n Değerlend r lmes

pred ct() fonks yonu kullanılarak oluşturduğumuz model n tahm n etmes n sağlıyoruz. Aşağıda ver len
ekran görüntüsünde p_tahm n, loj st k regresyonun matemat ksel anlatımında kullanılan olasılık
fonks yonuna karşılık gelmekted r. y_tahm n se değer ne bağlı olarak ver n n alacağı sınıf
değer n bel rt r. Aşağıdak ekran görüntüsünde (Şek l 13.8) tahm n olasılıklarına bağlı olarak sınıfların
çıktı ver lm şt r.

Şek l 13.8. Tahm n sınıfları

Doğruluk Değer

Elde ett ğ m z rakamlarla, loj st k regresyon ç n kullandığımız ölçü olan doğruluğu bulab l r z. Doğruluk,
doğru tahm n sayısının toplam tahm n sayısına oranıdır.  Doğruluk değer aşağıdak formülle hesaplanır:
doğruluk =doğru_tahm nler /toplam_tahm nler

Sklearn kütüphanes le Python’da model m z n loj st k regresyon doğruluk değer n score() fonks yonu
kullanarak aşağıda ver len ekran görüntüsündek kod le bulab l r z (Şek l 13.9).

Şek l 13.9. Tahm n sınıfları

Bu sonuç, y b r doğruluk değer olarak kabul edeb leceğ m z %78'l k b r sınıflandırma oranını elde
ett ğ m z fade etmekted r.

Karmaşıklık Matr s

Karışıklık matr s , b r sınıflandırma model n n performansını değerlend rmek ç n kullanılan b r tablodur.


Ayrıca bu matr s n sonuçlarını da görselleşt r leb l r. Karmaşıklık matr s , doğru ve yanlış tahm nler n
sayısının sınıf bazında özetlenmes n göster r. Aşağıdak şek lde (13.10) model n karmaşıklık matr s n n
çıktı değerler ver lm şt r.

Şek l 13.10. Karmaşıklık matr s n n çıktı değerler

Karmaşıklık matr s n graf ksel olarak göstermek mümkündür Bu şek lde matr s n anlaşılırlığı daha kolay
olmaktadır. Graf ksel göster m ç n aşağıda Şek l 13.11’da ekran görüntüsü ver len kodu yazmak gerek r.
Şek l 13.11. Karmaşıklık matr s n n graf ksel göster m

Bu matr s 2 x 2' boyutunda b r matr st r. Bunun sebeb ver set m zde bağımlı değ şken olarak 0 ve 1
olmak üzere k sınıf mevcuttur. Bu graf kte köşegen değerler doğru tahm nler tems l ederken, köşegen
olmayan öğeler yanlış tahm nlerd r. Çıktıda, 445 ve 155 gerçek tahm nler 26 ve 11 se yanlış tahm nlerd r.

Loj st k regresyonun avantajları

Loj st k regresyon, gözlemler ç n b r olasılık puanı sağlar. Ver ml ve anlaşılır yapısı neden yle, yüksek
hesaplama gücü gerekt rmeyen uygulaması ve yorumlaması kolay olan ve ver b l mc ler tarafından
yaygın olarak kullanılan b r algor tmadır.

Loj st k regresyonun dezavantajları

Loj st k regresyon, çok sayıda kategor k özell ğ /değ şken şleyemez. Aşırı uyuma karşı savunmasızdır.
Ayrıca, doğrusal olmayan problemler loj st k regresyon le çözülemez. Bu nedenle doğrusal olmayan
özell kler ç n dönüşüm şlem yapmak gerek r. Loj st k regresyon, hedef değ şkenle l şk l olmayan ve
b rb r ne çok benzer veya l şk l olan bağımsız değ şkenlerle y performans vermez.

Bölüm Özeti

Bu bölümde mak ne öğrenmes algor tmalarından olan loj st k regresyon algor tması açıklanmıştır.
Loj st k regresyon, sınıflandırma amaçlı kullanılır. Çıktı değer 0-1 g b sonuç alab len problemler n
çözümünde kullanılır. Bu algor tma s gmo d fonks yonuna bağlı olarak b r ht mal değer hesaplar. Bu
değer bell b r eş k değer nden büyük se ele alınan örnek ver 1; değ lse 0 sınıfına atanır. Algor tmanın
çalışması l teratürden alınan b r ver set kullanılarak sıralı b r şek lde açıklanmıştır. Her b r adımın ekran
ve kod çıktıları ayrıca ver lm şt r. Son olarak model n başarımı karmaşıklık matr s kullanılarak elde ed len
sonuçlar yorumlanmıştır.

Kaynakça

Laura Lgual, Sant Segu , “Introduct on to Data Sc ence”, A Python Approcah to Concepts Techn ques and
Appl cat ons, 2017, Spr nger

Neyran Orhunb lge (Ed tör), “İşletme İstat st ğ n n Temeller , 2013, Nobel Yayınev

S nan Uğuz, “Mak ne Öğrenmes ”, 2019, Nobel Yayınev

WEB: https://datasc ence.foundat on/sc encewh tepaper/understand ng-log st c-regress on-w th-python-
pract cal-gu de-1

WEB: https://www.reneshbedre.com/blog/log st c-regress on.html

WEB: https://datatof sh.com/log st c-regress on-python/


Ünite Soruları

1. Loj st k regresyon model tahm n şlem nde aşağıdak yöntemlerden hang s n kullanır?

A) Sıradan en küçük kareler

B) Maks mum olasılık tahm n

C) Po sson Dağılımı

D) Negat f b nom dağılımı

2. İk l sınıflama problemler nde hang algor tma kullanılır?

A) L neer regresyon

B) Kümeleme

C) Loj st k regresyon

D) Po sson Dağılımı

3. Aşağıda adları ver len fonks yonlardan hang s loj st k regresyon ç n kullanılır.

A) S gmo d

B) Logar tm k

C) Parabol k
D) L neer

4. Loj st k regresyonda kullanılan eş k değer n n en yaygın değer hang şıkta ver lm şt r?

A) 1.0

B) 0

C) 0.75

D) 0.5

5. Aşağıda ver len p formülünde yer alan (-y) n n eş t hang şıkta doğru olarak ver lm şt r?

A)

B)

C)
D)

6. Loj st k regresyon model n çalıştırmak ç n hang Python kütüphanes yüklenmes


gerek r?

A) pandas

B) sklearn

C) numpy

D) matplotl b

7. Loj st k regresyonda doğruluk değer aşağıda ver len komutlardan hang s le hesaplanır?

A) score()

B) mean()

C) med an()

D) funct on()

8. Aşğıda ver len fadelerden hang s loj st k regresyon ç n doğru olarak kabul ed lemez?

A) Yaygın kullanılan mak ne öğrenme algor tmasıdır.


B) İk l sınıflandırma problemler nde kullanılır.

C) Denet ms z b r sınıflandırma algort masıdır.

D) Özell kler ve sonuçlar arasındak l şk ler n olasılıklarını tahm n eder.

9. Aşağıde ver len ölçütlerden hang s sınıflandırma model n n başarımını ölçmek ç n


kullanılır?

A) Karışıklık matr s

B) R kare

C) MSE

D) RMSE 

10. Oluşturulan loj st k regresyon model n eğ tmek ç n hang komut kullanılır?

A) pr nt()

B) score()

C) tra n()

D) f t()

CEVAP ANAHTARI

1. b 2. c 3. a 4. d 5. b 6. b 7. a 8. c 9. a 10. d
14. KÜMELEME

Giriş

Denet ms z algor tmalar sınıfına g ren K-means algor tması nesneler n benzer özell kler ne göre
gruplandırılması ç n kullanılır. Bu algor tma başlangıçta rasgele olarak bel rlenen küme sayı ve küme
merkezler ne göre ver ler ökl t uzaklığına göre kümelere atar. Algor tma küme nesneler ve küme
merkezler arasındak mesafeler küme elemanlarının değ şmed ğ duruma kadar tekrarlı olarak her
terasyonda hesaplar. Değ ş m olmadığı zaman algor tma sonlanır. İlk olarak algor tma elle le
çalıştırılarak b r örnek üzer nde anlatılmıştır. Daha sonra algor tma b r ver set üzer nde Python Sklearn
Kütüphanes kullanılarak gerekl kodlamalar ve ekran görüntüler bölüm çer s nde ver lm şt r.

14.1. Kümeleme Algoritması

K-means (K-ortalama) kümeleme, ver örnekler arasındak benzerl ğe dayalı olarak ver kümeler
oluşturan en yaygın kullanılan denet ms z mak ne öğren m algor tmalarından b r d r. Bu algor tmanın
çalışması ç n, küme sayısının önceden tanımlanması ya da bel rlenmes gerek r. K-ortalamasındak K,
harf oluşturulacak küme sayısını fade eder.

K-ortalama algor tması, her küme ç n rastgele b r ağırlık merkez değer seçerek başlar. Bundan sonra,
algor tma y nelemel olarak üç adımı gerçekleşt r r:

( ) Her ver örneğ ve tüm kümeler n ağırlık merkezler arasındak Ökl d mesafes n hesaplar (Şek l 14.1);

Şek l 14.1. Okl t mesafes hesaplama

( ) Ver örnekler n en yakın mesafe le ağırlık merkez kümes ne atar;

( ) Karşılık gelen kümedek tüm ver örnekler n n koord natlarının ortalama değerler ne dayalı olarak
yen ağırlık merkez değerler n hesaplar.
14.1.1. Algoritmanın Çalışma Mantığı

Algor tmayı Python’un Sc k t-Learn kütüphanes n kullanarak uygulamadan önce b r örnek yardımıyla K-
ortalama algor tmasının nasıl çalıştığını anlamakta fayda var. Algor tmanın, gerçekte nasıl çalıştığını
anlamak ç n elle çalıştırarak küçük b r kümeleme problem n çözel m.

Bunun ç n D adlı, d = { (5,3), (10,15), (15,12), (24,10), (30,45), (85,70), (71,80), (60,78), (55,52),
(80,91) } k boyutlu ver örnekler nden oluşan b r set m z olduğunu varsayalım. Bu ver ler , ver noktaları
arasındak benzerl ğe dayanarak k kümeye, C1 ve C2'ye bölmek steyel m.

İlk adım, her k kümen n ağırlık merkezler rasgele olarak bel rlen r. C1 ve C2 kümeler n n merkezler n c1
ve c2 olarak adlandıralım ve lk k ver noktasının değerler yan (5, 3) ve (10, 15) bu k kümen n merkez
olduğunu kabul edel m. Ş md y nelemelere başlayalım.

İterasyon-1

Her b r noktanın başlangıçta kabul ed len küme merkezler ne olan uzaklıkları hesaplanır ve aşağıdak
başlangıç tablosu (Tablo 14.11) oluşturulur.

Tablo 14.1. Başlangıç Tablosu

No Ver C1(5,3) küme merkez nden Ökl t C2(10,15) küme merkez nden Ökl t Atandığı
Noktası mesafes mesafes Küme

1 (5,3) 0 13 C1

2 (10,15) 13 0 C2

3 (15,12) 13.45 5.83 C2

4 (24,10) 20.24 14.86 C2

5 (30,45) 48.87 36 C2

6 (85,70) 104.35 93 C2

7 (71,80) 101.41 89 C2

8 (60,78) 93 80 C2

9 (55,52) 70 58 C2

10 (80,92) 115.52 103.32 C2


Yukarıdak tabloda, k nc sütun tüm ver noktalarını çer r. Üçüncü sütun, tüm ver noktaları ve ağırlık
merkez c1 arasındak Ökl d mesafes n çer r.

Benzer şek lde, dördüncü sütun c2 merkez le ver noktaları arasındak mesafey çer r. Son olarak,
beş nc sütunda, k küme ağırlık merkez arasındak Ökl d mesafes ne dayalı olarak ver noktasının hang
kümeye atandığını göster yor. Örneğ n, üçüncü ver noktasına (15, 12) ye bakalım. c1'den 13.45 b r m,
c2'den 5.83 b r m uzaklığa sah pt r; bu nedenle c2'de kümelenm şt r.

Ver noktalarını lg l kümelere atadıktan sonra, sonrak adım yen ağırlık merkez değerler n
hesaplamaktır. Bu değerler, bel rl b r kümeye a t olan ver noktalarının koord natlarının ortalamaları
bulunarak hesaplanır.

C1 kümes ç n, şu anda yalnızca b r nokta, yan (5,3) vardır, bu nedenle koord natların ortalaması aynı
kalır ve c1 ç n yen ağırlık merkez değer de (5,3) olacaktır.

C2 ç n şu anda 9 ver noktası vardır. Ver noktalarının koord natlarını x ve y olarak adlandırıyoruz. Merkez
c2'n n x koord natı ç n yen değer, aşağıda ver ld ğ g b c2 kümes ne a t olan 9 noktanın tümünün x
koord natlarının ortalamasını bel rleyerek hesaplanab l r:

c2(x) = (10 + 15 + 24 + 30 + 85 + 71 + 60 + 55 + 80) / 9 = 47.77

Merkez c2'n n y koord natı ç n yen değer, c2 kümes ne a t olan 9 noktanın tüm y koord natlarının
ortalaması bel rlenerek hesaplanab l r.

c2(y) = (15 + 12 + 10 + 45 + 70 + 80 + 78 + 52 + 91) / 9 = 50.33

c2 ç n güncellenm ş merkez değer artık {47.77, 50.33} olacaktır.

B r sonrak y neleme ç n, c1 ve c2 ç n yen merkez değerler kullanılacak ve tüm süreç tekrarlanacaktır


(Tablo 14.2). Y nelemeler, ağırlık merkez değerler n n güncellenmes durana kadar devam eder. Sonrak
y nelemeler aşağıdak g b d r:

İterasyon-2

Tablo 14.2. İk nc İterasyon Sonucu

No Ver C1(5,3) küme merkez nden okl t C2(10,15) küme merkez nden okl t Atandığı
Noktası mesafes mesafes Küme

1 (5,3) 0 63.79 C1

2 (10,15) 13 51.71 C1

3 (15,12) 13.45 50.42 C1

4 (24,10) 20.24 46.81 C1


5 (30,45) 48.87 18.55 C2

6 (85,70) 104.35 42.10 C2

7 (71,80) 101.41 37.68 C2

8 (60,78) 93 30.25 C2

9 (55,52) 70 7.42 C2

10 (80,91) 115.52 51.89 C2

c1(x) = (5, 10, 15, 24) / 4 = 13.5

c1(y) = (3, 15, 12, 10) / 4 = 10.0

C1 (13.5, 10.0) olarak güncellend .

c2(x) = (30 + 85 + 71 + 60 + 55 + 80) / 6 = 63.5

c2(y) = (45 + 70 + 80 + 78 + 52 +91) / 6 = 69.33

C2 (63.5, 69.33) olarak güncellend .

İterasyon-3

Tablo 14.3. Üçüncü İterasyon Sonucu

No Ver C1(5,3) küme merkez nden Ökl t C2(10,15) küme merkez nden Ökl t Atandığı
Noktası mesafes mesafes
Küme

1 (5,3) 11.01 88.44 C1

2 (10,15) 6.10 76.24 C1

3 (15,12) 2.5 75.09 C1

4 (24,10) 10.5 71.27 C1

5 (30,45) 38.69 41.40 C1

6 (85,70) 93.33 21.51 C2

7 (71,80) 90.58 13.04 C2

8 (60,78) 82.37 9.34 C2


9 (55,52) 59.04 19.30 C2

10 (80,91) 104.80 27.23 C2

c1(x) = (5, 10, 15, 24, 30) / 5 = 16.8

c1(y) = (3, 15, 12, 10, 45) / 5 = 17.0

C1 (16.8, 17.0) olarak güncellend .

c2(x) = (85 + 71 + 60 + 55 + 80) / 5 = 70.2

c2(y) = (70 + 80 + 78 + 52 + 91) / 5 = 74.2

C2 (70.2, 74.2) olarak güncellend (Tablo 14.3).

İterasyon-4

Tablo 14.4. Kümeler Bel rlenm ş Sonuç Tablosu

No Ver C1(5,3) küme merkez nden Ökl t C2(10,15) küme merkez nden Ökl t Atandığı
Noktası mesafes mesafes Küme

1 (5,3) 18.30 96.54 C1

2 (10,15) 7.08 84.43 C1

3 (15,12) 5.31 83.16 C1

4 (24,10) 10.04 79.09 C1

5 (30,45) 30.95 49.68 C1

6 (85,70) 86.37 15.38 C2

7 (71,80) 83.10 5.85 C2

8 (60,78) 74.74 10.88 C2

9 (55,52) 51.80 26.90 C2

10 (80,91) 97.31 19.44 C2

c1(x) = (5, 10, 15, 24, 30) / 5 = 16.8

c1(y) = (3, 15, 12, 10, 45) / 5 = 17.0


C1 (16.8, 17.0) olarak güncellend .

c2(x) = (85 + 71 + 60 + 55 + 80) / 5 = 70.2

c2(y) = (70 + 80 + 78 + 52 + 91) / 5 = 74.2

C2 (70.2, 74.2) olarak güncellend .

Dördüncü y nelemen n sonunda, güncellenen C1 ve C2 değerler üçüncü y nelemen n sonundak lerle


aynıdır (Tablo 14.4). Bu, ver ler n daha fazla kümelenemeyeceğ anlamına gel r. c1 ve c2, C1 ve C2 ç n
ağırlık merkezler d r. Yen b r ver noktasını sınıflandırmak ç n ver noktası le kümeler n ağırlık merkezler
arasındak mesafe hesaplanır. Ver , merkez noktası le ver noktası arasındak mesafen n en az olduğu
kümeye atanır.

14.1.2. Scikit-Learn Kütüphanesi ile Kümeleme Örneği

K-ortalama kümeleme algor tmasının gerçekte nasıl çalıştığını anladıktan sonra göre, Sc k t-Learn
kütüphanes kullanılarak aşağıda yapılan örneğ n şlemler sırası le açıklandı.

Gerekl Kütüphaneler n Yüklenmes

Örneğ m z ç n matplotl b, numpy, pandas ve sc k t-learn k taplıklarına ht yacınız vardır. Aşağıda Şek l
14.2’dek ekran görüntüsünde gerekl kütüphaneler yüklenmes n n kodu ver lm şt r.

Şek l 14.2. Gerekl kütüphaneler n yüklenmes

Ver Set n n Yüklenmes

Bu aşamada kümelemede kullanılacak ver set çalışma ekranına aktarılması gerek r. Bu örneğ m zde r s
ver kümes kullanılacaktır. Bu ver set nternetten nd r lerek b lg sayarda herhang b r d z n ç ne
kayded l r. Aşağıda ver len ekran görüntüsünde (Şek l 14.3) r s ver set read_csv() fonks yonu le
AUZEFVERI d z n nden okunması ve lk 10 satırın head() komutu le ekrana yansıtılmasının kodları
ver lm şt r.
Şek l 14.3. Ver set n n yüklenmes

Ver Özell kler n n Seç lmes

Ş md , kuracağımız model ver set ndek özell klerle eğ teb lmem z ç n ver set n n dört özell ğ n (Taç
uzunluğu, Taç gen şl ğ , Çanak uzunluğu ve Çanak gen şl ğ ) x adlı b r değ şkende seç yoruz. Bunun ç n,
ver set üzer nde loc fonks yonunu ve aşağıda göster ld ğ g b (Şek l 14.4) yukarıdak dört sütun ç n
sütun ndeks (0,1,2,3) kullanıyoruz:

Şek l 14.4. Özell kler n seç m

Model n Kurulması ve Kümeler n Oluşturulması

Başlangıçta, k küme sayısını keyf olarak 5 atayalım. K=5 kullanarak k-ortalamalı kümelemey
algor tmasını uygulayacağız. Bunun ç n K-means sınıfını somutlaştırıp onu kmeans5 değ şken ne atanır.
Daha sonra, k-means üzer nde f t yöntem çağırılıp ve kümelemek stenen ver ler n (x) kümeler bel rlen r.
Cluster_centers_ yöntem le algor tmanın oluşturduğu kümeler n ağırlık merkezler bel rlen r (Şek l 14.5).
Şek l 14.5. Modele bağlı kümeler ve oluşan küme merkezler

Şek l 14.5’dek lk çıktı ver set n n her b r noktasının atanmış olduğu kümelere karşılık gelen 150 öğeden
oluşan tek boyutlu b r d z d r. Burada 0, 1, 2, 3 ve 4, yalnızca küme k ml kler n tems l etmek ç n kullanılır
ve matemat ksel b r anlamı yoktur. İk nc çıktıda se lk satır, b r nc kümen n merkez koord natları ç n
değerler çer r. D ğer satırlar sırasıyla k nc , üçüncü, dördüncü ve beş nc kümeler n merkez
koord natlarını fade eder. 

Oluşan Kümeler n Görselleşt r lmes

Ver noktalarını graf k üzer nde ç zel m ve ver ler n nasıl kümelend ğ n görselleşt rel m. Bu sefer ver ler
atanmış et ketler le b rl kte ç zeceğ z, böylece kümeler arasında ayrım yapab lel m. Aşağıda ver len
komut satırları le oluşan kümeler ve merkezler görülmekted r (Şek l 14.6).
Şek l 14.6. Oluşan kümeler ve merkezler

14.1.3. Dirsek (Elbow) Yöntemi ile Küme Sayısını Belirleme

Herhang b r denet ms z algor tma ç n temel adım, ver ler n kümeleneb leceğ en uygun (opt mum) küme
sayısını bel rlemekt r. D rsek Yöntem , bu en uygun k değer n bel rlemek ç n kullanılan en popüler
yöntemlerden b r d r. Bu bölümde Python'un Sklearn k taplığını kullanarak K-means kümeleme
algor tması ç n en uygun olan k sayısının elde ed lmes açıklanmıştır.  D rsek yöntem n uygulamak ç n,
aşağıdak Python kodu yazılarak küme sayısı le hata (burulma) değer arasındak graf k ç z l r (Şek l 14.7).

Şek l 14.7. D rsek yöntem kodu

Yukarıdak şekle bakıldığında en uygun küme sayısının eğr n n yatay olmaya başladığı k=3 değer olduğu
kolayca görülmekted r.  Ş md de bu k sayısına bağlı olarak yen kümeler ve merkezler n bulalım.

Yen Kümeler n Oluşturulması


Aşağıdak şek lde (Şek l 14.8) k=3 değer ne göre model n çalıştırılması sonucunda ver len atanmış olduğu
küme et ketler ve oluşan kümeler n merkezler ver lm şt r. 

Şek l 14.8. D rsek yöntem kodu

Yen Kümeler n ve Merkezler n n Görselleşt r lmes

Üç küme olması durumunda, ortadak k nokta (kırmızı renkte göster l r), sol üsttek veya sağ orta üstü
ağırlık merkezler ne kıyasla ortadak ağırlık merkez ne (s yah olarak göster len noktalar) yakın olan
ver ler n fazla olduğu görülmekted r (Şek l 14.9).

Şek l 14.9. k=3 sayısına göre oluşan kümeler ve merkezler


Sonuç olarak k-ortalama kümeleme algor tması, ver ler n kümelenmes ç n bas t ama etk l denet ms z
b r mak ne öğrenme algor tmasıdır. Bu algor tma ver ler , ver noktaları arasındak ökl t mesafes ne göre
kümeler. K-means kümeleme algor tması, met n belgeler n , res mler ve v deoları gruplamak g b b rçok
alanda kullanılmaktadır.

Bölüm Özeti

Bu bölümde kümeleme algor tmalarından b r olan K-means algor tması açıklanmıştır. Bu algor tma,
ver ler özell kler ne göre gruplama amaçlı kullanılır. Denet ms z öğrenme algor tmalar sınıfına g ren bu
algor tma, başlangıçta bel rt len küme sayısına göre ver ler kümelere atar. Atama şlem ç n küme
merkez ve ökl t mesafes nden faydalanır. Algor tmanın ver ler kümelere atama şlem küçük b r örnek
üzer nde elle çalıştırılarak anlatılmıştır. Daha sonra Python’un Sklearn Kütüphanes kullanılarak ele
alınan b r ver set üzer nde bu algor tma çalıştırılarak elde ed len sonuçlar ver lm şt r.

Kaynakça

WEB: https://datasc enceplus.com/k-means-cluster ng/

WEB:  https://heartbeat.fr tz.a /k-means-cluster ng-us ng-sklearn-and-python-4a054d67b187

WEB: https://stackabuse.com/k-means-cluster ng-w th-sc k t-learn/

WEB: https://pred ct vehacks.com/k-means-elbow-method-code-for-python/

WEB: https://pythonprogramm nglanguage.com/kmeans-elbow-method/

İlker Arslan, “Python le Ver B l m ”, 2019, Pusula Yayınev , 2. Baskı


Ünite Soruları

1. Kümeleme algor tmaları hang öğrenme grubuna g rer?

A) Denet ml

B) Pek şt rmel

C) Denet ms z

D) Uygulamalı

2. Kümeleme anal z ç n aşağıda ver len fadelerden hang s doğru değ ld r?

A) Ver ler özell kler ne göre gruplayan b r tekn kt r.

B) Denet ml algor tmalara göre daha başarılıdır.

C) Küme sayıları rasgele olarak ya da b r yöntem kullanılarak bel rleneb l r.

D) Ver le küme merkez arasındak mesafe ç n ökl t uzaklığı kullanılır.

3. Aşağıda ver len yöntemlerden hang s en uygun küme sayısını bulmak ç n kullanılan b r
yöntemd r.

A) S gmo d

B) D rsek
C) Ökl t

D) Denet ml öğrenme

4. K-means algor tması, kümeler oluşturmayı veya opt m ze etmey ne zaman durdurur?

A) Ver noktalarının yen den atanmadığını bulduktan sonra

B) Algor tma tanımlanan y neleme sayısına ulaştıktan sonra

C) Küme sayısı ver sayısına ulaştıktan sonra

D) Beş küme oluştuktan sonra

5. Kümeleme algor tması le oluşturulan kümeler görüntülek ç n hang graf k kullanılır?

A) bar graf ğ

B) h stogram graf ğ

C) scatter (dağıtık) graf ğ

D) ç zg graf ğ

6. Kümeleme algor tmasını çalıştırmak ç n hang Python kütüphanes yüklenmes gerek r?

A) sklearn

B) pandas

C) matplotl b
D) numpy

7. Küme merkezler n bel rlemek ç n hang komut kullanılır?

A) med an()

B) f gs ze()

C) cluster_centers_

D) funct on()

8. Kümeleme şlem ç n aşağıda ver len fadelerden hang s ne gerek yoktur?

A) Kategor k ver ler

B) Et kets z ver ler

C) Sayısal ver ler

D) Et ketl ver ler

9. K-means algor tmasında k harf ney fade eder?

A) Kümelenecek ver ler n sayısı

B) G r ş özell kler n n sayısı

C) Küme sayısı

D) İterasyon sayısı
10. K-ortalamalı kümeleme, n tane ver y küme sayısına bölmek ç n aşağıdak
yaklaşımlardan hang s kullanılır?

A) medyan

B) mod

C) ortalama

D) h çb r

CEVAP ANAHTARI

1. c 2. b 3. b 4. a 5. c 6. a 7. c 8. d 9. a 10. d

You might also like