Professional Documents
Culture Documents
Grş
1.1. Ver B l m Ned r?
Bölüm Özet
Ün te Soruları
Grş
2.1. Python Programlama D l
Bölüm Özet
Ün te Soruları
Grş
3.1. Python’da Değ şken Tanımlama
3.2. Python'a Özgü Ver Yapıları
Bölüm Özet
Ün te Soruları
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ı
Grş
6.1. Wh le Kontrol Yapısı
Bölüm Özet
Ün te Soruları
Grş
7.1. Numpy Kütüphanes
Bölüm Özet
Ün te Soruları
Grş
8.1. Pandas Kütüphanes
Bölüm Özet
Ün te Soruları
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ı
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.
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.
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.
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.
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. 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.
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.
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:
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
Matlab
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.
Bu denklemde:
= Doğrunun eğ m 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
A) İstat st k
B) Ver tabanı
C) Mak ne öğrenmes
D) Tar h
A) Modelleme
B) Programlama
C) F z k
D) Ver tabanları
A) İstat st k
B) Regresyon
C) Karar Ağacı
D) Na ve Bayes
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
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
10. Aşağıdak algor tmalardan hang s denet ml öğrenme sınıfında yer almaz?
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.
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.
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.
İ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.
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ı
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.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.
Bölüm Özeti
Kaynakça
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
A) https://www.python1.org/
B) https://www.python.org/
C) https://www.python.net/
D) https://www.python. o/
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) Team Ed t on
B) Commerc al Ed t on
C) Ind v dual Ed t on
D) Enterpr se Ed t on.
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.
C) Ücrets z b r uygulamadı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
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.
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.
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.
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.
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
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.
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.
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.
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
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
İş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).
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.
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.
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
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]
A) L ste10.append(84)
B) L ste10.add(84)
C) L ste10.add[84]
D) L ste10.append[84]
A) 130,140
B) 140,150
C) 130,140,150
D) 120,130,140
A) L ste30.del(140)
B) del.L ste30(140)
C) L ste30.remove(140)
D) L ste30.remove[140]
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.
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.
Öğ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.
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.
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ı
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.
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.
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.
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.
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ı.
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.
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.
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
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ı.
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
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ı
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?
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?
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.
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).
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).
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.
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.
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ı.
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.
işlem-2’yi yap
işlem-3’ü yap
else:
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.
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.
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.
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.
Ş 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.
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
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.
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).
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ğ
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
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
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
A) f
B) f – else
C) for
D) f-for
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.
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).
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>:
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.
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
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).
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.
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ğ
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).
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.
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.
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.
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.
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).
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.
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
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ü.
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
1. Aşağıda ver len fadelerden hang s wh le kontrol yapısı ç n doğru b r fade değ ld r?
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
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)
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.
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.
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.
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.
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.
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
İ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.
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.
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ğ
İ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.
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
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?
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
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 ?
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.
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.
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).
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).
İ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
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.
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).
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
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.
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.
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.
.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 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).
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
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.
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).
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).
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
A) mport pandas as pd
B) mport panda as py
C) mport pandaspy as pd
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()
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.
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ü”]
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?
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.
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.
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).
Ç 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).
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 ç 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).
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
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
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
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).
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
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).
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).
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
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.15. Normal dağılıma göre üret lmeyen sayıların h stogram graf ğ
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
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ı
A) numpy
B) pandas
C) sk learn
D) matplotl b
A) ç zg ç zd r r
B) graf k ç zd r r
C) sütun ç zd r r
D) da re ç zd r r
A) plt.plot()
B) plt.show()
C) plt.legend()
D) plt.screen()
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ı
A) plt.plot()
B) plt.bar()
C) plt.p e()
D) plt.show()
A) plt.plot()
B) plt.scatter()
C) plt.h st()
D) plt.barh st()
10. plt.gr d() komutu ne yapar?
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.
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.
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
.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ı
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).
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ı
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).
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
Ş 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).
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 (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.
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).
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
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?
C) modellemeye
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?
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?
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
Denet ml Öğren m
Denet ms z Öğ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).
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.
Ö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, 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
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).
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
A) PCA
B) Karar Ağacı
C) Doğrusal Regresyon
D) Na f Bayesyen
A) Denet ms z öğrenme
B) Denetleme mantığı
C) Denet ml öğrenme
D) Der n öğrenme
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
6. Mak ne Öğren m (ML) aşağıda ver len fadelerden hang s doğru değ ld 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.
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?
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.
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.
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;
, ' 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.
İ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).
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ü
İ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.
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
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.
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
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).
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.
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 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ı 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).
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
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
A) 3
B) 7
C) 5
D) 6
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?
D) Herhang b r b r m olab l r
A) pandas
B) matplotl b
C) numpy
D) sklearn
A) doğrunun eğ m n bel rt r
A) Dağılım graf ğ
B) Bar graf ğ
C) H stogram graf ğ
D) Pasta d l m graf ğ
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.
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.
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 :
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.
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 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.
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.
İ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).
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
Ö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).
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).
İ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ı
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.
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).
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
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 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 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
WEB: https://datasc ence.foundat on/sc encewh tepaper/understand ng-log st c-regress on-w th-python-
pract cal-gu de-1
1. Loj st k regresyon model tahm n şlem nde aşağıdak yöntemlerden hang s n kullanır?
C) Po sson Dağılımı
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
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)
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) Karışıklık matr s
B) R kare
C) MSE
D) RMSE
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.
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);
( ) 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.
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
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
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:
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.
İterasyon-2
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
8 (60,78) 93 30.25 C2
9 (55,52) 70 7.42 C2
İterasyon-3
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
İterasyon-4
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
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ı.
Ö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.
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
Ş 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:
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.
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
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).
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.
Üç 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).
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
A) Denet ml
B) Pek şt rmel
C) Denet ms z
D) Uygulamalı
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) bar graf ğ
B) h stogram graf ğ
D) ç zg graf ğ
A) sklearn
B) pandas
C) matplotl b
D) numpy
A) med an()
B) f gs ze()
C) cluster_centers_
D) funct on()
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