Veri bilimi iş akışındaki önemli bir aşama, uygun ölçümü kullanarak modelimizin doğruluğunu ölçmektir. Bu derste, kaynak örneğinin tahmin edilen sınıf doğruluğunu hesaplamak için iki yöntem öğreneceğiz: manuel olarak ve Python'un scikit-learn kütüphanesini kullanarak.
while döngüsünde java yapmak
Bu eğitimde tartıştığımız konuların bir özetini burada bulabilirsiniz.
- Precision_score'un manuel olarak hesaplanması
- Scikit Learn'ü kullanarak doğruluk_skorunun hesaplanması
- Scikit, doğruluk_score'un örneklerini öğrenin
- Scikit, doğruluk_skorunu nasıl çalışır?
Doğruluk Nedir?
Sınıflandırma modellerinin performansını hesaplayan yaygın olarak kullanılan metriklerden biri doğruluktur. Modelimizin başarıyla tahmin ettiği etiketlerin yüzdesi doğrulukla temsil edilir. Örneğin, eğer modelimiz 100 etiketten 80'ini doğru olarak sınıflandırsaydı, doğruluğu 0,80 olurdu.
Doğruluk Puanını Hesaplayacak Fonksiyon Oluşturma
Örneğin gerçek etiketlerine zaten sahip olduğumuz ve etiketlerin modeli tahmin ettiği göz önüne alındığında, tahmin edilen değerlerin doğruluk puanını hesaplamak için bir Python işlevi oluşturalım.
Kod
# Python program to define a function to compute accuracy score of model's predicted class # Defining a function which takes true values of the sample and values predicted by the model def compute_accuracy(Y_true, Y_pred): correctly_predicted = 0 # iterating over every label and checking it with the true sample for true_label, predicted in zip(Y_true, Y_pred): if true_label == predicted: correctly_predicted += 1 # computing the accuracy score accuracy_score = correctly_predicted / len(Y_true) return accuracy_score
Yukarıdaki fonksiyon, sınıflandırma modelinin tahmin edilen etiketleri ve numunenin gerçek etiketleri için değerleri kendi argümanları olarak kabul eder ve doğruluk puanını hesaplar. Burada, doğru tahminlerin sayısını kaydetmek için her bir doğru ve tahmin edilen etiket çiftini paralel olarak yineliyoruz. Daha sonra doğruluk puanını hesaplamak için bu sayıyı toplam etiket sayısına böleriz.
Şimdi fonksiyonu bir örnek üzerinde uygulayacağız.
Kod
# Python program to compute accuracy score using the function compute_accuracy # Importing the required libraries import numpy as np from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.datasets import load_iris # Loading the dataset X, Y = load_iris(return_X_y = True) # Splitting the dataset in training and test data X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.3, random_state = 0) # Training the model using the Support Vector Classification class of sklearn svc = SVC() svc.fit(X_train, Y_train) # Computing the accuracy score of the model Y_pred = svc.predict(X_test) score = compute_accuracy(Y_test, Y_pred) print(score)
Çıktı:
0.9777777777777777
Destek Vektör Sınıflandırması modelinin tahminlerinin doğruluk puanı olarak 0,978 elde ediyoruz.
Eşitlik hesaplamasını vektörleştirmek için numpy dizileri kullanmanın yukarıda belirtilen kodu daha verimli hale getirebileceğini unutmayın.
Sklearn'in doğruluğunu_score() kullanarak doğruluk
Sklearn.metrics'in doğruluk_score() yöntemi, örneğin gerçek etiketlerini ve model tarafından tahmin edilen etiketleri parametre olarak kabul eder ve doğruluk puanını, aynı şekilde Python'da doğruluk puanını elde etmek için kullanılabilen bir kayan değer olarak hesaplar. sklearn.metrics sınıfında tipik değerlendirme metriklerini hesaplamak için çeşitli yararlı işlevler vardır. Daha önce olduğu gibi aynı örnek veri kümesini kullanarak Destek Vektör Sınıflandırması modelinin doğruluk puanını hesaplamak için sklearn'in doğruluk_score() işlevini kullanalım.
sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=Doğru, sample_weight=Yok)
Bunu sınıflandırmanın doğruluk puanını hesaplamak için kullanırız. Bu yöntem, çoklu etiket sınıflandırmasında alt grup doğruluğunu hesaplar; bir veri kümesinin öngörülen etiket alt kümesinin, y_true'daki gerçek etiket veri kümesiyle tam olarak eşleşmesi gerekir.
Parametreler
İadeler
Doğruluk_skor örneği
Kod
java matematik rastgele
# Python program to compute accuracy score using the function accuracy_score # Importing the required libraries import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from sklearn.svm import SVC from sklearn.datasets import load_iris # Loading the dataset X, Y = load_iris(return_X_y = True) # Splitting the dataset in training and test data X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.3, random_state = 0) # Training the model using the Support Vector Classification class of sklearn svc = SVC() svc.fit(X_train, Y_train) # Computing the accuracy_score of the model Y_pred = svc.predict(X_test) score = accuracy_score(Y_test, Y_pred) print(score)
Çıktı:
0.9777777777777777
Çoklu etiketli ikili etiket göstergelerini kullanırken:
Kod
# Python program to show how to calculate accuracy score for multi-label data import numpy as np accuracy_score(np.array([[1, 1], [2, 1]]), np.ones((2, 2)))
Çıktı:
0.5
Scikit Learn Truth_score nasıl çalışır?
sklearn.metrics paketinin doğruluk_score yöntemi, çoklu etiket sınıflandırmasında alt küme doğruluğunu atar.
Verilen örnek için modelin öngördüğü etiketlerin ve örneğin gerçek etiketlerinin tam olarak eşleşmesi gerekmektedir.
Doğruluk, modelin tüm sınıflardaki davranışını açıklar. Tüm sınıflar karşılaştırılabilir derecede önemliyse, bu faydalıdır.
Doğru tahminlerin sayısının toplam örnek sayısına veya toplam tahmin sayısına oranı, modelin doğruluğunu belirlemek için kullanılır.
Kod:
- Aşağıdaki kod iki kütüphaneyi içe aktarıyor. Model doğruluğunu ve numpy kitaplıklarını tahmin etmek için sklearn.metrics'i içe aktarıyoruz.
- Örneğin gerçek değerleri y_true = ['1', '1', '0', '0', '1', '1', '0'] şeklindedir.
- ['1', '1', '0', '0', '1', '1', '0'] bunlar modelin örnek veriler için tahmin ettiği değerlerdir.
- Doğruluk = ( matris[0][0] + matris[-1][-1] ) / numpy.sum(matrix) sınıflandırma modelinin doğruluk puanını almak için kullanılır.
- Doğruluk puanı, yazdırma (doğruluk) kullanılarak çıktı olarak görüntülenir.
Kod
# Pythpn program to show how accuracy_score works # import libraries import numpy as np import sklearn.metrics # Creating a true and predicted sample Y_true = ['1', '1', '0', '0', '1', '1', '0'] Y_pred = ['1', '0', '1', '1', '0', '1', '1'] # finding a confusion matrix matrix = sklearn.metrics.confusion_matrix(Y_true, Y_pred) matrix = np.flip(matrix) print('Confusion Matrix: ', matrix) accuracy = (matrix[0][0] + matrix[-1][-1]) / np.sum(matrix) print(accuracy)
Çıktı:
Confusion Matrix: [[2 2] [3 0]] 0.2857142857142857
Bu eğitimde Python'da scikit-learn doğruluk_score'unu öğrendik ve bazı uygulama örneklerini inceledik.