İçindekiler:
- Verilerinizi yükleniyor
- Satır 1, veri kümesini iki parçaya ayırmanıza izin veren kitaplığı içe aktarır.
- dizisine ([0, 0, 2, 2, 2, 0, 0, 2, 2, 0, 2, 2, 1, 0, 2, 2, 1, 2, 2, 2] 2, 2]) >>>> metrikleri. accuracy_score (y_test, öngörülen)
Video: Data Analysis 4: Data Transformation - Computerphile 2024
Rasgele orman modeli, tahmini analitikte kullanılabilir; modelini oluşturmak için karar ağaçlarının bir topluluğunu (seçimi) alır. Fikir, rasgele bir zayıf öğrenci örneklemini (eğitim verilerinin rasgele bir alt kümesi) alıp en güçlü ve en iyi modeli seçmek için oy kullanmalarını sağlamaktır. Rastgele orman modeli ya sınıflandırma ya da regresyon için kullanılabilir. Aşağıdaki örnekte, rasgele orman modeli Iris türünün sınıflandırılması için kullanılır.
Verilerinizi yükleniyor
Bu kod listesi,
iris
veri kümesini oturumun içine yükleyecek: >>>> sklearn. veri setleri import load_iris >>>> iris = load_iris ()
Sınıflandırıcının bir örneğini oluşturma
Aşağıdaki iki kod satırı sınıflandırıcı örneğini oluşturur. İlk satır, rasgele orman kitaplığını içe aktarır. İkinci satır, rasgele orman algoritmasının bir örneğini oluşturur:
>>>> sklearn'dan. topluluk içe aktarma RandomForestClassifier >>>> rf = RandomForestClassifier (n_estimators = 15,
random_state = 111)
Yapıcıdaki
n_estimators
parametresi rasgele orman modeli için yaygın olarak kullanılan bir ayarlama parametresidir. Değer, ormandaki ağaç sayısını oluşturmak için kullanılır. Genellikle veri kümesinin yüzde 10 ila 100'ü arasında, ancak kullandığınız verilere bağlı. Burada, değer 15, verinin yüzde 10'u olarak ayarlanır. Daha sonra, parametre değerinin 150 (yüzde 100) olarak değiştirilmesinin aynı sonuçları verdiğini göreceksiniz.
n
_estimatörler
, model performansını ve aşırı uygunluğu ayarlamak için kullanılır. Değer ne kadar yüksek olursa, performans da o kadar iyi olur, ancak aşırı uyumsuzluk pahasına. Değer ne kadar küçük olursa, overfitting değil de düşük performans pahasına olur. Ayrıca, sayının artırılması genellikle doğruluk iyileştirmesinde düşüş gösterecek ve ihtiyaç duyulan hesaplama gücünü önemli ölçüde artırabilecek bir nokta var. Yapıcıda atlanırsa, parametre varsayılan değeri 10'dur.
Eğitim verilerini çalıştırma Rasgele orman sınıflandırıcısının bir örneğini yaratmadan önce veri setini eğitim ve test setlerine bölmeniz gerekecek. Aşağıdaki kod bu görevi gerçekleştirecektir: >>>> sklearn import cross_validation >>>> X_train, X_test, y_train, y_test =
cross_validation. train_test_split (iris verileri,
iris hedefi, test_size = 0.10, random_state = 111) >>>> rf = rf. sığdır (X_train, y_train)
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 kitaplıktaki işlevi çağırır ve şimdi bölünmüş veri kümelerini iki çift değişken için atar.
Satır 3, yeni oluşturduğunuz rasgele orman sınıflandırıcısının örneğini alır ve modeli eğitim veri setiyle birlikte eğitmek için fit yöntemini çağırır.
Test verisinin çalıştırılması
Aşağıdaki kodda, ilk satır test veri kümesini modeline gönderir, ardından üçüncü satır çıktı görüntüler: >>>> tahmini = rf. tahmin (X_test) >>>> tahmin
dizi ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) > Modelin değerlendirilmesi
Tahmin sonucunu,
- y_test
- dizisine karşı çapraz referans verebilirsiniz. Sonuç olarak, iki test veri noktasının yanlış bir şekilde tahmin edildiğini görebilirsiniz. Dolayısıyla rasgele orman modelinin doğruluğu yüzde 86,67'dir.
- Kod: >>>> Sklearn içe aktarma metriklerinden >>>> tahmin edilen
dizisine ([0, 0, 2, 2, 2, 0, 0, 2, 2, 0, 2, 2, 1, 0, 2, 2, 1, 2, 2, 2] 2, 2]) >>>> metrikleri. accuracy_score (y_test, öngörülen)
0. 8666666666666667 # 1. 0, yüzde 100 doğruluk >>>> tahmini == y_test
dizi ([Doğru, Doğru, Doğru, Yanlış, Doğru, Doğru,
Doğru, Doğru, Doğru, Doğru, True, False, True,
True], dtype = bool)
n_estimators
parametresini 150'ye değiştirirseniz, rastgele orman modeli nasıl performans gösterir? Bu küçük veri kümesi için bir fark yaratmayacakmış gibi görünüyor. Aynı sonuca yol açar: >>>> rf = RandomForestClassifier (n_estimators = 150,
random_state = 111) >>>> rf = rf. uygun (X_train, y_train) >>>> tahmin = rf. tahmin (X_test) >>>> tahmin
dizi ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >