Artificial Intelligence at Sports

Actually artificial intelligence is everywhere so that I want to show where it is in sport. If you have a chance to watch any sports activity, you will see the background on the sports part of artificial intelligence after this article.

Veri Bilimcinin Mutlaka Bilmesi Gereken Sql ve Pandas Kodları

Bundan 15-20 yıl önce yazılım dünyasında belli başlı yeteneklere sahip olmak, bir kaç program bilmek işinizi oldukça kolaylaştırıyor ve yetkinlik sağlıyordu. Bugün geldiğimiz noktada ise tek bir program ya da becerinin yanında bir çok alanda, farklı özellik sahibi olmak ve farklı program dilleri bilmek kişiyi ön plana çıkarmaktadır.

SQL (Structured Query Language) sorgu dili geçmişte ve günümüzde hala önemini korusa da, özellikle yapay zeka ve makine öğrenmesi gibi alanların yaygınlaşması sonucunda Python’da kullanılan Pandas kütüphanesi ön plana çıkmaya başlamıştır.

Bu yazımda temel veri keşfi analizinde kullanılan kodların SQL ve Pandas da nasıl yazıldığını inceleyeceğiz. Analiz boyunca buradaki  Airports datasını kullanacağız. Airports datasının csv dosyasını SQL’e ve Pandas’a yükledikten sonra analize başlayabilirsiniz.

1. Select, Where, Distinct Komutları

SQLPANDASAÇIKLAMA
select * from airports airportsTüm tabloyu getirir.
select top(10) * from airportsairports.head(10)İlk 10 satırı getirir.
select id from airports where iso_country = ‘TR’
airports.id[airports.iso_country == ‘TR’]iso_country si TR olan id leri getirir.
select distinct iso_region from airportsairports.iso_region.unique()Uniq değerleri getirir.

2. Birden Fazla Koşulla Seçim

SQL de birden fazla koşul and ve or ile verilirken, Pandas‘ta bu & ve | şekilleri ile verilir.

SQLPANDASAÇIKLAMA
select * from airports where iso_country = ‘TR’ and type = ‘closed’
airports[(airports.iso_region == ‘US-CA’) & (airports.type == ‘seaplane_base’)]Country’si TR olan ve type’ı closed olan değerleri getirir.
select ident, name, municipality from airports where iso_region = ‘US-CA’ and type = ‘large_airport’airports[(airports.iso_region == ‘US-CA’) & (airports.type == ‘large_airport’)][[‘ident’, ‘name’, ‘municipality’]]Region’u US-CA olan type’i large airport olan kolonları ident,name ve municipality olan değerleri getirir.

3. Order By Sıralama Komutu

SQL’de sıralama Order By komutu ile yapılırken, Pandas’ta ise sort_values ve ascending komutu kullanılmaktadır.

SQLPANDASAÇIKLAMA
select * from airports where iso_country = ‘TR’ order by idairports[airports.iso_country == ‘TR’].sort_values(‘id’)iso_country’si TR olanları id’e göre küçükten büyüğe sıralar.
select * from airports where iso_country = ‘TR’ order by id descairports[airports.iso_country == ‘TR’].sort_values(‘id’, ascending=False)iso_country’si TR olanları id’e göre büyükten küçüğe sıralar.

4. In-not, In Komutu

SQL’de where komutuna birden fazla değeri koşul olarak koymak için kullanılır. Pandas’ta ise bu işi isin komutu gerçekleştirir. Dışındakileri getirirken ~ simgesi unutulmamalıdır.

SQLPANDASAÇIKLAMA
select * from airports where type in (‘small_airport’, ‘closed’) airports[airports.type.isin([‘small_airport’, ‘closed’])]type’i small_airport ve closed olanları getirir.
select * from airports where type not in (‘small_airport’, ‘closed’)airports[~airports.type.isin([‘small_airport’, ‘closed’])]type’i small_airport ve closed dışındakileri getirir.

