Read more about the article Python ile Makine Öğrenmesi Projesi Yaptırma
İstanbul Aydın Üniversitesi Yazılım Mühendisliği Bölümü UYB 212 Veri Madenciliği ve İş Zekası Bütünleme Projesi Python ile Makine Öğrenmesine Giriş: Neural Networks, Clustering, Outlier Analysis Verilme Tarihi: 7 Temmuz Salı, Teslim Tarihi: 15 Temmuz Çarşamba, 23:59 Teslim Şekli: Google Classroom’a yüklenecek. Teslim: Word formatında Lab Raporu ve ilgili Python, RMS ve veri dosyaları aşağıda belirtilen şekilde. Bu projede önce aşağıda tanıtılan Python kodunu anlayacak ve basit kısa satırlar ekleceksiniz. Python ile ilgili Türkçe ve İngilizce İnternet’te sayısız kaynak var. Çok fazla geniş tutmayıp sadece ödevi tamamlayacak kadar Python örneklerine bakmanız yeterli. Aşağıda adresi verilen Python koduyla oluşturulan bir Sinir Ağı (Neural Network) bir veri seti üzerinde işlem yaparak ev fiyatlarıyla ilgili tahminde bulunuyor. Bu projede ayrıca Kümeleme (Clustering – KMeans) ve Ayrık Analizi (Outlier Analysis) ile ilgili Rapid Miner uygulamaları da yapacaksınız. Aşağıdaki adreste Python'da sıfırdan katmanlı bir Sinir Ağı uygulaması nasıl geliştirilir ayrıntılı olarak anlatılıyor ve kodu veriliyor: An Introduction to Neural Networks with Implementation from Scratch in Python https://towardsdatascience.com/an-introduction-to-neural-networks-with-implementation-from-scratchusing-python-da4b6a45c05b Programda kullanılan veri seti olan Boston Ev Fiyatları’nda (Boston House Prices) 13 giriş değişkeni (ev özellikleri) ve 1 hedef (veya çıkış) değişkeni (ev fiyatı) bulunuyor. Giriş değişkenlerine göre ev fiyatı çıkış olarak veriliyor. Bakınız: sklearn.datasets.load_boston https://ogrisel.github.io/scikit-learn.org/sklearn-tutorial/modules/generated/sklearn.datasets.load_boston.html Boston Housing Dataset https://medium.com/@haydar_ai/learning-data-science-day-9-linear-regression-on-boston-housing-datasetcd62a80775ef Programda önce temel metotlar yazıldıktan sonra, aşağıdaki kod satırlarıyla veri yükleniyor. Veri önce eğitim ve test setlerine ayrılıyor. Programda 80-20 oranı kullanılarak, veri eğitim seti (%80’ni) ve test setine (%20’si) ayrılıyor. Daha sonra sinir ağı parametreleri belirlenip model eğitiliyor ve son olarak eğitim ve test doğrulukları hesaplanıyor. data = load_boston() #load dataset X,Y = data["data"], data["target"] #separate data into input and output features #split data into train and test sets in 80-20 ratio X_train,X_test,Y_train,Y_test = train_test_split(X, Y, test_size = 0.2) 1. (25 puan) Veriyi Tanıma ve Ön İşleme a) Veri setini kaynaklardan öğrenerek tanıtınız. Veri setindeki 13 özellik nelerdir (features), kısaca açıklayınız. b) Kaç tane eğitim ve kaç tane test verisi programda kullanılıyor? c) Programdaki eğitim ve test verilerini CVS formatında iki ayrı dosyaya (boston_training.cvs ve boston_test.cvs) yazınız. Ayrıca bütün verilerin olduğu boston.cvs dosyasını da üretin. d) Verinizi bir makine öğrenme algoritmasına uygulamadan önce verilerinizi biraz tanımak iyi bir fikirdir. Yazacağınız basit bir Python programınya (boston_pre.py) veri setindeki 13 sütunun istatistiğini alınız. Yani: örnek sayısı (count), ortalama (mean), standart sapma (std), min ve max ve diğerleri (aşağıdaki örneğe bakınız). Yardımlar: Python programınızda pandas kullanın (import pandas as pd). Sonra dosyadan verileri okuyarak (dataframe = pd.read_csv(...)) program veri yapınıza çekir. Faydalı istatistikleri şimdi dataframe.describe() ile veya Faydalı istatistikleri  Programdaki data, X_train ve X_test verileri üzerinden doğrudan alabilirsiniz.  Dosyadaki veriler için: pandas ile: (import pandas as pd). Sonra dosyadan verileri okuyarak (dataframe = pd.read_csv(...)) program veri yapınıza çekir. Faydalı istatistikleri şimdi dataframe.describe() ile alabilirsiniz. https://pandas.pydata.org/ https://medium.com/@haydar_ai/learning-data-science-day-9-linear-regression-on-bostonhousing-dataset-cd62a80775ef Python kodunuzun çıktısı aşağıdaki çıktıya benzeyecektir: e) Oluştuduğunuz boston.cvs dosyasını RMS’da okuyacak bir proses diyagramı oluşturun (RMS dosya adları: boston_pre.rmp ve boston_pre.properties). Bu proses diyagramı ve RMS çıktısını (Boston Ev Fiyatları tablosu) raporunuz koyunuz. Bu veri setindeki 13 özelliğin (attribute) Boxplot kullanarak grafiğini (chart) oluşturun ve lab raporunuza bu çıktıyı koyun. Grafikteki 13 özellik için 5- sayı özetini (5-number summary) yani min, Q1, median, Q3, max değerlerini raporunuza yazınız. 2. (25 puan) Linear Regression a) LinearRegression()’ı ve %80’lik eğitim verisini (X_train ve Y_train) kullanarak, Python ile bir doğrusal (linear) model oluşturun. Daha sonra %20’lik test verisi (X_test) için ev fiyatlarını (Y_pred) tahmin edin. Gerçek fiyatları (Y_test) X ekseninde ve tahmini fiyatları (Y_pred) Y ekseninde gösteren bir grafik üretiniz ve bu grafiği yorumlayınız. Nasıl bir grafik bulmanız gerekiyordu ve bu grafik ne anlama geliyor? Elde edeceğiniz grafik aşağıdaki gibi olacaktır. b) Doğrusal modelinizin hatasını MSE (Mean Squeare Error) yöntemiyle bulan Python satırlarını koda ekleyin. Bulduğunuz MSE nedir? Sonucu yorumlayınız. c) Rapid Miner’da training.cvs ve test.cvs veri setlerini kullanan ev fiyat tahmini yapan Linear Regresyon operatörünün kullanıldığı bir proses diyagramı kurunuz ve raporunuza koyarak kısaca açıklayınız. d) Rapid Miner’da elde ettiğimiz model nedir? Kısaca modeli yorumlayınız. e) Rapid Miner’da elde ettiğimiz başarı sonucunu MSE (Performace Vector) nedir? Yukarıda (b) şıkkında Python kodu ile elde ettiğiniz MSE ile karşılaştırarak kısaca karşılaştırınız. 3. (25 puan) Sinir Ağı Verilen programda Boston Ev Fiyatları verisi yüklenip eğitim ve test verilerine ayrıldıktan sonra aşağıdaki satırlarla, 13 giriş ve bir çıkışa sahip bir sinir ağının parametreleri belirlenip model eğitiliyor ve son olarak eğitim ve test doğrulukları hesaplanıyor. #set layer sizes, do not change the size of the first and last layer layer_sizes = [13, 5, 5, 1] #set number of iterations over the training set # (also known as epochs in batch gradient descent context) num_iters = 1000 learning_rate = 0.03 #set learning rate for gradient descent params = model(X_train, Y_train, layer_sizes, num_iters, learning_rate) #train the model #get training and test accuracy train_acc, test_acc = compute_accuracy(X_train, X_test, Y_train, Y_test, params) print('Root Mean Squared Error on Training Data = ' + str(train_acc)) print('Root Mean Squared Error on Test Data = ' + str(test_acc)) a) (2 puan) Verilen örnek program, açıklamaları ve ders notlarını kullanarak, bu sinir ağının şu ayrıntılarını anlatınız: a. Gizli katman sayısının işlemlere ve tahminlere olan etkisi, gizli katman sayısı nasıl seçilir? b. Gizli katman sayısı arttırıldıkça ne oluyor? Bu daha iyi tahmin yapmak için iyi midir, yoksa kötü müdür? Tam uygunluk (Overfitting) ile ilişkisi nedir? Raporunuza çıktılar koyarak bu soruları açıklayınız. c. Aktivasyon fonksiyonu nedir ve nasıl seçilir, programda hangisi nasıl kullanılmış? d. Programdaki sinir ağının öğrenme parametreleri nelerdir? Bu parametreler nasıl seçilir, ağ nasıl öğrenir, ağ nasıl tahminde bulunur? Önemli ikaz: İnternet’ten bulunan ve bu soru ile hiç alakası olmayan kopyala-yapıştır cevaplar kabul edilmeyecektir. b) (2 puan) Programın layer_sizes = [13, 5, 5, 1] ifadesiyle verilen parametrelere göre göre oluşturulan sinir ağının diyagramını çiziniz. Bu diyagramda giriş ve çıkışların isimleri, nöron yapıları ve bağlantıları tam olarak gösterilecek. Ayrıca bir nöronun ayrıntılı giriş ve çıkış ilişkisini gösteren basit diyagramı çizerek matematiksel ilişkilerini yazınız. c) (2 puan) Verilen programda Gradient Decent algoritması nasıl çalışıyor? Batch Gradient Descent algoritmasının farkları ve avantajları nelerdir, karşılaştırınız? Bilgi için: https://cs231n.github.io/optimization-1/#gd d) (2 puan) Verilen programın model, forward_propagation, backward_propagation ve predict gibi metotlarını ve önemli değişkenlerini kısaca açıklayınız. e) (2 puan) Program çalıştırıldığında ekran çıktısını raporunuz koyarak, iterasyonlar, maliyet (cost), RMSE gibi çıktıları kısaca açıklayınız. Bunlar ne gösteriyor? f) (5 puan) Verilen programa scikit-learn kütüphanesinden Confusion Matrix oluşturmak için gereken ek satırları yazarak bu matrisi oluşturun ve bu yeni dosyayı neural_networkCM.py adıyla saklayın. Çıktıyı raporunuza koyarak kısaca açıklayınız. g) (5 puan) Rapid Miner’da training.cvs ve test.cvs veri setlerini kullanan ev fiyat tahmini yapan Neural Network operatörünün kullanıldığı bir proses diyagramı (neural_network.rmp) kurunuz ve bu diyagramı ve yaptığınız ayarları raporunuza koyarak kısaca açıklayınız. h) (5 puan) Rapid Miner’da elde ettiğimiz model ve başarı sonuçları nedir? Modeli ve başarı sonuçlarını raporunuza koyarak kısaca yorumlayınız. Yukarıda (g) şıkkında Python kodu ile elde ettiğiniz Confusion Matrix ile karşılaştırarak kısaca açıklayınız. 4. (25 puan) Clustering / Outlier Analysis a) (5 puan) Kümeleme (Clustering) ve Aykırı Analizi (Outlier Analysis) veri madenciliğinde ne zaman hangi teknikler kullanılarak yapılır? b) (5 puan) Boston Ev Fiyatlarını RMS’da Clustering (k-Means) operatörü kullanarak ve küme sayısı parametresiyle oynayarak farklı kümemelere ayıran, değişik renkli noktalar olarak scatter çizim (plot) ile gösteren prosesi (boston_clustering.rmp) oluşturun ve çıktıyı üretiniz. Proses diyagramını raporunuza koyarak kullandığınız parametrelerle beraber yaptığınız kümeleme işlemini kısaca açıklayınız. c) (5 puan) Boston Ev Fiyatları veri setinindeki genel dağılımdan farklı aykırı ev fiyatları verilerini (outliers) RMS’da ilgili operatörleri kullanarak bir proses (boston_outliers.rmp) oluşturarak tespit edin ve temizleyiniz. Proses diyagramını raporunuza koyarak kullandığınız parametrelerle beraber yaptığınız temizleme işlemini kısaca açıklayınız. d) (10 puan) Boston Ev Fiyatları verisi setine RMS’de yaptığımız gibi benzer kümeleme ve aykırı durum analizini Pyhton kodu ile yapabilecek basit bir program geliştiriniz (clustering_outliers.py) ve çıktılarını alıp raporunuza koyarak yaptığınız kümeleme ve temizleme işlemlerini kısaca açıklayınız. Bazı Faydalı Kaynaklar Python Python home: https://www.python.org/downloads/ Python için en popüler ortam olan PyCharm IDE'sini yükleyebilirsiniz. Öğrenciler ve akademik personel için ücretsiz olan profesyonel sürümünü (PyCharm Professional 2020.1) kullanabilirsiniz: https://www.jetbrains.com/pycharm/ Confusion Matrix sklearn.metrics.plot_confusion_matrix https://scikit-learn.org/stable/modules/generated/sklearn.metrics.plot_confusion_matrix.html Example of Confusion Matrix in Python https://datatofish.com/confusion-matrix-python/ Confusion Matrix Visualization https://medium.com/@dtuk81/confusion-matrix-visualization-fc31e3f30fea Sinir Ağları (Türkçe) Sıfırdan Python İle Neural Network (Yapay Sinir Ağ ) Oluşturmak : Bölüm 1 — Yapay Sinir Ağları ve Nöronlar Nasıl Çalışır? https://medium.com/@sergencansiz/s%C4%B1f%C4%B1rdan-python-i%CC%87le-neural-network-yapay-sinira%C4%9F-olu%C5%9Fturmak-b%C3%B6l%C3%BCm-1-yapay-sinir-a%C4%9Flar%C4%B1-6209b27a17c1 Sıfırdan Python İle Neural Network (Yapay Sinir Ağ ) Oluşturmak: Bölüm 2— Yapay Sinir Ağlarının Eğitilmesi https://medium.com/@sergencansiz/s%C4%B1f%C4%B1rdan-python-i%CC%87le-neural-network-yapay-sinira%C4%9F-olu%C5%9Fturmak-b%C3%B6l%C3%BCm-2-yapay-sinir-a%C4%9Flar%C4%B1n%C4%B1n6fc09c0a2fbf Bütünleme Projesi Nasıl Teslim Edilecek? Lütfen aşağıdaki dosyaları ve adlandırmaları harfiyen takip ediniz. Aksi durumda final projeniz eksik değerlendirilebilir. Çünkü farklı formatlarda teslim edilen dosyaların değerlendirmesi çok zor oluyor. Google Classroom’a bir tane zip dosya yükleceksiniz: BütünlemeProjesi.zip BütünlemeProjesi.zip içinde aşağıdaki BütünlemeProjeRaporu.docx ve 4 zip dosya bulunacak: boston_preprocess.zip: İçinde aşağıdaki dosyalar bulunacak: boston.cvs boston_training.cvs boston_test.cvs boston_pre.py boston_pre.rmp boston_pre.properties linear_regression.zip: linear_regression.py linear _regression.rmp linear _regression.properties neural_network.zip: neural_networkCM.py neural_network.rmp neural_network.properties clustering_outliers.zip: boston_clustering.rmp clustering.properties boston_outliers.rmp outliers.properties clustering_outliers.py

Python ile Makine Öğrenmesi Projesi Yaptırma

  Python ile Makine Öğrenmesi konusunda uzmanlaşmış bir ekibe sahip olan Ödevcim, size Phyton programında ve tüm alanlarda destek olmak için burada. Dilerseniz tüm ödevinizi biz hazırlayalım, dilerseniz size dilediğiniz…

Okumaya devam edinPython ile Makine Öğrenmesi Projesi Yaptırma

End of content

No more pages to load