logo

Sklearn'de Accuracy_Score

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

    y_true (1d dizisi benzeri veya etiketi/seyrek matrisi gösteren dizi):Bunlar belirli bir örnek için gerçek etiketlerdir.y_pred (1d dizi benzeri veya etiketi / seyrek matrisi gösteren dizi):Bir sınıflandırma modelinin döndürdüğü tahmini etiketler.normalleştir (bool, varsayılan = Doğru):Yanıt Yanlış ise başarıyla sınıflandırılan tahmin edilen örneklerin sayısını verir. Doğruysa, doğru şekilde sınıflandırılmış tahmin edilen örneklerin oranını döndürür.sample_weight (şekil dizisi benzeri (n,), varsayılan = Yok):Örnek ağırlıkları.

İadeler

    puan (değişken):Normalleştirme == True ise başarılı bir şekilde sınıflandırılan örneklerin (float) oranını verir; aksi takdirde, başarıyla sınıflandırılan tahmin edilen örneklerin (int) sayısını döndürür. 1, normalleştirme için %100 doğruluktur == Doğru ve normalleştirme ile sağlanan örneklerin sayısı == Yanlış.

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:

  1. 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.
  2. Örneğin gerçek değerleri y_true = ['1', '1', '0', '0', '1', '1', '0'] şeklindedir.
  3. ['1', '1', '0', '0', '1', '1', '0'] bunlar modelin örnek veriler için tahmin ettiği değerlerdir.
  4. 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.
  5. 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.