5. Group By, Count Komutları

SQL ve Pandas’da group by komutları ortaktır. Count komutu ise yerine göre değişebilir. SQL’deki count ile Pandas’daki size aynı anlamda kullanılabilir diyebiliriz.

SQLPANDASAÇIKLAMA
select iso_country, type, count(*) from airports group by iso_country, type order by iso_country, type


airports.groupby([‘iso_country’, ‘type’]).size()iso_country’e göre gruplar ve iso_coutry ve type göre sıralar.
select iso_country, type, count() from airports group by iso_country, type order by iso_country, count() descairports.groupby([‘iso_country’, ‘type’]).size().to_frame(‘size’).reset_index().sort_values([‘iso_country’, ‘size’], ascending=[True, False])iso_country’e göre gruplar ve iso_coutry ve type göre tersten sıralar.

6. Having

Gruplanmış veri SQL’de having komutu ile filtreleyebiliriz. Pandas’ta bu işlevi filtre komutu yapmaktadır.

SQLPANDASAÇIKLAMA
select type, count(*) from airports where iso_country = ‘US’ group by type having count(*) > 1000 order by count(*) descairports[airports.iso_country == ‘US’].groupby(‘type’).filter(lambda g: len(g) > 1000).groupby(‘type’).size().sort_values(ascending=False)iso_country’si US olanları type göre gruplar 1000’den büyük olanları getirir.

7. Union all ve Union

SQLPANDASAÇIKLAMA
select name, municipality,ident from airports where ident = ‘LTBE’ union all select name, municipality,ident from airports where ident = ‘LTFM’pd.concat([airports[airports.ident == ‘KLAX’][[‘name’, ‘municipality’]], airports[airports.ident == ‘KLGB’][[‘name’, ‘municipality’]]])identleri ‘LTBE’ ve ‘LTFM’ olanları getirir.

8. Insert into

SQL’de yeni tablo oluşturmak için create table komutu kullanılırken, tabloya yeni kayıt eklemek için kullanılan insert into komutu kullanılır. Pandas’da ise pd.DataFrame ile yeni tablo oluşturulup, yeni kayıtlar direk içine yazılabilir ya da başka bir tablo ile concat komutu ile birleştirilebilir.

SQLPANDASAÇIKLAMA
create table yenitablo (id integer, isim text);df1 = pd.DataFrame({‘id’: [1, 2], ‘isim’: [‘Mert’, ‘Furkan’]})Yeni tablo oluşturur.
insert into yenitablo values (1, ‘Mert’);df2 = pd.DataFrame({‘id’: [3], ‘name’: [‘Hermione Granger’]})Tabloya yeni kayıt ekler.
pd.concat([df1, df2]).reset_index(drop=True)
YA DA
data = pd.DataFrame([[9, 7], [8, 5]], columns=list(‘PD’))

data2 = pd.DataFrame([[6, 4], [1, 2]], columns=list(‘PD’))

data.append(data2, ignore_index=True)

9. Delete

SQL’de silme işlemini ‘delete‘ komutu yerine getirirken, Pandas’ta ‘drop‘ komutu kullanılır.

SQLPANDASAÇIKLAMA
delete from airports where type = ‘heliport’airports.drop(airports[airports.type == ‘heliport’].index)type’ı heliport olanları siler.

Bu yazımda temel olarak SQL ve Pandas komutlarının karşılaştırılmasına değindim. Gelecek yazılarımda Pandas kütüphanesi ile ilgili bir seri hazırlamayı düşünüyorum. Soru ve önerileriniz için bana linkedinden yazabilirsiniz.

* Bu yazıdan esinlenerek hazırlanmıştır.

Finans Teknolojileri

Fintek

Yapay zekanın birçok uygulama alanı olduğunu biliyoruz. Peki finans sektörü yapay zekadan ne kadar ve nasıl etkilendi? Fintek yani uzun haliyle “finans teknolojileri” araştırmalara göre finans kuruluşları için en büyük yıkıcı güç olarak görülüyor.

