Model Performansının Değerlendirilmesi

Model performansını değerlendirmek için diyoruz evaluate yöntem aşağıdaki gibidir -

loss_and_metrics = model.evaluate(X_test, Y_test, verbose=2)

Model performansını değerlendirmek için diyoruz evaluate yöntem aşağıdaki gibidir -

loss_and_metrics = model.evaluate(X_test, Y_test, verbose=2)

Kaybı ve doğruluğu aşağıdaki iki ifadeyi kullanarak yazdıracağız -

print("Test Loss", loss_and_metrics[0])
print("Test Accuracy", loss_and_metrics[1])

Yukarıdaki ifadeleri çalıştırdığınızda, aşağıdaki çıktıyı görürsünüz -

Test Loss 0.08041584826191042
Test Accuracy 0.9837

Bu, bizim için kabul edilebilir olması gereken% 98'lik bir test doğruluğunu gösterir. Vakaların% 2'sinde el yazısıyla yazılan rakamların doğru sınıflandırılmaması bizim için ne anlama geliyor? Modelin test verileri üzerinde nasıl performans gösterdiğini görmek için doğruluk ve kayıp ölçütlerini de çizeceğiz.

Doğruluk Metriklerinin Grafiklendirilmesi

Kaydedilenleri kullanıyoruz historyeğitimimiz sırasında doğruluk ölçümlerinin bir taslağını elde etmek için. Aşağıdaki kod, her çağın doğruluğunu çizecektir. Çizim için eğitim veri doğruluğunu ("acc") ve doğrulama veri doğruluğunu ("val_acc") alıyoruz.

plot.subplot(2,1,1)
plot.plot(history.history['acc'])
plot.plot(history.history['val_acc'])
plot.title('model accuracy')
plot.ylabel('accuracy')
plot.xlabel('epoch')
plot.legend(['train', 'test'], loc='lower right')

Çıktı grafiği aşağıda gösterilmiştir -

Diyagramda görebileceğiniz gibi, ilk iki çağda doğruluk hızla artar ve bu, ağın hızlı öğrendiğini gösterir. Daha sonra eğri düzleşir ve modeli daha fazla eğitmek için çok fazla döneme gerek olmadığını gösterir. Genel olarak, doğrulama veri doğruluğu ("val_acc") kötüleşirken eğitim verilerinin doğruluğu ("acc") gelişmeye devam ederse, aşırı uyumla karşılaşıyorsunuz demektir. Modelin verileri ezberlemeye başladığını gösterir.

Modelimizin performansını kontrol etmek için kayıp ölçümlerini de planlayacağız.

Kayıp Metriklerinin Grafiklendirilmesi

Yine, kaybı hem eğitim ("kayıp") hem de test ("değer_kaybı") verileri üzerine çiziyoruz. Bu, aşağıdaki kod kullanılarak yapılır -

plot.subplot(2,1,2)
plot.plot(history.history['loss'])
plot.plot(history.history['val_loss'])
plot.title('model loss')
plot.ylabel('loss')
plot.xlabel('epoch')
plot.legend(['train', 'test'], loc='upper right')

Bu kodun çıktısı aşağıda gösterilmiştir -

Şemadan da görebileceğiniz gibi, eğitim setindeki kayıp ilk iki dönem için hızla azalmaktadır. Test seti için, kayıp eğitim setiyle aynı oranda azalmaz, ancak birden çok dönem için neredeyse sabit kalır. Bu, modelimizin görünmeyen verilere iyi bir şekilde genellediği anlamına gelir.

Şimdi, test verilerimizdeki basamakları tahmin etmek için eğitimli modelimizi kullanacağız.