<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Veri Bilimi Türkiye - Medium]]></title>
        <description><![CDATA[Veri Bilimi Modelleri ve Trendleri - Medium]]></description>
        <link>https://medium.com/data-science-tr?source=rss----6776edb0f416---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Veri Bilimi Türkiye - Medium</title>
            <link>https://medium.com/data-science-tr?source=rss----6776edb0f416---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 06:08:52 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/data-science-tr" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Makine Öğrenmesi Dersleri 1: Açıklayıcı Veri Analizi]]></title>
            <link>https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-1-af0a402a2cd8?source=rss----6776edb0f416---4</link>
            <guid isPermaLink="false">https://medium.com/p/af0a402a2cd8</guid>
            <category><![CDATA[yapay-öğrenme]]></category>
            <category><![CDATA[derin-ogrenme]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[büyük-veri]]></category>
            <dc:creator><![CDATA[Hakkı Kaan Simsek]]></dc:creator>
            <pubDate>Sun, 27 Jan 2019 20:52:54 GMT</pubDate>
            <atom:updated>2020-05-09T14:01:22.312Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jZzEZT3ajcQqbd0MKaKM7w.png" /></figure><p>Veri biliminde öngörülen 2018 trendlerini paylaştığım <a href="https://medium.com/data-science-tr/veri-bilimi-2018-trendleri-741712cc0045">ilk yazıdan</a> sonra makine öğrenmesi dersleri ile ilgili başlangıç-orta düzeyde bir seri yapmaya karar vermiştim şimdi o seriyi bana gelen talepler doğrultusunda güncelledim.</p><p>Çünkü bu alanla ilgili standart ders kitapları kişiyi fazla teknik detaya boğduğundan çoğu insanın ya ilk ünite bitmeden pes ettiğini ya da youtube videolarının arka arkası gelmeyen pasifliğinde oradan oraya savrulduğunu gördüm.</p><p>Günün sonunda big data, machine learning, deep learning, artificial intelligence diyen ama basit bir regresyon modeli kuramayan meraklılar haline dönüşüyor birçok insan. O sebeple makine öğrenmesi derslerini elimden geldiğince basit olarak kurguladım.</p><p>Makine Öğrenmesi Dersleri 2: <a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-2-e246428de84e">Görselleştirme</a></p><p>Makine Öğrenmesi Dersleri 3a: <a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-3-3177bdcc40f6">Karar Ağaçları (Sınıflandırma</a>)</p><p>Makine Öğrenmesi Dersleri 3b: <a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-3a-karar-a%C4%9Fa%C3%A7lar%C4%B1-regresyon-9cdfa9218a68">Karar Ağaçları (Regresyon)</a></p><p>Makine Öğrenmesi Dersleri 4a: <a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-4-lojistik-regresyon-304fefab0a49">Lojistik Regresyon</a></p><p>Makine Öğrenmesi Dersleri 4b: <a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-4a-lineer-regresyon-30fe61248e93">Lineer Regresyon</a></p><p>Makine Öğrenmesi Dersleri 5a: <a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-5-bagging-ve-random-forest-2f803cf21e07">Random Forest (Sınıflandırma)</a></p><p>Makine Öğrenmesi Dersleri 5b: <a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-5a-random-forest-regresyon-2a91715a8b66">Random Forest (Regresyon)</a></p><p>Makine Öğrenmesi Dersleri 6: <a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-6-do%C4%9Fal-dil-i%CC%87%C5%9Fleme-nlp-453c3c6b062a">Doğal Dil İşleme (NLP)</a></p><p>Makine Öğrenmesi Dersleri 7: <a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-boyut-azaltma-pca-5ae9e902ef92">Boyut Azaltma-PCA</a></p><p>Makine Öğrenmesi Dersleri 8: <a href="https://medium.com/data-science-tr/overfitting-underfitting-cross-validation-b47dfda0cf4e">Cross Validation</a></p><p>Makine Öğrenmesi Dersleri 9: <a href="https://medium.com/data-science-tr/ml-modellerinde-hiper-parametre-se%C3%A7imi-3cbfeeb48cff">Hiper-parametre Kestirimi</a></p><p>Makine Öğrenmesi Dersleri 10: <a href="https://medium.com/data-science-tr/s%C4%B1n%C4%B1fland%C4%B1rma-modellerinde-ba%C5%9Far%C4%B1-kriterleri-2d86488799c6">Sınıflandırma Modellerinde Başarı Kriterleri</a></p><p>Makine Öğrenmesi Dersleri 11: <a href="https://medium.com/data-science-tr/python-faydal%C4%B1-fonksiyonlar-6ee3605b1884">Veri Manipülasyonu</a></p><p>Bu dersleri takip etmek için bilgisayarınıza Python kurmanıza veya veri setini indirmenize gerek yok. İhtiyacınız olan tek şey internet ve bu yazıyı okuduğunuza göre o konuda da bir sorunumuz yok. İzlemeniz gereken adımlar sırasıyla şöyle:</p><ol><li>Google hesabınızı açın.</li><li><a href="https://colab.research.google.com/">https://colab.research.google.com/</a> adresine gidin.</li><li>NEW PYTHON 3 NOTEBOOK’a tıklayın.</li><li>Oradaki satıra aşağıdaki kodu yapıştırın ve play tuşuna basın.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/4809c57324e7202599238465556cec71/href">https://medium.com/media/4809c57324e7202599238465556cec71/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/974/1*vEJEaMvB6z1EA3i0NM_Dow.png" /></figure><p>Yukarıdaki gibi bir sonuç çıkmış olmalı. Şimdi kütüphanelerimizi çağıralım.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/24d3e4d966b4fdea341477af254ad268/href">https://medium.com/media/24d3e4d966b4fdea341477af254ad268/href</a></iframe><p>Şimdi sütunları ekleyip veri setimize tekrar bakıyoruz. Her şey yolunda gözüküyor.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/0174f4a97bd2401f74f1780500100fee/href">https://medium.com/media/0174f4a97bd2401f74f1780500100fee/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*e6h3rdROZNqqG8KabdXttQ.png" /></figure><p>İlk yapmamız gereken veri setimizde eksik veri olup olmadığını ve veri tiplerini kontrol etmek.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/5d1f2d39d2420069ddafead20a64ddec/href">https://medium.com/media/5d1f2d39d2420069ddafead20a64ddec/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/285/1*7zExP3iAuNeFzyt75QF-MQ.png" /></figure><p>Yukarıda göreceğiniz gibi her sütunda 32.561 ‘non-null’ kayıt var yani veri setimizde eksik veri yok. Sütunların yanında veri tiplerini de görüyorsunuz. Burada hedef değişkenimiz salary olduğu için onun dağılımına value_counts() fonksiyonuyla bakıyoruz ve seaborn kütüphanesiyle görselleştiriyoruz.</p><p>Adımlarımız sırasıyla şöyle:</p><p>1. plt.figure() ile görselin enini ve boyunu belirliyoruz.<br>2. sns.countplot() fonksiyonuna görselleştirmek istediğimiz değişkeni yazıyoruz.<br>3. value_counts() fonksiyonuyla hedef değişkenin dağılımını buluyoruz.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/7ce1df1214a3da446a00d3f0427ffd8f/href">https://medium.com/media/7ce1df1214a3da446a00d3f0427ffd8f/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/476/1*G7diP5Ghx9Xx0CgFsoHB4w.png" /></figure><p>Maaşı 50K’dan düşük ve yüksek olanların yaş karakteristiğine bakalım şimdi.</p><p>Öncelikle df[‘salary’] sütunun &lt;=50K’ya eşit olduklarını seçiyoruz.</p><ol><li>Bu şartı sağlayan kayıtların [‘age’] sütununa bakıyoruz.</li><li>describe() fonksiyonuyla bu şartı sağlayan kayıtların [‘age’] sütunuyla ilgili dağılımını elde ediyoruz.</li><li>Aynı işlemleri df[‘salary’] sütunun &gt;50K’ya eşit olduğu sütunlar için de tekrarlıyoruz.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/c39ba3cdba5f1c48196dd0e1a8457322/href">https://medium.com/media/c39ba3cdba5f1c48196dd0e1a8457322/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/358/1*_pJES1wDKsuYOHOw8Z2-6Q.png" /></figure><p>Bu kısım biraz karışık gelebilir değerlerle oynayıp hata almanızı tavsiye ederim ama çok da takılmanıza gerek yok artık görselleştirme dünyasına giriyoruz.</p><p>Veri setindeki kişilerin eğitim durumlarının dağılımını yine value_counts() fonksiyonuyla buluyoruz, yukarıdaki görsele ek olarak x eksenindeki değişkenlerimizi büyükten küçüğe sıralamak istediğimiz için order belirliyoruz ve x eksenimiz iç içe geçmesin diye değerleri 70 derece döndürüyoruz.</p><p>plt.figure() ile görselin enini ve boyunu belirliyoruz.</p><ol><li>sns.countplot() fonksiyonuna görselleştirmek istediğim değişkeni yazıyoruz ve hedef değişkeni büyükten küçüğe sıralıyoruz.</li><li>x eksenini 70 derece döndürüyoruz ki değerler birbirine karışmasın.</li><li>value_counts() fonksiyonuyla hedef değişkenin dağılımını buluyoruz.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/afcd3e9b651eab637ced7c1d6ab5cf35/href">https://medium.com/media/afcd3e9b651eab637ced7c1d6ab5cf35/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/672/1*Fe5rP5xbT1DlisbxQTR8HQ.png" /></figure><p>Yukarıda iki değer alabilen bir özniteliğin yaş karakteristiğini incelemiştik. Eğer bu çalışmayı eğitim gibi çok fazla değer alan bir öznitelik için yapmaya kalkarsak oldukça zaman kaybederiz. Bunun için groupby() fonksiyonuna ihtiyacımız var.</p><p>Gruplamak istediğimiz değişkeni belirliyoruz.</p><ol><li>İncelemek istediğimiz sütunu seçiyoruz.</li><li>describe() fonksiyonuyla hedef değişkenimizin dağılımını buluyoruz.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/1a3b5b1ba067248301c11bd5bdad05aa/href">https://medium.com/media/1a3b5b1ba067248301c11bd5bdad05aa/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/516/1*S0WeWnWY85hUMCJECnKdQg.png" /></figure><p>Şimdi eğitim durumuna göre insanların haftalık ortalama çalışma saatlerini inceleyeceğiz. Bunu yaparken ayrıca 50K’dan az ve fazla alan kişileri gruplayıp dağılımı öğreneceğiz.</p><p>plt.figure() ile görselin enini ve boyunu belirliyoruz.</p><ol><li>sns.barplot() fonksiyonuna görselleştirmek istediğimiz değişkenin x ve y değerlerini yazıyoruz.</li><li>hue=’salary’ seçeneği ile veriyi ‘salary’ sütununa göre ikiye ayırıyoruz.</li><li>default renk seçeneği yerine palette=’inferno’ ile görselleştiriyoruz.</li><li>x eksenini 70 derece döndürüyoruz.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/4c7f5425f80a6818f617cf41f4f3f0a6/href">https://medium.com/media/4c7f5425f80a6818f617cf41f4f3f0a6/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/652/1*-aZ5NQfLsBm9LMYEoz0o-Q.png" /></figure><p>Şimdi de verimizi cinsiyete göre gruplayıp insanların haftalık ortalama çalışma saatlerini inceleyeceğiz.</p><p>plt.figure() ile görselin enini ve boyunu belirliyoruz.</p><ol><li>sns.pointplot() fonksiyonuna görselleştirmek istediğimiz değişkenin x ve y değerlerini yazıyoruz.</li><li>hue=’sex’ seçeneği ile veriyi sex’ sütununa göre ikiye ayırıyoruz.</li><li>default renk seçeneği yerine palette=’dark’ ile görselleştiriyoruz.</li><li>x eksenini 70 derece döndürüyoruz.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/bc6cf3f56b7c248aa322fcd96c267934/href">https://medium.com/media/bc6cf3f56b7c248aa322fcd96c267934/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/661/1*_jOJVoGu5xCOvfib_uqmGQ.png" /></figure><p>Son olarak yukarıdaki yaptığımız maaş ve cinsiyet gruplamalarını birleştiriyoruz ve buna göre insanların haftalık ortalama çalışma saatlerini inceliyoruz.</p><p>plt.subplots() ile görselin enini, boyunu belirliyoruz ve satır, sütun sayısını belirliyoruz.</p><ol><li>sns.pointplot() fonksiyonuna görselleştirmek istediğimiz değişkenin x ve y değerlerini yazıyoruz.</li><li>hue=’sex’ seçeneği ile veriyi ‘sex’ sütununa göre ikiye ayırıyoruz.</li><li>default renk seçeneği yerine palette=’dark’ ile görselleştiriyoruz.</li><li>data=df[df[‘salary’]==’ &lt;=50K’] ile maaşı 50K’dan az olanları seçiyoruz.</li><li>ax=ax1 ile ilk figürün yerini belirliyoruz.</li><li>Aynı adımları maaşı 50K’dan fazla olanlar için tekrarlıyoruz.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/9353546267813f170d6ee3452767b9ff/href">https://medium.com/media/9353546267813f170d6ee3452767b9ff/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/864/1*H5grCGSrndOCdySDAeunsg.png" /></figure><p>İlk ders Python’a veya başka bir programlama diline hakim olan insanlar için kolay gelebilir. Onlar için hızlı bir tekrar olmuştur umarım. İlk defa programlamaya giriş yapanlar için keyifli bir başlangıç olmuştur umarım.</p><p>İkinci derse kadar herkesin bu çalışmayı kendi bilgisayarında denemesini tavsiye ederim. Emin olun bilgisayarınızda yapıp düzelteceğiniz 1 hata, buna benzer onlarca yazı okuyup video izlemekten çok daha faydalı olacaktır.</p><p>Çalışmadaki veri setine ve kodlara <a href="https://github.com/HakkiKaanSimsek/Makine_Ogrenmesi_Dersleri/tree/master/1.aciklayici_veri_analizi">şuradan</a> ulaşabilirsiniz.</p><p>Sorunuz olursa bana <a href="https://www.linkedin.com/in/hakk%C4%B1-kaan-%C5%9Fim%C5%9Fek-63131a133/">Linkedin</a> veya <a href="https://twitter.com/hkaansimsek">Twitter </a>hesaplarından yazabilirsiniz.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=af0a402a2cd8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-1-af0a402a2cd8">Makine Öğrenmesi Dersleri 1: Açıklayıcı Veri Analizi</a> was originally published in <a href="https://medium.com/data-science-tr">Veri Bilimi Türkiye</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[RFM Skorlama — Veriyi Hazırlama]]></title>
            <link>https://medium.com/data-science-tr/rfm-skorlama-22d1d2913ea7?source=rss----6776edb0f416---4</link>
            <guid isPermaLink="false">https://medium.com/p/22d1d2913ea7</guid>
            <category><![CDATA[customer-analytics]]></category>
            <category><![CDATA[r-programming]]></category>
            <category><![CDATA[data-science]]></category>
            <dc:creator><![CDATA[Onur Boyar]]></dc:creator>
            <pubDate>Sat, 22 Sep 2018 12:36:39 GMT</pubDate>
            <atom:updated>2018-09-22T13:03:20.829Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jh5I8prFlQQXsn94fTXmZw.jpeg" /><figcaption>Kinkakuji tapınağı — Japonya</figcaption></figure><p>Bu yazımızda RFM Skorlamanın uygulamasına geçiyoruz. Kullanacağımız veri CD satış verisi olacak.</p><p><a href="http://www.brucehardie.com/datasets/">Bruce Hardie: Datasets</a></p><p>Adresine giderek CDNOW dataset (1/10th sample) dosyasını indirmeniz gerekiyor. Sonrası için R yeterli olacak!</p><p>Veriyi RStudio’ya yüklemek için</p><blockquote><strong>getwd()</strong></blockquote><blockquote><strong>setwd(“/Users/boyaronur/Desktop/CDNOW_sample”)</strong></blockquote><blockquote><strong>cdnow &lt;- read.table(“CDNOW_sample.txt”)</strong></blockquote><p>Kodu yeterli olacak. getwd() fonksiyonu ile bulunduğumuz dizini öğrendik, sonrasında setwd() fonksiyonu ile çalıştığımız dizini ayarladık. CDNOW_sample.txt dosyası masaüstünde olduğundan dolayı dizini masaüstü olarak belirledim. Bu nedenle read.table fonksiyonuna yalnızca veri dosyasının ismini yazmam yeterli oldu.</p><p>Veride bulunan sütunlardan ilki tam veri setindeki müşteri ID’si iken ikinci sütun küçültülmüş veri setindeki ID numaraları. Biz şu an küçültülmüş veri setinde çalıştığımızdan dolayı ilk sütunu silip, diğer sütunları isimlendirebiliriz.</p><blockquote><strong>cdnow$V1 &lt;- NULL<br>colnames(cdnow) &lt;- c(“ID”, “TARIH”, “ADET”, “FIYAT”)<br>str(cdnow)</strong></blockquote><p>Bu işlemi yaptıktan sonra sıra veri dönüşümlerinde. ID’yi factore, TARIH’i ise date değişkenine dönüştürmemiz gerekiyor. Bunun için,</p><p>cdnow$ID &lt;- as.factor(as.character(cdnow$ID))<br>cdnow$TARIH &lt;- as.Date(as.character(cdnow$TARIH), “%Y%m%d”)</p><p>Kodu yeterli olacaktır.</p><p>Bu işlemden sonra sıra RFM skorlamayı hangi tarihten başlatacağımızı bulmakta. En son satışın gerçekleştiği günü referans günü yapalım. Bunun için en büyük tarih değerini bulmamız yeterli olacaktır. Bunu bulmak da oldukça kolay.</p><blockquote><strong>refDay &lt;- max(cdnow$TARIH)<br>class(refDay)<br>as.numeric(refDay — cdnow$TARIH)</strong></blockquote><p>Kodu ile ilk olarak refDay değişkenine referans günümüzü, yani veri setimizde bulunan en son işlemin tarihini attık. refDay değişkeninden diğer tarihleri çıkardığımızda bile o tarihten kaç gün uzakta oldukları dönüyor.</p><p>Artık verimiz hazır! Şimdi Recency, Frequency ve Monetary değerlerini hesaplayalım.</p><blockquote><strong><em>library(dplyr)<br>rfm_recency &lt;- cdnow %&gt;% group_by(ID) %&gt;% summarise(Recency = as.numeric(refDay) — as.numeric(max(TARIH)))</em></strong></blockquote><blockquote><strong><em>rfm_frequency &lt;- cdnow %&gt;% group_by(ID) %&gt;% summarise(Frequency = n())</em></strong></blockquote><blockquote><strong><em>rfm_monetary &lt;- cdnow %&gt;% group_by(ID) %&gt;% summarise(Monetary = sum(FIYAT))</em></strong></blockquote><p>dplyr paketi sayesinde bu işlemi kolayca yapabildik. Şu anda elimizde Recency, Frequency ve Monetary değerleri bulunuyor. Sıradaki dersimizde bu değerleri skorlayacağız!</p><p>Bu yazının video derslerine <a href="https://www.youtube.com/watch?v=51KjOFDnuDQ&amp;list=PLvUPzD2BG8aZ_xQyukStvJmwUbPJmRf2p&amp;index=2">Veri Bilimi Türkiye YouTube</a> kanalımızdan ulaşabilirsiniz.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=22d1d2913ea7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science-tr/rfm-skorlama-22d1d2913ea7">RFM Skorlama — Veriyi Hazırlama</a> was originally published in <a href="https://medium.com/data-science-tr">Veri Bilimi Türkiye</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[RFM Skorlama Nedir?]]></title>
            <link>https://medium.com/data-science-tr/rfm-skorlama-nedir-323f9f742e86?source=rss----6776edb0f416---4</link>
            <guid isPermaLink="false">https://medium.com/p/323f9f742e86</guid>
            <category><![CDATA[data-mining]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[r-programming]]></category>
            <dc:creator><![CDATA[Onur Boyar]]></dc:creator>
            <pubDate>Sun, 16 Sep 2018 11:49:45 GMT</pubDate>
            <atom:updated>2018-09-16T13:47:45.502Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1016/1*qIlC8-5_NWG6aKBX1_kKKA.jpeg" /><figcaption>Kyoto bambu ormanı</figcaption></figure><p>Bu yazımızda kısaca RFM skorlamadan bahsedeceğiz.</p><p>RFM Skorlama müşteri analitiği alanında sıkça kullanılan bir yöntemdir. Müşteri segmentasyonu için uygulanan basit ve güçlü bir yöntemdir. RFM kelimesindeki her harf başka bir kelimeyi teslim eder.</p><p>R harfi Recency’i,</p><p>F harfi Frequency’i</p><p>M harfi Monetary’i temsil etmektedir. Peki bu kelimeler ne anlama gelmekte?</p><p>Recency kelimesi müşterilerin en son ne zaman alışveriş yaptığının gün cinsinden değeri anlamına gelmektedir. Örnek üzerinden gidelim. Diyelim ki elimizde 1 Ocak 2018&#39;den 1 Ağustos 2018&#39;e kadar olan bir müşteri verisi bulunuyor. Bu veri müşterilerin ID’sini, ne zaman alışveriş yaptıklarını, alışverişde aldıkları ürün sayısını ve bu alışverişin ne kadar tuttuğunu içersin. 7 ID’sine sahip müşterinin de 2 Ocak ve 22 Haziran tarihlerinde alışveriş yaptığını farzedelim. Burada 7 ID’sine sahip müşterinin recency değerini hesaplamak için kullanacağımız tarih 22 Haziran tarihi olacaktır. Çünkü Recency’de önemli olan müşterinin ‘en son’ ne zaman alışveriş yaptığıdır. Bu nedenle, recency değerimiz 40 gün olacaktır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/353/1*sDgalrw26vwk5nAjx_Cj5Q.png" /><figcaption>Video derslerimizde elde ettiğimiz R, F, M değerleri.</figcaption></figure><p>Frequency değerimizi hesaplamak için ise müşterinin kaç kez alışveriş yaptığını bulmamız yeterli olacaktır. 7 ID’li müşterimiz bizden 2 kez alışveriş yapmış durumda. Bu nedenle bu müşterinin Frequency değeri 2 olacaktır.</p><p>Monetary için ise bu müşterinin yaptığı alışverişlerin toplam miktarını toplamamız gerek. 2 Ocak’taki alışverişi 44 lira tutmuş olsun. 22 Haziran’daki alışverişi ise dolardaki artış nedeniyle aynı ürünleri almış olmasına rağmen 75 lira tutmuş olsun. Bu kişi Monetary değeri artık 75 + 44 = 109 olacaktır.</p><p>Bu değerleri sadece 7 ID’sine sahip müşteri için değil, tüm müşteriler için yapacağız. Sonrasında skorlama işlemine geçeceğiz.</p><p><strong>Skorlama Nasıl Yapılır?</strong></p><p>Skorlama yapmak için R, F ve M değerlerini böleceğimiz noktaları tespit etmemiz gerekmektedir. RFM Skorlama genel olarak tüm değerlerin 1–4 aralığında veya 1–5 aralığında skorlar alması aracılığı ile yapılır. Yani eğer 4 üzerinden yapacaksak en iyi müşterimiz 444 skorunu alacaktır. Bu müşteri oldukça yakın bir zamanda alışveriş yapmış, oldukça sık alışveriş yapmış ve bu alışverişlerinde yüksek fiyatlı ürünler almış bir müşteri olacaktır. 442 skoruna sahip müşteri ise oldukça yakın bir zamanda alışveriş yapan, alışveriş geçmişinde bir çok alışveriş bulunan fakat daha ucuz ürünler alan bir müşteridir. Burada skor aralıklarını belirlerken R, F ve M değerlerinin dağılımlarına bakmak önemlidir. Onları böleceğimiz aralıkları belirler ve skorlamamızı yaparız. Skorlamayı yaptıktan sonra müşterileri yukarıdaki 444–442 ayrımı gibi gruplandırabiliriz.</p><p>Sıradaki yazılarımızda bu işlemi R üzerinden nasıl yaparız onu öğreneceğiz.</p><p>Bu yazı dizisinin videolarını izlemek için <a href="https://youtu.be/2_0-yAZlzjE">Veri Bilimi Türkiye YouTube</a> kanalımızı ziyaret edebilirsiniz.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=323f9f742e86" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science-tr/rfm-skorlama-nedir-323f9f742e86">RFM Skorlama Nedir?</a> was originally published in <a href="https://medium.com/data-science-tr">Veri Bilimi Türkiye</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Makine Öğrenmesi Dersleri 4b: Lineer Regresyon]]></title>
            <link>https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-4a-lineer-regresyon-30fe61248e93?source=rss----6776edb0f416---4</link>
            <guid isPermaLink="false">https://medium.com/p/30fe61248e93</guid>
            <category><![CDATA[büyük-veri]]></category>
            <category><![CDATA[yapay-öğrenme]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[buyuk-veri]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <dc:creator><![CDATA[Hakkı Kaan Simsek]]></dc:creator>
            <pubDate>Sat, 01 Sep 2018 12:39:57 GMT</pubDate>
            <atom:updated>2020-11-19T20:58:01.709Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5aaP-B9jXDJfBH9yh2PD7w.png" /><figcaption><a href="https://www.imdb.com/title/tt6628102/mediaviewer/rm3042001664/">kaynak</a></figcaption></figure><p>Gözetimli makine öğrenmesi (supervised machine learning) modelleri temel olarak iki problemi çözmeye çalışır:</p><ul><li>Regresyon</li><li>Sınıflandırma</li></ul><p>Regresyon probleminde hedef değişkenimiz y sürekli değerler sınıflandırma probleminde ise kategorik değerler alır.</p><p>4a partında lineer regresyondan bahsedip Bay Area ev fiyatları hakkında tahminde bulunacağız.</p><p>En temel regresyon modeli olan Lineer regresyon y değişkeni (ev fiyatları) ve veri setindeki x öznitelikleri (enlem, boylam, oda sayısı, evin yaşı, okyanusa uzaklığı vs.) arasındaki ilişkiyi anlamamıza yardımcı olur.</p><p>Amacımız bir değişkendeki artışın veya azalışın ev fiyatını nasıl etkilediğini doğru olarak anlayacağımız katsayılar elde etmek ve yeni evler gördüğümüzde tutarlı tahminlerde bulunmak.</p><figure><img alt="image.png" src="https://cdn-images-1.medium.com/proxy/1*-N98-9lrYGcvUNuRjobFOQ.png" /></figure><ul><li>y: ev fiyatı</li><li>x1: oda sayısı</li><li>x2:evin yaşı</li><li>…</li><li>xn: okyanusa uzaklık gibi düşünebilirsiniz.</li></ul><p>Modelimizin kalitesini belirleyen ölçüt ise yaptığımız tahminlerle gerçek değer arasındaki fark: hata (residuals), diğer bir deyişle modelimizin açıklamakta yetersiz kaldığı kısım. Lineer regresyonda amacımız bu hatalarla ilgili maliyet fonksiyonlarını (MAE, MSE, RMSE vs.) minimize eden en iyi denklemi bulmak.</p><p>Günün sonunda ufak da olsa bir hatanın kalacağını biliyoruz ama bu hata terimlerinde yapısal bir bilginin-örüntünün kalmasını istemiyoruz.</p><figure><img alt="image.png" src="https://cdn-images-1.medium.com/proxy/1*A71zTD6_QqUzLhMKj1Rgiw.png" /></figure><p>Diğer derslerde olduğu gibi bu dersi takip etmek için de bilgisayarınıza Python kurmanıza veya veri setini indirmenize gerek yok. İzlemeniz gereken adımlar sırasıyla şöyle:</p><ul><li>Google hesabınızı açın.</li><li><a href="https://colab.research.google.com/">https://colab.research.google.com/</a> adresine gidin.</li><li>NEW PYTHON 3 NOTEBOOK’a tıklayın.</li><li>Oradaki satıra aşağıdaki kodu yapıştırın ve play tuşuna basın.</li></ul><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/59218cd144bd1bcd0694d2c09f24e823/href">https://medium.com/media/59218cd144bd1bcd0694d2c09f24e823/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5lXTXe6-xVAueuhi7V-uCg.png" /></figure><p>Modelimizdeki hedef değişken ‘median_house_value’ olduğu için onun dağılımına bakıyoruz ve veri setinin geri kalanından ayırıyoruz.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/effc2b58b2fe1ab0962e350708e8e028/href">https://medium.com/media/effc2b58b2fe1ab0962e350708e8e028/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/849/1*Tq9ydDvQSZvfj7EExmnu_Q.png" /></figure><p>Makine öğrenmesi modelleri kategorik değişkenleri algılayamadığı için ‘object’ tipindeki değişkenleri one-hot-encoding yöntemiyle 0 ve 1&#39;lere ayırıyoruz. Ayrıca ‘total_bedroom’ değişkenindeki eksik değerleri doldurmamız gerekiyor.</p><p>Yapmamız gerekenler sırasıyla şöyle:</p><ul><li>ocean_proximity değişkeni pd.get_dummies() fonksiyonuyla zenginleştirilir.</li><li>Bu değişken veri setinden atılır.</li><li>total_bedroom değişkeni yine o sütunun median() değeriyle doldurulur.</li></ul><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f1e5b84acf2ae987097c6397938bb098/href">https://medium.com/media/f1e5b84acf2ae987097c6397938bb098/href</a></iframe><p>Modelimizi kurmaya hazırız şimdi standart modelleme süreçlerini uygulayacağız.</p><ol><li>Veriyi eğitim ve test alt-veri setlerine ayırma.</li><li>Karar ağacı modeli oluşturma.</li><li>Modeli eğitim verisine ‘fit’ etme.</li><li>R score hesaplama</li><li>Intercept ve coefficient hesaplama.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/d54ee1ed54a6bcb2998802037f6fa886/href">https://medium.com/media/d54ee1ed54a6bcb2998802037f6fa886/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/232/1*ZoI_bDWqDYn_lI4W6_cZXg.png" /></figure><p>6. Görmediğimiz test verisini modele verip tahminde bulunma.</p><p>7. Gerçek değerlerle tahmin değerleri arasındaki ilişkiye bakmak için scatter plot kullanma.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/274808c49706059b6d2ef52a3f2d5299/href">https://medium.com/media/274808c49706059b6d2ef52a3f2d5299/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/693/1*y9kwXXpljAH27nDCN3m1Ng.png" /></figure><p>8. Tahmin edilen değerlerle hata terimleri arasında ilişkisel bir yapı olup olmadığını kontrol etmek için scatter plot kullanma.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/dbbd4dd665c6e5be69a9c7fb3db629bd/href">https://medium.com/media/dbbd4dd665c6e5be69a9c7fb3db629bd/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/709/1*dxPsX9oRaSMO9_fjJ_g9mw.png" /></figure><p>9. Gerçek değerle tahmin arasındaki benzerliğe göre mean absolute error, mean squared error ve root mean squared error hesaplama.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/9b12cd0739231f34ef4ddbcf7fe451f6/href">https://medium.com/media/9b12cd0739231f34ef4ddbcf7fe451f6/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/292/1*1_J0S6l_ucszTR7I7I1RSg.png" /></figure><p>10. Yukarıda scikit-learn ile yapılan çalışmayı statsmodels.api kullarak da hızlıca yapabiliriz.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/26a5d5cf9595b900c086ddec9251e856/href">https://medium.com/media/26a5d5cf9595b900c086ddec9251e856/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/418/1*9Rqj0vY0O-K1gncIXoceDg.png" /></figure><p>Bu tabloyu nasıl okuyacağımıza ‘households’ üzerinden bakalım. Eğer o bölgedeki hane sayısı bir artarsa medyan ev fiyatı 25.25 dolar artıyor.</p><p>Ayrıca tablodaki R-squared değeri de önemli, anlamı: Modelin y değişkenindeki varyansın ne kadarını açıkladığı, bizim modelimizde %67&#39;sini açıklıyor.</p><p>Bu çalışma standart bir veri bilimi projesinin en basit hali olarak düşünülebilir.</p><ul><li>Veri tiplerini kontrol etme/düzeltme.</li><li>Açıklayıcı veri analizi ve görselleştirme.</li><li>Eksik verileri tahmin etme/veri atama.</li><li>Veri setini eğitim ve test veri-setlerine ayırma.</li><li>Modeli eğitme ve test verisi üzerinde tahmin yapma.</li><li>Gerçek değerlerle tahmin edilen değerler arasındaki ilişkiye bakma.</li><li>Tahmin edilen değerlerle hata terimleri arasındaki ilişkiye bakma.</li><li>Regresyon başarı metriklerine bakma.</li></ul><p>Çalışmadaki veri setine ve kodlara <a href="https://github.com/HakkiKaanSimsek/Makine_Ogrenmesi_Dersleri/tree/master/4.regresyon/ml_4a_lineer_regresyon">şuradan</a> ulaşabilirsiniz.</p><p>Sorunuz olursa bana <a href="https://www.linkedin.com/in/hakk%C4%B1-kaan-%C5%9Fim%C5%9Fek-63131a133/">Linkedin</a> veya <a href="https://twitter.com/hkaansimsek">Twitter </a>hesaplarından ulaşabilirsiniz.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=30fe61248e93" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-4a-lineer-regresyon-30fe61248e93">Makine Öğrenmesi Dersleri 4b: Lineer Regresyon</a> was originally published in <a href="https://medium.com/data-science-tr">Veri Bilimi Türkiye</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Makine Öğrenmesi Dersleri 5b: Random Forest (Regresyon)]]></title>
            <link>https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-5a-random-forest-regresyon-2a91715a8b66?source=rss----6776edb0f416---4</link>
            <guid isPermaLink="false">https://medium.com/p/2a91715a8b66</guid>
            <category><![CDATA[yapay-öğrenme]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[buyuk-veri]]></category>
            <category><![CDATA[büyük-veri]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <dc:creator><![CDATA[Hakkı Kaan Simsek]]></dc:creator>
            <pubDate>Sat, 01 Sep 2018 12:38:53 GMT</pubDate>
            <atom:updated>2020-05-09T14:05:48.634Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*i7Ofinkow4SKPsbqrTWhHQ.png" /></figure><p>Rassal orman (Random Forest), hiper parametre kestirimi yapılmadan da iyi sonuçlar vermesi hem regresyon hem de sınıflandırma problemlerine uygulanabilir olmasından dolayı popüler makine öğrenmesi modellerinden biri. Rassal ormanı anlamak için önce bu modelin temel blogu olan karar ağaçlarını anlamak gerekiyor. 3. dersi bu konuya ayırmıştık kısaca başarılı bir karar ağacı günlük hayatta bilgi kazancını arttıracak doğru sorular soran ve isabetli tahminler yapan insanlara benzetilebilir.</p><p>Fakat geleneksel yöntemlerden biri olan karar ağaçlarının en büyük problemlerinden biri aşırı öğrenme-veriyi ezberlemedir (overfitting). Rassal orman modeli bu problemi çözmek için hem veri setinden hem de öznitelik setinden rassal olarak 10&#39;larca 100&#39;lerce farklı alt-setler seçiyor ve bunları eğitiyor. Bu yöntemle 100&#39;lerce karar ağacı oluşturuluyor ve her bir karar ağacı bireysel olarak tahminde bulunuyor. Günün sonunda problemimiz regresyonsa karar ağaçlarının tahminlerinin ortalamasını problemimiz sınıflandırmaysa tahminler arasında en çok oy alanı seçiyoruz.</p><p>Şimdi bütün bunları basit bir örnekle açıklamaya çalışalım: Örneğin bu akşam güzel bir film izlemek istiyorsunuz ve kafanız karışık. Bir arkadaşınızı ararsanız ve o size tercih ettiğiniz film türü, süre, yıl, oyuncu-yönetmen, hollywood-alternatif vs. soru setinden çeşitli sorularla daha önce izlediğiniz filmlere (training set) göre bir tahminde bulunursa bu karar ağacı olur. Eğer 20 arkadaşınız bu soru setinden farklı sorular seçip verdiğiniz cevaplara göre tavsiyede bulunursa ve siz en çok tavsiye edilen filmi seçerseniz bu rassal orman olur.</p><p>Rassal orman modelinde farklı veri setleri üzerinde eğitim gerçekleştiği için varyans, diğer bir deyişle karar ağaçlarının en büyük problemlerinden olan overfitting azalır. Ayrıca bootstrap yöntemiyle oluşturduğumuz alt-veri kümelerinde outlier bulunma şansını da düşürmüş oluruz.</p><p>Random forest modelinin diğer bir özelliği bize özniteliklerin ne kadar önemli olduğunu vermesi. (Bir özniteliğin önemli olması demek o özniteliğin bağımlı değişkendeki varyansın açıklanmasına ne kadar katkı yaptığıyla alakalı.) Random forest algoritmasına sayıda öznitelik verip en faydalı x tanesini seçmesini isteyebiliriz ve istersek bu bilgiyi istediğimiz başka bir modelde kullanabiliriz.</p><p>İlk derslerde olduğu gibi bu dersi takip etmek için de bilgisayarınıza Python kurmanıza veya veri setini indirmenize gerek yok. İzlemeniz gereken adımlar sırasıyla şöyle:</p><ul><li>Google hesabınızı açın.<br>- <a href="https://colab.research.google.com/">https://colab.research.google.com/</a> adresine gidin.<br>- NEW PYTHON 3 NOTEBOOK’a tıklayın.<br>- Oradaki satıra aşağıdaki kodu yapıştırın ve play tuşuna basın.</li></ul><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/5436ab043fc15687fcf41fda92d000b7/href">https://medium.com/media/5436ab043fc15687fcf41fda92d000b7/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/977/1*FLNp679xpnZ-q14Ghdpxwg.png" /></figure><p>Modelimizdeki hedef değişken ‘median_house_value’ olduğu için onun dağılımına bakıyoruz ve veri setinin geri kalanından ayırıyoruz.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/31db2473471b9a8ea18598a31bd1b479/href">https://medium.com/media/31db2473471b9a8ea18598a31bd1b479/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/756/1*_oguo08usxVWdg1EsEea9w.png" /></figure><p>Makine öğrenmesi modelleri kategorik değişkenleri algılayamadığı için ‘object’ tipindeki değişkenleri one-hot-encoding yöntemiyle 0 ve 1&#39;lere ayırıyoruz. Ayrıca ‘total_bedroom’ değişkenindeki eksik değerleri doldurmamız gerekiyor.</p><p>Yapmamız gerekenler sırasıyla şöyle:</p><ul><li>ocean_proximity değişkeni pd.get_dummies() fonksiyonuyla zenginleştirilir.</li><li>Bu değişken veri setinden atılır.</li><li>total_bedroom değişkeni yine o sütunun median() değeriyle doldurulur.</li></ul><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/85f8cd4245648894f079f977d4e233aa/href">https://medium.com/media/85f8cd4245648894f079f977d4e233aa/href</a></iframe><p>Modelimizi kurmaya hazırız şimdi standart modelleme süreçlerini uygulayacağız.</p><ol><li>Veriyi eğitim ve test alt-veri setlerine ayırma.</li><li>Karar ağacı modeli oluşturma.</li><li>Modeli eğitim verisine ‘fit’ etme.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/bf7251dffb4e8e9a42867b1f1295b86e/href">https://medium.com/media/bf7251dffb4e8e9a42867b1f1295b86e/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/577/1*vgD2hCxnmsX-QQ85icVlOA.png" /></figure><p>4. Görmediğimiz test verisine modele verip tahminde bulunma.</p><p>5. Gerçek değerle tahmin arasındaki benzerliğe göre mean absolute error, mean squared error ve root mean squared error hesaplama.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/7874e1972c822f0c2db3395998ee0601/href">https://medium.com/media/7874e1972c822f0c2db3395998ee0601/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/325/1*TUqcRNyWyUlMZ0aEHOwexQ.png" /></figure><p>6. Rastgele ormandan bir karar ağacı çekip görselleştirme.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/ce661347d5d5263b0fd3f7f9a9fcde01/href">https://medium.com/media/ce661347d5d5263b0fd3f7f9a9fcde01/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1013/1*ZjHsHgL7CZHYB-vouo1dLg.png" /></figure><p>7. Sınıflandırma modeli kurulurken yapılan öznitelik önem sıralamasını görselleştirme.</p><p>Burada derinliği 8 olan yeni bir model kurup o modelin başarı oranına bakıyoruz ve öznitelik sıralamasını görselleştiriyoruz.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/3b8069f3fbc296871eb82575a45d26e9/href">https://medium.com/media/3b8069f3fbc296871eb82575a45d26e9/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/965/1*484dmFTxADcrsMY8ma083w.png" /></figure><p>Başarı oranımız ciddi bir şekilde arttı. Bu çalışma standart bir veri bilimi projesinin en basit hali olarak düşünülebilir.</p><ul><li>Veri tiplerini kontrol etme/düzeltme.</li><li>Açıklayıcı veri analizi ve görselleştirme.</li><li>Eksik verileri tahmin etme/veri atama.</li><li>Kategori tipindeki verileri one-hot encoding ile nümerik formata çevirme.</li><li>Veri setini eğitim ve test veri-setlerine ayırma.</li><li>Modeli eğitme ve test verisi üzerinde tahmin yapma.</li><li>Sınıflandırma başarı metriklerine bakma.</li><li>Karar ağacını görselleştirme.</li><li>Yeni modelin başarı metriklerine bakma ve öznitelik sıralamasını görselleştirme.</li></ul><p>Çalışmadaki veri setine ve kodlara <a href="https://github.com/HakkiKaanSimsek/Makine_Ogrenmesi_Dersleri/tree/master/5.rassal_orman/ml_5a_regresyon">şuradan</a> ulaşabilirsiniz.</p><p>Sorunuz olursa bana <a href="https://www.linkedin.com/in/hakk%C4%B1-kaan-%C5%9Fim%C5%9Fek-63131a133/">Linkedin</a> veya <a href="https://twitter.com/hkaansimsek">Twitter </a>hesaplarından yazabilirsiniz.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2a91715a8b66" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-5a-random-forest-regresyon-2a91715a8b66">Makine Öğrenmesi Dersleri 5b: Random Forest (Regresyon)</a> was originally published in <a href="https://medium.com/data-science-tr">Veri Bilimi Türkiye</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[R — Oracle DB Bağlantısı]]></title>
            <link>https://medium.com/data-science-tr/r-oracle-db-ba%C4%9Flant%C4%B1s%C4%B1-bf88c7a0cfd3?source=rss----6776edb0f416---4</link>
            <guid isPermaLink="false">https://medium.com/p/bf88c7a0cfd3</guid>
            <category><![CDATA[database]]></category>
            <category><![CDATA[r-programming]]></category>
            <category><![CDATA[customer-analytics]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[oracle-database]]></category>
            <dc:creator><![CDATA[Onur Boyar]]></dc:creator>
            <pubDate>Fri, 31 Aug 2018 21:52:08 GMT</pubDate>
            <atom:updated>2018-09-07T17:06:16.677Z</atom:updated>
            <content:encoded><![CDATA[<p>Merhaba arkadaşlar,</p><p>Bu yazımda sizlere Oracle DB — R bağlantısı nasıl yapılır onu göstermeye çalışacağım.</p><p>Oracle DB sektörde sık kullanılan bir veritabanı çözümüdür. Bu çözümü R ile birleştirdiğimizde çok gü.lü bir silah elde edebiliriz. Hem de çok kolay bir şekilde! Bunun için ilk olarak yüklememiz gereken bir kaç R paketi bulunuyor, ilk olarak onlardan başlayalım.</p><p>install.packages(‘RJDBC’)<br>install.packages(‘rJava’)</p><p>Bu paketler bizim Oracle DB bağlantısını kurmamız için temel fonksiyonları sağlayacak. Oracle bağlantısı kurarken karşılaşabileceğimiz bir sorun R’ın Java’nın yüklü olduğu dizini bulamamasıdır. Bu nedenle R’a Java’nın nerde olduğunu göstermemiz işimize yarayacaktır.</p><p>Sys.setenv(JAVA_HOME=’C:/Program Files/Java/jre1.8.0_181&#39;)</p><p>Kodu ile siz de Java dosyanız nerede ise dizin kısmını değiştirerek bu sorunu çözebilirsiniz. Şimdi yüklediğimiz paketleri çağıralım.</p><p>library(rJava)<br>library(RJDBC)</p><p>Bu paketleri çağırdıktan sonra bir RJDBC sürücüsü yüklememiz gerekiyor.</p><p><a href="http://www.oracle.com/technetwork/database/enterprise-edition/">http://www.oracle.com/technetwork/database/enterprise-edition/</a>jdbc-112010–090769.html</p><p>Adresinden size uygun jdbc dosyasını indirebilirsiniz. İndireceğiniz dosyanın ismi ojdbc6.jar olacak. Bu dosyayı yükledikten sonra R’a dönüp bir jdbcDriver oluşturacağız. Bunu yapmak da oldukça kolay.</p><p>jdbcDriver=JDBC(“oracle.jdbc.OracleDriver”,classPath=”C:/ProgramFiles/directory/ojdbc6.jar”)</p><p>Kodu ile indirdiğimiz ojdbc6.jar dosyası sayesinde bir jdbcDriver oluşturduk.</p><p>Şimdi son adıma geçebiliriz. Bu adımda bir jdbcConnection oluşturacağız. Bunu oluştururken az önce yarattığımız jdbcDriver, Oracle DB üzerindeki ‘Host ve Port’ bilgisi, database ismi ve kullanıcı adı ve şifre bize lazım olacak. jdbcConnection bağlantımızı aşağıdaki gibi oluşturabiliriz.</p><p>jdbcConnection=dbConnect(jdbcDriver,“jdbc:oracle:thin:@//HOST:PORT/DB_ISMI”, “kullanıcı_adı”, “şifre”)</p><p>Bu işlemi de tamamladıktan sonra R — Oracle bağlantısını yaptık demektir!</p><p>O zaman ilk select’imizi atalım.</p><p>table1 = dbGetQuery(jdbcConnection,’SELECT * FROM customers’)</p><p>Kodunu çalıştırdığımızda table1 Oracle DB’de bulunan customers tablosunun hepsini alacaktır. Tablonun büyüklüğüne ve sisteminizin gücüne göre bu işlem uzun sürebilir.</p><p>R üzerinden Oracle DB’ye veri yüklemek de oldukça kolaydır. Tek bir satırda halledebiliriz.</p><p>dbWriteTable(jdbcConnection, “TABLO”, table1)</p><p>Kodu ile yukarıda oluşturduğumuz table1 değişkenini Oracle DB’ye TABLO ismi ile yüklemiş olduk.</p><p>Bu tabloyu silmek için de</p><p>dbRemoveTable(jdbcConnection, “TABLO”)</p><p>kodu yeterli olacaktır.</p><p>Bu yazımızda Oracle — R bağlantısını gördük. Bu bağlantıdan sonra alabileceğimiz veri ile neler yapabiliriz? Bunları sıradaki yazılarımızda ele alacağız.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/737/0*wphfNWpKyMM0BaUu" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bf88c7a0cfd3" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science-tr/r-oracle-db-ba%C4%9Flant%C4%B1s%C4%B1-bf88c7a0cfd3">R — Oracle DB Bağlantısı</a> was originally published in <a href="https://medium.com/data-science-tr">Veri Bilimi Türkiye</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[R — Google Analytics Bağlantısı]]></title>
            <link>https://medium.com/data-science-tr/r-google-analytics-ba%C4%9Flant%C4%B1s%C4%B1-eaacb1652a10?source=rss----6776edb0f416---4</link>
            <guid isPermaLink="false">https://medium.com/p/eaacb1652a10</guid>
            <category><![CDATA[web-analytics]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[google-analytics]]></category>
            <category><![CDATA[marketing-analytics]]></category>
            <category><![CDATA[r-programming]]></category>
            <dc:creator><![CDATA[Onur Boyar]]></dc:creator>
            <pubDate>Fri, 31 Aug 2018 21:44:56 GMT</pubDate>
            <atom:updated>2018-09-01T11:52:25.044Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*onZiC6ITw5e355Cm.jpg" /></figure><p>Merhaba arkadaşlar,</p><p>Bu yazımızda R ile ulaşabileceğimiz araçları daha da genişletiyor ve Google Analytics bağlantısı nasıl yapılır onu inceliyoruz!</p><p>Google Analytics web sitenizdeki dolaşım, satın alma, ziyaretçilerin hangi kanalları kullanarak geldiği gibi verilere ulaşmamızı sağlar. Web, müşteri ve pazarlama analitiği için bize paha biçilemez veriler sunar. Google Analytics bize kendisi bazı raporlar sunar, bu raporlar sayesinde bir takım analitik sonuçlara ulaşabilir ve aksiyon alabiliriz. Fakat Google’ın bu raporları oluşturmak için kullandığı veriyi alıp kendi özel hedeflerimiz doğrultusunda da işleyebiliriz. Bunu yapmak R ile oldukça kolaydır.</p><p>Google Analytics bağlantısı için iki farklı kanaldan ilerleyeceğiz. Birisi R üzerinden gereken paketleri yüklemek olacak diğeri ise google analytics üzerinden bu bağlantıyı sağlayacak bilgileri almak olacak. İlk olarak paketlerimizi yükleyelim.</p><p>install.packages(“googleAuthR”)<br>install.packages(“googleAnalyticsR”)</p><p>library(“googleAuthR”)<br>library(“googleAnalyticsR”)</p><p>Paketleri yükleyip çağırdıktan sonra google analytics kısmına geçelim.</p><p><a href="https://console.developers.google.com/">https://console.developers.google.com</a> adresine girip sol tarafta bulunan</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/266/1*bMRy76R2wyv3TwI8xEjNCg.png" /></figure><p>kısmındaki oka tıklıyor ve ‘New Project’ diyoruz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/752/1*GXMZ_xNt0fHNEcBTRk7XBw.png" /></figure><p>Yeni projeyi oluşturup seçtikten sonra ilk görselde olduğu gibi Google APIs kısmının yanında projenin ismi çıkacaktır. Sol tarafta oluşan menü aşağıdaki görseldeki gibi olacak ve bizim seçmemiz gereken kısım ‘Credentials’ kısmı.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/254/1*xmEm5vYiZSWyq3Ncd04Ytw.png" /></figure><p>Credentials kısmına tıkladığımızda karşımıza</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/446/1*jyPlqPnRniMIxkpPWl2BJQ.png" /></figure><p>ekranı çıkacak. Create credentials diyip OAuth Client ID seçeneğini seçiyoruz. Onu seçtikten sonra çıkan ekranda ‘Configure Consent Screen’ butonuna tıklıyoruz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/362/1*RT6NO-aspEzrjgJ3_sae_g.png" /></figure><p>Tıkladıktan sonra çıkan ekranda görselde olduğu gibi Product name kısmını doldurup Save dememiz yeterli olacaktır.</p><p>Sonrasında çıkan Application type ekranında Other’ı seçiyoruz. Name kısmına istediğinizi yazabilirsiniz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/212/1*wwctCGcJUJP8uw7t1qvIBQ.png" /></figure><p>Bu adımı tamamladıktan sonra ihtiyacımız olan konfigurasyon bilgileri ekrana aşağıdaki görseldeki gibi çıkacaktır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/508/1*xUlF21OrR4T5BW6L27W_5w.png" /><figcaption>options( ) fonksiyonu içerisine yazacağımız bilgiler</figcaption></figure><p>Bundan sonraki adımımız Analytics API’ı etkinleştirmek olacak. Arama çubuğuna Analytics API yazmanız ve Enable API’a tıklamanız bunun için yeterli olacaktır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/678/1*Y1dA7mjdwEma2j5TwXwR4Q.png" /></figure><p>Bu adımı tamamlandıktan sonra R’a geri dönebiliriz.</p><p>options(googleAuthR.client_id = “CLIENT_ID”)<br>options(googleAuthR.client_secret = “CLIENT_SECRET”)</p><p>Bu satılardaki CLIENT_ID ve CLIENT_SECRET yerine yukarıdaki OAuth client görselindeki bilgileri giriyoruz. Bu iki satırı çalıştırdıktan sonra authorization için hazırız.</p><p>ga_auth()</p><p>Kodunu çalıştırdığımızda token’ımız oluşuyor. Google hesabımıza tanımladığımız google analytics hizmetini kullanan hesapların listesini almak için ise</p><p>account_list = ga_account_list()</p><p>Kodunu çalıştırdığımızda çıkan listeden verilerini çekmek istediğimiz web sitesinin viewId bilgisini almamız gerekiyor. Bu id’yi aldıktan sonra geriye tek bir adım kalıyor.</p><p>gadata = google_analytics_3(id = viewId,<br> start = “2018–07–21”,<br> end = “2018–07–28”,<br> metrics = c(“sessions”, “bounceRate”,”avgSessionDuration”),<br> dimensions = c(“source”, “region”,”sessionDurationBucket”), <br> max = 5000)</p><p>Bu kod ile belirlenen tarih aralığında maximum 5000 satır olmak üzere metrics ve dimensions’da yazılı verileri çekmiş oluyoruz. Çekebileceğimiz diğer veri türlerinin listesi için</p><p><a href="https://developers.google.com/analytics/devguides/reporting/core/dimsmets">https://developers.google.com/analytics/devguides/reporting/core/dimsmets</a></p><p>sitesini inceleyebilirsiniz.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=eaacb1652a10" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science-tr/r-google-analytics-ba%C4%9Flant%C4%B1s%C4%B1-eaacb1652a10">R — Google Analytics Bağlantısı</a> was originally published in <a href="https://medium.com/data-science-tr">Veri Bilimi Türkiye</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Makine Öğrenmesi Dersleri 3b: Karar Ağaçları (Regresyon)]]></title>
            <link>https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-3a-karar-a%C4%9Fa%C3%A7lar%C4%B1-regresyon-9cdfa9218a68?source=rss----6776edb0f416---4</link>
            <guid isPermaLink="false">https://medium.com/p/9cdfa9218a68</guid>
            <category><![CDATA[derin-ogrenme]]></category>
            <category><![CDATA[decision-tree]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[yapay-öğrenme]]></category>
            <dc:creator><![CDATA[Hakkı Kaan Simsek]]></dc:creator>
            <pubDate>Tue, 28 Aug 2018 21:25:38 GMT</pubDate>
            <atom:updated>2020-02-08T13:25:25.910Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/760/0*LHX-TX3WHDgzP2zZ.jpg" /><figcaption><a href="https://s-media-cache-ak0.pinimg.com/originals/9e/b5/a7/9eb5a7fb2b00457e641666bca63a064c.jpg">kaynak</a></figcaption></figure><p>Serinin 1. ve 2. yazısında Python’ın popüler pandas, matplotlib, seaborn kütüphanelerini kullanarak veri analizi ve görselleştirme çalışmaları yapmıştık, umarım keyifli bir başlangıç olmuştur.</p><p>İlk iki yazıyı makine öğrenmesinden ziyade Python’a giriş olarak düşünebiliriz. Bu yazıdan itibaren farklı alanlardaki veri setleri üzerinde çeşitli makine öğrenmesi modelleri kurup bu modellerimizin kalitesini oranlarını arttırmak için çeşitli yöntemler deneyeceğiz.</p><p>Makine öğrenmesi modelleri arasında insanın düşünme tarzına en yakın olanın Karar Ağaçları (Decision Tree) olduğu düşünülür. Sözgelimi iş yerinizde öğle arası 12.30–13.30 arasıysa ve saat 12.10&#39;sa biraz daha beklemeliyim diye düşünmeniz en basit karar ağacı modeline örnek olabilir.</p><p>İnsanların zihnindeki bazı karar ağaçlarının derinliği yukarıdaki gibi 1–2 olmakla birlikte çoğu zaman çok daha karmaşık modeller kurulur. Örneğin insan kaynakları departmanında çalışan birinin zihninde aşağıdakine benzer bir karar ağacı olabilir.</p><p>Eğer bir kişi x-y yaş aralığındaysa a, b, c, d, e okullarından mezunsa en az t yıl tecrübesi varsa ve daha önceki işlerinde çalışma süresi ortalama p yıldan fazlaysa mülakata çağıralım.</p><p>Karar Ağaçları bulunulan durumun entropi değerini (rastgelelik derecesini) düşüren seçimler yaparak bilgi kazancını (information gain) maksimize etmeye çalışır. Bunun için de her soruda (düğüm/node) hata fonksiyonunu tekrar hesaplayıp en düşük hataya sahip soruyu/durumu seçer.</p><p>Bilgi kazancını anlamak için de hemen herkesin bildiği sayı tutma oyununu düşünebiliriz . Örneğin 1&#39;den 100&#39;e kadar bir sayıyı en az soruyla bulmamız bekleniyorsa “sayı 50&#39;den büyük mü küçük mü?” sorusunun cevabı “sayı 95&#39;ten büyük mü küçük mü?” sorusunun cevabından daha çok bilgi kazanmamızı sağlar. Çünkü ilk soruyla seçenekleri yarıya indiririz. Sonrasında küçük cevabına karşı “sayı 25&#39;ten büyük mü küçük mü?” diye devam ederek oyunu en kısa sürede sonlandırabiliriz.</p><p>İlk derste olduğu gibi bu dersi takip etmek için de bilgisayarınıza Python kurmanıza veya veri setini indirmenize gerek yok. İzlemeniz gereken adımlar sırasıyla şöyle:</p><ul><li>Google hesabınızı açın.</li><li><a href="https://colab.research.google.com/">https://colab.research.google.com/</a> adresine gidin.</li><li>NEW PYTHON 3 NOTEBOOK’a tıklayın.</li><li>Oradaki satıra aşağıdaki kodu yapıştırın ve play tuşuna basın.</li></ul><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/bc32171d0fc17d72e2429e0c827e740d/href">https://medium.com/media/bc32171d0fc17d72e2429e0c827e740d/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7bWBOFwux5Jr5VblfvQlFw.png" /></figure><p>Modelimizdeki hedef değişken ‘median_house_value’ olduğu için onun dağılımına bakıyoruz ve veri setinin geri kalanından ayırıyoruz.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f441307e112d4840b832b1584ce268bd/href">https://medium.com/media/f441307e112d4840b832b1584ce268bd/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/461/1*p4OpVWKzf_dtm9KeilFeuA.png" /></figure><p>Makine öğrenmesi modelleri kategorik değişkenleri algılayamadığı için ‘object’ tipindeki değişkenleri one-hot-encoding yöntemiyle 0 ve 1&#39;lere ayırıyoruz. Ayrıca ‘total_bedroom’ değişkenindeki eksik değerleri doldurmamız gerekiyor.</p><ul><li>ocean_proximity değişkeni pd.get_dummies() fonksiyonuyla zenginleştirilir.</li><li>Bu değişken veri setinden atılır.</li><li>total_bedroom değişkeni yine o sütunun median() değeriyle doldurulur.</li></ul><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/21ac206db3665a0cc69ee94cf456567c/href">https://medium.com/media/21ac206db3665a0cc69ee94cf456567c/href</a></iframe><p>Modelimizi kurmaya hazırız şimdi standart modelleme süreçlerini uygulayacağız.</p><ol><li>Veriyi eğitim ve test alt-veri setlerine ayırma.</li><li>Karar ağacı modeli oluşturma.</li><li>Modeli eğitim verisine ‘fit’ etme.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/dae2b120a4d1f052c81ce8910f124935/href">https://medium.com/media/dae2b120a4d1f052c81ce8910f124935/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/608/1*rnw1siRnspz5B0oF8vr3_g.png" /></figure><p>4. Görmediğimiz test verisine modele verip tahminde bulunma.</p><p>5. Gerçek değerle tahmin arasındaki benzerliğe göre mean absolute error ve accuracy hesaplama.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/22b4934e9153327bbe843e30b0bfbd7c/href">https://medium.com/media/22b4934e9153327bbe843e30b0bfbd7c/href</a></iframe><pre>Mean Absolute Error: 55653.73 unit.<br>Accuracy: 68.285 %.</pre><p>6. Karar ağacını görselleştirme</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/2d8c101e4b08c1c89a6d29fbb2528895/href">https://medium.com/media/2d8c101e4b08c1c89a6d29fbb2528895/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7XvViH7pp-OY8BGzGh427Q.png" /></figure><p>7. Sınıflandırma modeli kurulurken yapılan öznitelik önem sıralamasını görselleştirme.</p><p>Burada derinliği 8 olan yeni bir model kurup o modelin başarı oranına bakıyoruz ve öznitelik sıralamasını görselleştiriyoruz.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/18bc6b3bdf09a79775a9d632e1b9e81c/href">https://medium.com/media/18bc6b3bdf09a79775a9d632e1b9e81c/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IvhsVqaGYkS3Z7TPHtsGlg.png" /></figure><p>Başarı oranımız ciddi bir şekilde arttı. Bu çalışma standart bir veri bilimi projesinin en basit hali olarak düşünülebilir.</p><p>Veri tiplerini kontrol etme/düzeltme.</p><ul><li>Açıklayıcı veri analizi ve görselleştirme.</li><li>Eksik verileri tahmin etme/veri atama.</li><li>Kategori tipindeki verileri one-hot encoding ile nümerik formata çevirme.</li><li>Veri setini eğitim ve test veri-setlerine ayırma.</li><li>Modeli eğitme ve test verisi üzerinde tahmin yapma.</li><li>Sınıflandırma başarı metriklerine bakma.</li><li>Karar ağacını görselleştirme.</li><li>Modelin yaptığı öznitelik sıralamasını görselleştirme.</li></ul><p>Çalışmadaki veri setine ve kodlara <a href="https://github.com/HakkiKaanSimsek/Makine_Ogrenmesi_Dersleri/tree/master/3.karar_agaclari/ml_3b_siniflandirma">şuradan</a> ulaşabilirsiniz.</p><p>Sorunuz olursa bana <a href="https://www.linkedin.com/in/hakk%C4%B1-kaan-%C5%9Fim%C5%9Fek-63131a133/">Linkedin</a> veya <a href="https://twitter.com/hkaansimsek">Twitter </a>hesaplarından yazabilirsiniz.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9cdfa9218a68" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-3a-karar-a%C4%9Fa%C3%A7lar%C4%B1-regresyon-9cdfa9218a68">Makine Öğrenmesi Dersleri 3b: Karar Ağaçları (Regresyon)</a> was originally published in <a href="https://medium.com/data-science-tr">Veri Bilimi Türkiye</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Python ile Zaman Serisi Analizi-2]]></title>
            <link>https://medium.com/data-science-tr/python-ile-zaman-serisi-analizi-2-c39503ca6048?source=rss----6776edb0f416---4</link>
            <guid isPermaLink="false">https://medium.com/p/c39503ca6048</guid>
            <category><![CDATA[yapay-öğrenme]]></category>
            <category><![CDATA[derin-ogrenme]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[analiz]]></category>
            <dc:creator><![CDATA[Hakkı Kaan Simsek]]></dc:creator>
            <pubDate>Sat, 25 Aug 2018 07:45:20 GMT</pubDate>
            <atom:updated>2018-09-18T16:20:47.006Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/760/0*UbSAuAsAVP5lZwHb.jpg" /><figcaption><a href="http://www.nuribilgeceylan.com/photography/images/turkeycinemascope/winterinthecity.jpg">kaynak</a></figcaption></figure><p>Geçmiş verilere bakarak gelecek hakkında tahminler yapmak finans ve iş analitiğinin en önemli konularındandır. Önümüzdeki ay için x hissesinin değerini tahmin etmek, y semtinde ne kadar elektrik-su tüketileceğini veya depoda ne kadar z ürününden bulunması gerektiğini kestirebilmek ilk akla gelen tahminleme konularındandır.</p><p>ARIMA, exponential smoothing ve yapay sinir ağları gibi bir çok istatistiksel ve makine öğrenmesi modeli mevcut olsa da bunlarla başarılı modeller kurabilmek ciddi deneyim ve bilgi gerektiren konulardır. Bu yazıda, Facebook tarafından geliştirilmiş Python ve R dillerinde kullanılabilen açık kaynak kodlu Prophet tahminleme modelinden bahsedeceğim.</p><p>İyi tahmin modelleri kurmak uzman olan olmayan herkesin hakkı diyerek yola çıkan Facebook araştırma ekibi Prophet’i Python ve R dillerindeki forecast paketlerinin yerine kullanmalarının arkasındaki 2 motivasyonu şöyle açıklıyor:</p><ol><li>Prophet ile mantıklı ve doğruluk oranı yüksek tahminler yapmak oldukça kolay. ARIMA, exponential smoothing gibi modelleri kullanırken yanlış seçilen bir parametre çok kötü sonuçlar alınmasına sebep olabilir ve deneyimli analistler bile zaman zaman parametre seçenekleri arasında yanlış olanları seçiyor.</li></ol><p>2. Prophet ile yapılan tahminler uzman olmayan insanlar tarafından kolayca özelleştirelebilir. Örneğin tahminleme modelinde bayram ve diğer özel günlerin tarihleri önceden belirlenebilir.</p><p>Sklearn model API’ye alışkın olanlar için Prophet’in adımları oldukça benzer sırasıyla fit ve predict metotlarını kullanıyoruz. Anaconda kullanıcıları aşağıdaki gibi paketi indirebilirler.</p><p>conda install -c conda-forge fbprophet</p><p>Bu çalışmada Ocak 2013-Mayıs 2018 tarihleri arasında Türkiye’deki aylık elektrik tüketimini analiz edip önümüzdeki 2 sene hakkında tahminde bulunmaya çalışacağız.</p><p>Çalışmadaki veri setine ve kodlara <a href="https://github.com/HakkiKaanSimsek/Istatistik-Dersleri/tree/master/zaman_serisi_2">buradan</a> ulaşabilirsiniz.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/3c8aee275746c8503bcb343805cbbce2/href">https://medium.com/media/3c8aee275746c8503bcb343805cbbce2/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/186/1*GZhFh66lrpI7DIZYkaGcEw.png" /></figure><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/213d894dd7c2cb2f616627b1902da309/href">https://medium.com/media/213d894dd7c2cb2f616627b1902da309/href</a></iframe><iframe src="https://cdn.embedly.com/widgets/media.html?url=https%3A%2F%2Fplot.ly%2F%7Ehkaansimsek%2F413%2Fenergy-consumption-of-turkey-mwh%2F%3Fshare_key%3DgxwsvdoPyCWMGrI5pcBIJA&amp;src=https%3A%2F%2Fplot.ly%2F%7Ehkaansimsek%2F413.embed%3Fautosize%3Dtrue&amp;type=text%2Fhtml&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;schema=plot" width="600" height="400" frameborder="0" scrolling="no"><a href="https://medium.com/media/ef90a4149b35b7565a480f1555668fab/href">https://medium.com/media/ef90a4149b35b7565a480f1555668fab/href</a></iframe><p>Prophet modeli için girdi olarak ‘ds’: tarih ve ‘y’: tahmin etmek istediğimiz nümerik değeri girmemiz gerekiyor. Sonrasında sklearn modellerinden alışkın olduğumuz fit() ve predict() fonksiyonlarını kullanıyoruz.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/26d347c1aadd172b614fd9a4c75a5124/href">https://medium.com/media/26d347c1aadd172b614fd9a4c75a5124/href</a></iframe><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/1231303bec175558ea5a37da6bf9bae3/href">https://medium.com/media/1231303bec175558ea5a37da6bf9bae3/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/658/1*Wn5m7JLiaycbErZTYYTAZQ.png" /></figure><p>Model ayrıca veri setindeki değişim (change point) zamanlarını bize kolayca veriyor. Tarihleri ve veri setindeki yerlerine bakalım şimdi de.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/5fed97b3117691a6736edef595353fc9/href">https://medium.com/media/5fed97b3117691a6736edef595353fc9/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/676/1*8RBXlK8_L0Z0_7gmFic3Bg.png" /></figure><p>Girişte bahsettiğim gibi Prophet modelinin en önemli özelliklerinden biri kolayca özelleştirilebiliyor olması. 2015 Kurban bayramının olduğu Eylül ayını ve 2016 Ramazan bayramının olduğu Temmuz aylarını sezonsal etkileri anlaması için modele ekliyorum ve bu yeni bilgiyle yeniden tahmin yapıyorum.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/827f6894c33994bf60e5fa4caff05b8d/href">https://medium.com/media/827f6894c33994bf60e5fa4caff05b8d/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*3J9zn7CRM7kGeKrmDNTM8A.png" /></figure><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f3862e8927ada21dd8ca90b247ca80f8/href">https://medium.com/media/f3862e8927ada21dd8ca90b247ca80f8/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/652/1*y6Q4GEIICO87MNW_-lJfeg.png" /></figure><p>Tahminde ufak da olsa değişimler olduğu gözüküyor. Şimdi de tahmin sırasında modelin hesaba kattığı genel trendi, özel günlerdeki ve yıl içerisindeki genel sezonsal etkilere bakalım.</p><p><em>Günlük veri kullandığımızda aşağıdaki tabloda haftanın günleri içerisindeki genel etkileri de görebiliriz.</em></p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/bd6359e5fb06695a32efb1892a93884d/href">https://medium.com/media/bd6359e5fb06695a32efb1892a93884d/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/594/1*YREpx8vKD3zbuh0BBFgYcQ.png" /></figure><p>Çalışmadaki veri setine ve kodlara <a href="https://github.com/HakkiKaanSimsek/Istatistik-Dersleri/tree/master/zaman_serisi_2">şuradan</a> ulaşabilirsiniz.</p><p>Sorunuz olursa bana <a href="https://www.linkedin.com/in/hakk%C4%B1-kaan-%C5%9Fim%C5%9Fek-63131a133/">Linkedin</a> veya <a href="https://twitter.com/hkaansimsek">Twitter </a>hesaplarından yazabilirsiniz.</p><p><strong>Kaynakça</strong></p><p><a href="https://facebook.github.io/prophet/">Prophet</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c39503ca6048" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science-tr/python-ile-zaman-serisi-analizi-2-c39503ca6048">Python ile Zaman Serisi Analizi-2</a> was originally published in <a href="https://medium.com/data-science-tr">Veri Bilimi Türkiye</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Makine Öğrenmesi Dersleri 7: Boyut Azaltma (Dimensionality Reduction)]]></title>
            <link>https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-boyut-azaltma-pca-5ae9e902ef92?source=rss----6776edb0f416---4</link>
            <guid isPermaLink="false">https://medium.com/p/5ae9e902ef92</guid>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[derin-ogrenme]]></category>
            <category><![CDATA[buyuk-veri]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[büyük-veri]]></category>
            <dc:creator><![CDATA[Hakkı Kaan Simsek]]></dc:creator>
            <pubDate>Mon, 20 Aug 2018 08:25:35 GMT</pubDate>
            <atom:updated>2020-04-04T12:43:59.211Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*vOQ-jr-lUmKvnylY.jpg" /><figcaption><a href="http://www.naturadergi.com/wp-content/uploads/2015/03/haber27.jpg">kaynak</a></figcaption></figure><p><strong>Boyut Azaltma (Dimensionality Reduction)</strong> veri bilimi için oldukça önemli bir yöntem. Başlıca sebepleri şöyle:</p><ul><li>Gerçek hayattaki veriler çok fazla boyuta (özniteliğe) sahip oluyor ve boyut büyüdükçe veri temizlemeden model kurmaya bütün süreçlerde harcamamız gereken <strong>zaman ve kaynaklar</strong> artıyor.</li><li>Ne kadar çok boyuta sahip olursak görselleştirme de o kadar zor oluyor. 3 boyuttan sonrasını hayal etmek zor ama görsel olarak da yaptığımız çalışmanın bir karşılığı olsun insanlara anlatalım istiyoruz.</li><li>Hemen her veri setinde bazı öznitelikler arasında yüksek korelasyon oluyor ve bu bizim gereksiz bilgiye sahip olmamıza ve modelimizde <strong>overfitting problemine</strong> sebep olabiliyor.</li></ul><p>PCA (Principal Component Analysis) methodu yüksek boyutlu bir veri setinin boyutunu azaltmak için kullanılan en yaygın yöntemlerden biri.</p><p><strong>Peki Nasıl?</strong></p><p>Boyut küçültmenin en kolay yolu verimizi en iyi tanımlayan öznitelikleri bulup diğerlerini atmaktır (<strong>öznitelik seçimi — feature selection)</strong>. Örneğin 100 boyuttan 10 tanesinin önemli olduğunu belirleyip kalan 90 özniteliği atmak ama bu tahmin edeceğiniz gibi <strong>bilgi kaybına</strong> sebep oluyor.</p><p>Bizim uğraşmamız gereken şey ise <strong>öznitelik çıkarımı (feature extraction)</strong> yapmak -en az bilgi kaybıyla boyut küçültmek-. Bunu yapmak için verideki <strong>dağılımın maksimum varyansını-bilgisini tutan</strong> minimum sayıda değişken oluşturuyoruz. <strong>Eğer bir değişken her örnek için aynı değere sahip ise gereksiz bir değişkendir. Biz en yüksek varyansa sahip olan değişkenleri bulmalıyız. </strong>Buna en güzel örneklerden biri <a href="http://hdr.undp.org/en/composite/HDI"><strong>HDI </strong></a>(İnsani Kalkınma Endeksi) hesaplaması olabilir. Ülkelerin sahip olduğu değişkenlerden bazıları (wiki): resmi dil, yüz ölçümü (toplam), su oranı, nüfus, nüfus yoğunluğu, GSYH, para birimi, trafik akışı, hukuk, dış ilişkiler, din, eğitim, sağlık, sanayi, tarım, turizm…</p><p>Yukarıdakine ek olarak ülkeden ülkeye değişen yüzlerce değişken sıralayabiliriz. PCA metodu sanayi, tarım, turizm vs. ekonomiyle ilgili yüzlerce değişkeni ve nüfusu kullanıp kişi başına düşen gayri safi milli gelir diye tek bir değişken oluşturuyor. Yani yüzlerce boyutluk bilgi en az bilgi kaybıyla tek boyutta tutulmuş oluyor.</p><p>HDI hesaplamalarında sadece 5 özniteliğe bakılarak pek de itiraz edilmeyecek bir tablo karşımıza çıkıyor.</p><ul><li>Kişi başına düşen gayri safi milli gelir</li><li>Kişi başına düşen gayri safi milli gelir sıralaması — HDI sıralaması</li><li>Beklenen ortalama yaşam süresi</li><li>Beklenen eğitim yılı</li><li>Ortalama eğitim yılı</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-0v6DPVCSGmN8h6VhiH7Ag.png" /></figure><p>Şimdi öğrendiklerimizi makine öğrenmesinin en temel veri setlerinden biri olan el yazısı verisi üzerinde uygulayalım.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/3f55b517d0618ab0fa60429ecfde517d/href">https://medium.com/media/3f55b517d0618ab0fa60429ecfde517d/href</a></iframe><p>Kütüphaneler tamam şimdi sklearn veri setinde yer alan el yazısı veri setini yükleyelim ve X, y değişkenlerine bakalım.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f62afd9fd5de2ef41cb1368c50e01c27/href">https://medium.com/media/f62afd9fd5de2ef41cb1368c50e01c27/href</a></iframe><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f456ba0f8f45c4f3379bfe24f40b230b/href">https://medium.com/media/f456ba0f8f45c4f3379bfe24f40b230b/href</a></iframe><p>Veri setimizde farklı şekilde yazılmış 1797 rakam var ve her rakam 64 boyutlu bir matrisle ifade ediliyor. Her rakam için çok farklı temsiller (vektörler) mevcut.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/9a64cd719a63e5e9409c1717c6bf9606/href">https://medium.com/media/9a64cd719a63e5e9409c1717c6bf9606/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/789/1*sLKSDrjTOtrZupFahv4RFQ.png" /></figure><p>El yazısıyla yazılmış 0 ve 1 rakamlarını temsil eden farklı vektörlere bir bakalım.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/4645ea0608426e61f76d526fb974de11/href">https://medium.com/media/4645ea0608426e61f76d526fb974de11/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/631/1*GBuStqchlCtLbTBnRQjXqw.png" /></figure><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/58facf36d336eb346559eb1bfe3e8f5d/href">https://medium.com/media/58facf36d336eb346559eb1bfe3e8f5d/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*Cot_Lav1Azve6JpbkHcFkA.png" /></figure><p>0 rakamını temsil eden vektörler arasında farklılık var kabul fakat 1 rakamını temsil eden vektörlere kıyasla fark oldukça az. Bunu daha görünür yapmak için PCA dönüşümünü uygulayıp ve rakamların iki boyutlu dünyasına bakalım.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8564b70f3ee2747742cd9054f6758f95/href">https://medium.com/media/8564b70f3ee2747742cd9054f6758f95/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/379/1*X_mEqCFvDywQZZRfAtXGeQ.png" /></figure><p>Vektörler arasındaki uzaklığa hızlıca bakarsak kötü bir dönüşüm olmadığını anlarız.</p><p>Şimdi bütün rakamların PCA dönüşümü sonrasındaki iki boyutlu vektörlerini gösterelim, rengarenk bir dünya bizi bekliyor.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/7cd9ffe25f146b7e0421a405ec24c33a/href">https://medium.com/media/7cd9ffe25f146b7e0421a405ec24c33a/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/874/1*6tN01L9aNQSuFLAUU31XmA.png" /></figure><p>Çalışmadaki veri setine ve kodlara <a href="https://github.com/HakkiKaanSimsek/Makine_Ogrenmesi_Dersleri/tree/master/7.temel_bilesenler_analizi?source=post_page-----5ae9e902ef92----------------------">şuradan</a> ulaşabilirsiniz.</p><p>Sorunuz olursa bana <a href="https://www.linkedin.com/in/hakk%C4%B1-kaan-%C5%9Fim%C5%9Fek-63131a133/">Linkedin</a> veya <a href="https://twitter.com/hkaansimsek">Twitter </a>hesaplarından yazabilirsiniz.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5ae9e902ef92" width="1" height="1" alt=""><hr><p><a href="https://medium.com/data-science-tr/makine-%C3%B6%C4%9Frenmesi-dersleri-boyut-azaltma-pca-5ae9e902ef92">Makine Öğrenmesi Dersleri 7: Boyut Azaltma (Dimensionality Reduction)</a> was originally published in <a href="https://medium.com/data-science-tr">Veri Bilimi Türkiye</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>