Fintek finansal hizmetlerin kolaylaştırılması ve iyileştirilmesi için geliştirilmiş teknolojilerdir. Finans ve teknoloji arasındaki bağlantı farklı dönemlerde gelişmiştir. Arneris, Barberis&Ross’un yazdığı makaleye göre fintek’in gelişimi;

Öncelikle Fintek’in tarihsel evriminden kısaca bahsedecek olursak; Finansal küreselleşmenin telgraf, demiryolları ve buharlı gemi teknolojileri ile Fintek 1.0 döneminde başladığını söyleyebiliriz.1950’lerde ise ilk kez kredi kartı kullanılmıştır. Fintek 2.0 dönemi analogdan dijitale geçişi simgeler. Bu dönemde ilk el tipi hesap makinaları ve ilk ATM’den söz edebiliriz. 1990’lı yıllarda dünya internet ve e-ticaret iş modelleriyle gelişen çevrimiçi bankacılık, 21. yy.’ın başlarında ise bankaların iç süreçleri ve tüm etkileşimleri tamamen dijital hale gelmiştir. Bu dönem 2008 Ekonomik Krizi ile son bulur. 2009’da Bitcoin v0.1’in piyasaya sürülmesi ve kripto para birimlerinin çıkmasıyla Fintek 3.0 dönemi başlar. Bu dönemde akıllı telefonlar farklı finansal hizmetlerin kullanılması için birincil araç haline gelmiştir.

Fintek’in evrimini kısaca özetledik. Peki yakın gelecekte finans sektöründe bizi neler bekliyor? En önemli fintek etkinliklerinden biri olan Money 20/20’de bir finans ve yatırım danışmanlığı şirketi olan Gartner’a göre 2020 yılından itibaren şirketlerin %50 si finans alanında yapay zeka kullanmaya başlayacak.

Finans sektöründe yapay zeka ile neler yapılabilir?

Finans alanında yapay zeka ile

  • Yatırım kararlarının finansal boyutunu araştırmak
  • Gelir-gider ve operasyon marjı etkilerinin hesaplanması
  • Finansal analiz çalışmalarını yapması öngörülüyor.

Aynı zamanda nicelik, karmaşıklık ve erişilebilirlik gibi ticari işlemlerin fazla uzamasına sebep olan süreçler de bulunuyor.

Giderek büyüyen finansal verinin daha karmaşık hal almasının nedenleri; piyasa kanallarının, ödeme yöntemlerinin ve ürün yapılandırmaların çoğalması ve işlemlerin kaydedilmesindeki farklı varyasyonlara sebep oluyor.

Makine öğrenmesi veri erişimi problemini 2 yolla çözüyor.

1)Sistemdeki bilginin bulunmasını ve kullanımını kolay hale getiriyor ve bilgiyi daha geniş bir çalışan kitlesine erişilebilir kılıyor.

2)Makina öğrenmesi algoritmaları farklı kullanım senaryolarıyla karşılaştıkça yazılım benzerliklerinden ve trendlerden “chatbot” adı verilen akıllı sohbet programlarıyla tavsiyeler verebiliyor.

Sonuç olarak görüldüğü üzere finans sektöründe de “big data” kavramı yaygınlaştıkça yapay zekaya olan ihtiyaç artıyor. Özellikle finansçıların fazla vakit kaybettikleri alanlarda işleri kolaylaştırıyor. Bir sonraki yazımızda görüşmek dileğiyle…Hoşçakalınız…

REFERANSLAR

  1. https://www.e-zigurat.com/innovation-school/blog/evolution-of-fintech/
  2. https://webrazzi.com/2019/10/19/finans-dunyasi-icin-yapay-zeka-kullanimi-kacinilmaz-hale-geliyor/
  3. https://assets.kpmg/content/dam/kpmg/tr/pdf/2018/05/kuresel-fintech-arastirmasi-2018.pdf