İçindekiler:
- Verilerinizi nasil yükleyeceksiniz
- Satır 1, veri kümesini iki parçaya ayırmanıza izin veren kitaplığı içe aktarır.
- Test verilerini çalıştırma
- Öyleyse, parametre C = 150 olan lojistik regresyon modeli bununla nasıl kıyaslanıyor? Eh, yüzde yüz yenemezsin. C = 150: >>>> logClassifier_2 = linear_model ile lojistik sınıflandırıcıyı oluşturmak ve değerlendirmek için kullanılan kod aşağıdadır. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. uygun (X_train, y_train) >>> tahmin = logClassifier_2. tahminleri (X_test) >>> ölçümleri. accuracy_score (y_test, öngörülen) 0. 93333333333333335 >>> metrikler. confusion_matrix (y_test, predicted) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Video: SPSS ile Lojistik Regresyon (Binary) Analizi ve Hipotez Testleri 2024
Verilerin analizi için ilk sınıflandırma tahmini modelinizi oluşturduktan sonra, daha fazla model yaratmak scikit'te gerçekten basit bir görevdir. Bir modelden diğerine olan tek gerçek fark, parametreleri algoritmadan algoritmaya ayarlamanız gerekebileceğidir.
Verilerinizi nasil yükleyeceksiniz
Bu kod listesi, iris veri kümesini oturuma yükleyecektir: >>>> sklearn. veri kümeleri import load_iris >>> iris = load_iris ()
Sınıflandırıcının bir örneğini oluşturma
Yapıcıdaki parametreye (düzenleyici parametre) dikkat edin. Aşırı uyumu önlemek için
normalleştirme parametresi
kullanılır. Parametre kesinlikle gerekli değildir (yapıcı, C = 1 varsayılan olacak çünkü yapıcı iyi çalışacaktır). C = 150 kullanarak bir lojistik regresyon sınıflandırıcısı oluşturmak, karar yüzeyinin daha iyi bir arsasını oluşturur. Her iki parseli aşağıda görebilirsiniz.
Satır 1, veri kümesini iki parçaya ayırmanıza izin veren kitaplığı içe aktarır.
Satır 2, veri kümesini iki parçaya bölen ve şimdi bölünmüş veri kümelerini iki çift değişken için atayan kitaplıktaki işlevi çağırır.
Satır 3, yeni oluşturduğunuz lojistik regresyon sınıflandırıcısının örneğini alır ve modeli eğitim datasetiyle birlikte eğitmek için fit yöntemini çağırır.
Sınıflandırıcıyı nasıl görselleştirebilirim?
Arsa üzerindeki karar yüzey alanına baktığımızda, bazı ayarların yapılması gerektiği anlaşılıyor. Arsanın ortasına bakarsanız, orta bölgeye (Versicolor) ait veri noktalarının çoğunun sağ taraftaki bölgede (Virginica) uzandığını görebilirsiniz.
Bu resim, karar yüzeyini 150 C değeriyle gösterir. Görsel olarak daha iyi görünüyor, bu nedenle bu ayarları lojistik regresyon modelinizde kullanmayı seçmek uygun görünüyor.
Test verilerini çalıştırma
Aşağıdaki kodda, ilk satır test veri kümesini modele besler ve üçüncü satır çıktıyı görüntüler: >>>> predicticted = logClassifier. tahmin (X_test) >>> tahmini aralık ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2])
Modeli nasıl değerlendirirsiniz < Tahminin sonucunu, y_test dizisine karşı çapraz referans yapabilirsiniz. Sonuç olarak, tüm test veri noktalarının doğru bir şekilde tahmin edildiğini görebilirsiniz. İşte kod: >>>> sklearn import metrics >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> metrikleri. accuracy_score (y_test, öngörülen) 1. 0 # 1. 0 yüzde 100 doğruluktur >>> tahmini == y_testarray ([Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru], dtype = bool)
Öyleyse, parametre C = 150 olan lojistik regresyon modeli bununla nasıl kıyaslanıyor? Eh, yüzde yüz yenemezsin. C = 150: >>>> logClassifier_2 = linear_model ile lojistik sınıflandırıcıyı oluşturmak ve değerlendirmek için kullanılan kod aşağıdadır. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. uygun (X_train, y_train) >>> tahmin = logClassifier_2. tahminleri (X_test) >>> ölçümleri. accuracy_score (y_test, öngörülen) 0. 93333333333333335 >>> metrikler. confusion_matrix (y_test, predicted) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Daha iyi bekliyorduk, ama aslında daha kötüydü. Tahminlerde bir hata vardı. Sonuç, Destek Vektör Makinesi (SVM) modeliyle aynı sonucu verir.
Aşağıda, varsayılan parametrelerle bir lojistik regresyon sınıflandırma modelini yaratmak ve değerlendirmek için kullanılan kodun tam listesi bulunmaktadır: >>>> sklearn. veri kümeleri import load_iris >>> sklearn import linear_model >>> sklearn import cross_validation >>> sklearn ithalat metriklerinden >>> iris = load_iris () >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (iris veri, iris hedefi, test_size = 0.10, random_state = 111) >>> logClassifier = linear_model. LogisticRegression (, random_state = 111) >>> logClassifier. uygun (X_train, y_train) >>> tahmin = logClassifier. tahmin (X_test) >>> tahmini dizi ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) metrikler. accuracy_score (y_test, öngörülen) 1. 0 # 1. 0 yüzde 100 doğruluktur >>> tahmini == y_testarray ([Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru, Doğru], dtype = BOOL)