Veri Analizi Projelerim - 2 - IMDB Rating Tahmini

Merhaba! Bugün sizler ile Veri Analizi ile ilgili yaptığım projelerimi anlatacağım. Toplamda 4 proje yaptım ve sizlere bu gönderide bir tanesini anlatacağım!





denizhan-şahin-ver-analizi-data-science-analytics-project


Veri Seti Özellikleri


Veri seti toplamda 11 sütun ve 1000 satır olmak üzere bilgiler içermektedir. Ayrıca veri seti içindeki hiçbir veri alanı boş veri içermemektedir. Boş veriler yerine ‘_ veri girişi bulunmaktadır.

movie: Film adı
year: Film yılı
certificate : Filmlerin hedef kitle ile uygunluğunu belirtmektedir.
U: universal: Her yaştan izleyici için uygundur.
A: adult: Yalnızca yetişkinler içindir.
UA: undrestircted public exhibition adults: Her yaştan izleyici için uygun ama bazı sahneleri uygunsuz.
R: restricted: 18 yaşından küçükler için uygun olmayan filmler.
            PG-13, parents strongly cautioned - some material may be inappropriate for children under 13 : 13 yaşından küçükler için uygun değildir.
            Not Rated : derecelendirme yoktur.
            Banned : yasaklanmış filmlerdir.
            M/PG, mature parental guidance suggested : Evebeyn gözetiminde izlenebilir.
            G, general audience : her yaştan izleyici için uygundur.
            U/A, universal adult : hem her yaştan hem yetişkinler için uygundur.
            UA 13+, UA 16+ : Bazı yaş aralıklarından yüksek olanlar için hem yetişkin hem genel izleyici için uygundur.
            PG, parental guidance : Ebeveyn gözetiminde uygun olan filmlerdir.
            7,13,15,16+,18 : Bu sayılar ise belli yaş aralıklarından büyük olanlar içindir.
genre.1, genre.2,genre.2 : Bir filmin içinde yer aldığı kategorileri belirtmektedir.
imdb_rating : Bir bir filmin IMBD skorunu vermektedir.
metascore : Eleştirmenler tarafından verilen puanların ortalamasıdır.
            0-19 olumsuz,
            20-39 genellikle olumsuz,
            40-59 genellikle karışık puanları yer alır,
            60-79 genellikle olumlu puan,
            80-100 genellikle yüksek puan ve olumlu filmlerdir.
time_minute : Film süreleri ile ilişkilidir. Film sürelerini belirtir.
vote : Bir filmin kaç kişi tarafındn oylandığını belirtir.
gross_earning : Brüt hasılatı temsil eder.

Veri Seti Özellikleri

Bazı film isimlerinde iki tane mevcuttur. Drishyam, Drishyam2, Scarface
Veri seti içinde yer alan filmlerin çoğunluğu 2000 yılından sonra yapılmıştır. En çok 2014(28 film) yılında film çekilmiştir ve en az 2020(Birinci çeyrek için 1 film) yılında film çekilmiştir.
U tipi sertifikaya sahip filmler toplamda 270 adettir ve bunları A tipi ile 213 film, UA tipi ile 199 film takip etmektedir.
Veri setinde her bir film toplamda üç tane tür sınıflandırmasına sahiptir. Ayrıca Genre1 için Drama 292 film, Genre2 için 331 film ve Genre3 için hiçbir veri belirtmeyen ‘_ veri girişi yer almaktadır.
IMDB rating için ise 7.7 ile toplamda 171 film en çok sayıda bulunmaktadır. Bu sayıları 7.8 ile 155 film takip etmektedir. Ayrıca 9.3 için ise 1 adet film bulunmaktadır.
Metascore(Eleştirmen puanları) için ise ‘_ veri girişi 157 tane bulunmaktadır ve bu sayıyı 86 ile 35 film takip etmektedir. Genel olarak filmer olumlu değerlendirme almıştır.
Film süreleri ise 130 dakika ile 24 film bulunmaktadır ve en 194 dakika ile 1 film bulunmaktadır.
Vote(kaç kişi tarafından değerlendirildiği) sütununda ise sadece 33516 değeri alan 2 film, 77029 ile 2 film ve 96455 ile 2 film bulunmaktadır. Diğer değerer için ise 1 film vardır.
Brüte hasılat için ise ‘_ veri girişi en fazla bulunmaktadır ve bu sayıyı 0.01$ ile 8 film takip etmektedir. Diğer filmler ise 5,4,3,2 ve 1 sayıları ile devam etmektedir.

denizhan-şahin-ver-analizi-data-science-analytics-project



Veri Seti Düzeltme

