AKILLI TATIL PLANLAMA SISTEMI
Istanbul Teknik Üniversitesi Bilgisayar ve Bilişim Fakültesi Bitirme Ödevi Ali Mert Taşkın taskinal@itu.edu.tr Doç. Dr. Feza Buzluca buzluca@itu.edu.tr Ocak 2017
İçerik Giriş Proje tanımı ve içeriği, Projede kullanılan kavramlar Projenin Yapısı Veri tabanı, Veri seti, Öneri sistemi, Planlama sistemi Veri Akış Diyagramları Teknik Kullanılan teknolojiler Sonuçlar Veriler Değerlendirme
1. Giris
Akıllı Tatil Planlama Sistemi nedir, ne yapar?
Terimler Web Kazıma (Web Scrapping) Veri Madenciliği Makine Öğrenmesi Genetik Algoritmalar
Öneri Sistemleri Esas aldığı yönteme göre kullanıcılara yeni öneriler yapan sistemlerdir.
2. Projenin Yapısı
Veritabanı user Kullanıcı bilgilerini tutan tablo. Tabloda yalnızca kullanıcı id si ve ismi tutulur. place Mekan bilgilerinin tutulduğu tablo. Mekana ait isim, sıralama, puan, kategori gibi bilgiler tutulur.
Veritabanı schedule Bu tabloda kullanıcı ve önerilen plan bilgisi tutulur. vote Kullanıcının mekanlara verdiği puanların tutulduğu tablodur. category rating Yeni kullanıcıların oyladıkları kategorileri tutan tablodur.
Diyagram
Verisetleri TripAdvisor ve Google Places kaynak alınarak oluşturulmuşlardır. Alınan veriler : Mekan bilgileri Kullanıcı bilgileri Kullanıcı adi Verdiği Puan Yorum
Verisetleri 1595 Mekan 52558 Kullanıcı 19769 Yorum 49747 Oy
Öneri Sistemi Öneri sistemi İşbirlikçi Filtreleme ALS Makine Öğrenmesi Algoritması k-means Kümeleme Algoritması Varolan Kullanıcıya Sistem varolan kullanıcıların yaptığı oylamalardan faydalanarak, ALS algoritması sayesinde varolan kullanıcının eksik oylarını tahmin eder. Sistemde en yüksek puana sahip 30 mekan dikkate alınır. Yeni Kullanıcıya Sistemde kayıtlı oylamaları olmadığı için yeni kullanıcılara 9 adet mekan kategorisi oylatılır. Bu oylama sonuçlarına göre yeni kullanıcılar, en az 6 kategoriye oy vermiş eski kullanıcıların var olduğu bir kümeyle kümelenir. Kullanıcının ait olduğu kümeden rastgele bir kullanıcı seçilir ve bu kullanıcıya öneri yapılır.
Planlama Genetik Algoritma Planlama Modülü Optimizasyon problemlerinde kullanılan bir algoritmadır. Önerileri alan kullanıcı bunları içeren plan isteyebilir. Doğru sonuç garantisi yoktur ancak çoğu zaman uygun sonuç bulunur. Zaman planlama, gezgin satıcı, sırt çantası gibi optimizasyon problemlerinin çözümünde kullanılır. Öneri sistemi tarafından önerilen mekanlar belirlenen kısıtlara göre sıralanır. Planlama işlemi için kullanıcıdan zaman ve kalınan mekan bilgisi alınır.
Veri Akış Diyagramı 1 Web Scrapper Veritabanı Verisetleri
Veri Akış Diyagramı 2 Verisetleri Kullanıcı ID Öneri Sistemi Öneri seti
Veri Akış Diyagramı 3 Öneri Seti Kullanıcı Tercihleri Planlama Plan
3. Teknik
Kullanılan Teknolojiler Python web uygulaması çatısı. Öneri sistemi web servisi bu çatı kullanılmıştır. Hafif ve geliştirmesi kolay. HTML parse eden bir Java kütüphanesidir. Web Scrapper yazılırken kullanılmıştır. Spark, Apache nin Big Data çözümlerinden biridir. Java, Python, Scala ve R API leri mevcuttur. Projede, öneri sistemi oluşturulurken, Spark ın makine öğrenmesi kütüphanesinden faydalanılmıştır. Veritabanı olarak MySQL 5.7 kullanılmıştır. Java web uygulaması çatısı. Inversion of Control ve Dependency Injection yöntemlerini kullanmayı sağlar. MVC uygulamalar Spring çatısı altında Spring MVC kullanılarak yazılabilir. Object Relational Mapping aracı. Sistemde yaratılan objelerin veritabanı tablolarıyla eşleşmesini ve veritabanı sorgularını kolaylaştırmayı sağlar.
4. Sonuçlar
Öneri Sistemi Giriş Sayfası
K Means Kümeleme Algoritması Sonuçları k=3 k=5 k=7 k=9 k=11 k=17 Max iterations=10 Runs=10 188.36 160.90 145.4 138.6 127.81 108.76 100,10 188.36 160.79 146.24 135.04 125.85 108.95 10,100 188.36 160.90 145.81 134.13 125.39 108.28
Teşekkürler Sorular? İletişim: taskinal@itu.edu.tr
Kaynaklar Apache Spark, http://spark.apache.org/docs/latest/ml-gui de.html Spring Framework, https://spring.io/guides JSoup, https://jsoup.org/