Film adları silinmiştir. Ayrıca veri seti içinde yer alan ‘_ veri girişleri ve I veri girişleri ise 0 sayısı ile değiştirilmiştir. str sınıfı içinde yer alan replace ile I harfi boş karekter ile değiştirimşitir. Daha sonra ‘ ve _ karakterleri ise sırası 0 karekteri ile değiştirilmiştir. Metascore ise astype özelliği ile float tipine dönüştürülmüştür.
time_minute ise ilgili sayı değerine kadar veri alınmıştır ve geri kalan kısım atılmıştır. Bunun içi str sınıfı içinde yer alan extract kullanılmış ve expand=False yapılmıştır. astype ile float dönüşüm sağlanmıştır.
gross_earning için ise sırası ile replace ile $, M ve # işaretleri boş değer ile değiştirilmiştir. Float dönüşümü yapılmıştır.
year sütununda ise , işareti yerine boşluk gelmiştir ve ) yerine boş karakter gelecek ve astpye ile  int dönüşümü yapılmıştır.

denizhan-şahin-ver-analizi-data-science-analytics-project



Veri Görselleştirme

Matplotlib içinde yer alan figure fonksiyonu ile bir nesne oluşturulmuştur. Figsize ile 50,50 oran ile alan oluşturulmuştur. Subplot ile 2,2 düzlem yapılmış ve bu düzlemin ilk alanına tablo eklenmiştir. Barh ile x ve y değerleri eklenmiştir. Title ile tablo ismi ayarlanmıştır. Suptitle ile ise figure nesnesinin alanının ismi ayarlanmıştır. Show ile ise grafik gösterme işlemi yapılmıştır. 
Ayrıca yeni bir figure oluşturulmuştur. Sırası ile ise Pie özellikleri de kullanımıştır. Ayrıca yeniden bir figure oluşturulmuş ve Bar özelliği de kullanılmıştır.
LabelEncoder ile ise “certificate”, “genre.1”, “genre.2” ve “genre.3” harf türündeki karakterler sayısal verilere dönüştürülmüştür. Bunun için ise Sklearn içinde yer alan Preprocessing içindeki LabelEncode kullanılmıştır. Dönüştürme işlemi ise fit_transform ile yapılmıştır.
Ayrıca Seaborn içinde yer alan Pairplot ile tüm sütunların birbiri ile ilişkisi incelenmiştir.

denizhan-şahin-ver-analizi-data-science-analytics-project

denizhan-şahin-ver-analizi-data-science-analytics-project


denizhan-şahin-ver-analizi-data-science-analytics-project


Veri Seti Korelasyon

Veri seti üzerinde, en fazla birbiri ile ilişkisi olan sütunlar ise genre1, genre2 ve genre3 sütunları gözükmektedir. Ayrıca vote ve gross_earningüzerinde de ilişki güçlüdür. Daha sonra imdb_rating ile vote arasında güçlü bir ilişki vardır. Veri seti genel olarak ise düşük oranlarda birbiri ile ilişkisi vardır.

denizhan-şahin-ver-analizi-data-science-analytics-project
                                              denizhan-şahin-ver-analizi-data-science-analytics-project

Makine Öğrenmesi için Veri Seti Ayırma

Y değeri tahmin edilmesi istenen değer, X ise tahmin için kullanılacak verileri temsil etmektedir. Ayrıca x_train, x_test, y_train, y_test için ayırma işlemi ise Sklearn içindeki Model Selection içindeki train_test_split fonksiyonu ile X ve Y değerleri , yüzde %30 test verisi olmak üzere dağıtılmıştır.


Sklearn Random Forest Regressorile Tahmin

Sklearn içinde yer alan RandomForestRegressor ile 10 adet karar ağacı ve rastegele seçim değeri 0 olarak Fit ile X ve Y değerleri ile eğitim yapılmıştır.
Belirlenen X değerindeki satırlar ile ise Predict ile tahmin yapılmıştır.

TensorFlow ile Tahmin

IMDB rating için tahmin işlemi gerçekleştirilecektir.
İlk olarak Sklearn içindeki Preprocessing içindeki MinMax ile değerler belirli bir alan içindeki dönüştürülmüştür. Bunun için x_train ve x_test kullanılmıştır.
Daha sonra Sequantial ile model oluşturma, Dense ve Activation katmanlar belirlenmiştir.EarlyStopping ile ise overfittin olayı için hazır olarak bulundurulmuştur. Üç tane katman ve her katmanda sırası ile 10, 5, 5 nöronlar vardır. Ortalama Kare Hatası (MeanSquaredError) ile loss fonksiyonu seçilmiştir ve optimizer olarak ise Adam fonksiyonu kullanılmıştır. Her bir adımda 512 veri işlenmek için model eğitimine dahile edilmek ile toplamda 250 adımda model eğitimi gerçekleştirilmiştir.
Modelin loss değerleri için Pandas ile model loss geçmişi bir DataFrame dönüşümü yapılmıştır ve Matpoltlib ile grafik çimi gerçekleştirilmiştir 150 adım sonra model için overfittin oluşma riski görülmüş ama müdahale edilmemiştir.
Tahim işlemi için ise x_test kullanılmıştır.

denizhan-şahin-ver-analizi-data-science-analytics-project



Yorum Gönder

Yorum yaptığınız için teşekkürler :)

Daha yeni Daha eski