Rastgele ormanın açıklamasını ve uygulamasını anlamak için bir makale (python koduyla)

Yazar: William Koehrsen

Çeviri: He Zhonghua

Redaksiyon: Li Runjia

Bu makale hakkında 6000 Word, önerilen okuma 15 dakika.

Bu makale tek bir karar ağacı ile başlıyor ve ardından rastgele ormanın çalışma prensibini adım adım açıklıyor ve gerçek bir veri setini tahmin etmek için sklearn'da rastgele ormanı kullanıyor.

Günümüzde Scikit-Learn gibi kütüphanelerin ortaya çıkması sayesinde Python'da yüzlerce makine öğrenimi algoritmasını kolayca uygulayabiliyoruz. Kullanımları o kadar kolaydır ki, onları kullanmak için modelin altında yatan çalışma mekanizması hakkında genellikle herhangi bir bilgiye ihtiyacımız yoktur. Tüm ayrıntıları anlamak gerekli olmasa da, bir makine öğrenimi modelinin genel olarak nasıl çalıştığını anlamak yine de yararlıdır. Bu, modelin iyi performans göstermediğini teşhis etmemize veya modelin nasıl kararlar aldığını açıklamamıza izin verir, bu özellikle başkalarını modelimize inanmaya ikna etmek istediğimizde çok önemlidir.

Bu makalede, Python'da Random Forest'ın nasıl oluşturulacağını ve kullanılacağını tanıtacağız. Koda bakmanın yanı sıra, bu modelin nasıl çalıştığını da anlamaya çalışacağız. Rastgele orman birçok karar ağacından oluştuğu için, önce tek bir karar ağacının basit bir problem üzerinde nasıl sınıflandırılabileceğini anlayalım. Daha sonra, gerçek dünyadaki bir veri bilimi problemini çözmek için rastgele ormanı kullanacağız. Bu makalenin tam kodu GitHub'da Jupyter Not Defteri olarak sağlanır.

Not: Bu makale ilk olarak, makine öğrenimini öğrenmek isteyenler için öğreticiler sağlayan, topluluk odaklı bir açık kaynak platformu olan enlight'ta yayınlandı. Karar ağacını anlamak

Karar ağacı, rastgele ormanın temel bileşenidir ve sezgisel bir modeldir. Karar ağacını, verilerle ilgili bir dizi evet / hayır sorusu ve son olarak tahmin edilen bir kategori (veya regresyon durumunda sürekli bir değer) olarak düşünebiliriz. Bu yorumlanabilir bir model çünkü insan sınıflandırma sürecimize çok benziyor: Bir karar vermeden önce (ideal bir dünyada), mevcut veriler hakkında bir dizi sorgu yapacağız.

Karar ağaçlarının teknik ayrıntıları, verilerle ilgili soruların nasıl oluşturulacağıdır. CART algoritmasında, yanıtlandığında Gini Safsızlığında en büyük azalmaya neden olacak sorunları (düğümlerin bölünmesi olarak adlandırılır) tanımlanarak bir karar ağacı oluşturulur. Bu, karar ağacının tek bir sınıftan yüksek oranda örnek (veri noktaları) içeren düğümler oluşturmaya çalıştığı anlamına gelir.Bu işlem, verileri farklı sınıflara temiz bir şekilde bölebilen özelliklerde uygun değerler bularak gerçekleştirilir.

Gini safsızlığının alt seviye detaylarından daha sonra bahsedeceğiz, ancak önce bunu yüksek seviyede anlayabilmemiz için bir karar ağacı oluşturalım.

Basit problemlerle ilgili karar ağacı

Aşağıdaki gibi çok basit bir ikili sınıflandırma problemi ile başlayacağız:

Amaç, veri noktalarını kendi kategorilerine ayırmaktır.

Verilerimizin yalnızca iki özelliği (yordayıcı değişkenler), x1 ve x2 ve 2 farklı etikete bölünmüş toplam 6 veri noktası (örnek) vardır. Bu problem basit olmasına rağmen, doğrusal olarak ayrılamaz, yani noktaları sınıflandırmak için veriler boyunca düz bir çizgi çizemeyiz.

Bununla birlikte, veri noktalarını düğümler dediğimiz çoklu kutulara bölmek için bir dizi düz çizgi çizebiliriz. Aslında bu, eğitim sırasında karar ağacının yaptığı şeydir. Aslında karar ağacı, birçok doğrusal sınırın inşa edilmesiyle oluşturulmuş doğrusal olmayan bir modeldir.

Bir karar ağacı oluşturmak ve veriler üzerinde çalışmak (uydurmak) için Scikit-Learn kullanıyoruz.

Eğitim sürecinde, özelliklere göre noktaları nasıl sınıflandıracağını öğrenmesine yardımcı olmak için modele özellikler ve etiketler sağlıyoruz. (Bu basit problem için bir test setimiz yok. Test ederken sadece model için özellik değerleri sağlıyoruz ve etiketi tahmin etmesine izin veriyoruz.)

Modelin doğruluğunu eğitim verileri üzerinde test edebiliriz:

Beklediğimiz% 100 doğruluğa ulaştığı görülebilir, çünkü ona eğitim cevabını (y) verdik ve ağacın derinliğini sınırlamadık. Eğitim verilerinde çok güçlü öğrenme yeteneğinin bir dezavantaj olabileceği ortaya çıktı çünkü daha sonra tartışacağımız aşırı uyuma yol açabilir.

Görsel karar ağacı

Karar ağacını eğittiğimizde ne oldu? Görselleştirme, Scikit-Learn işleviyle elde edilebilecek karar ağacını daha iyi anlamamıza yardımcı olabilir (ayrıntılar için lütfen not defterine veya bu makaleye bakın).

Basit karar ağacı

Yaprak düğümler (renkli terminal düğümleri) hariç, tüm düğümler 5 bölümden oluşur:

  • Belirli bir özelliğin değerine dayalı verilere dayalı sorular, her sorunun düğümü bölen doğru veya yanlış bir cevabı vardır. Cevaba göre, veri noktası buna göre aşağı doğru hareket ediyor.
  • gini: Düğümün Gini safsızlığı. Ağaçta aşağı doğru hareket ettikçe, ortalama ağırlıklı Gini safsızlığı azalır.
  • örnekler : Düğümdeki gözlem verisi sayısı.
  • değer: Her sınıftaki örnek sayısı. Örneğin, kök düğümdeki 2 örnek 0 sınıfa, 4 örnek sınıfa aittir.
  • sınıf: Bu düğümdeki çoğu noktanın sınıflandırılması. Yaprak düğümde, düğümdeki tüm örneklerin tahminidir.

Yaprak düğümünde başka soru yok, çünkü son tahmin zaten burada üretildi. Yeni bir veri noktasını sınıflandırmak için, bir yaprak düğüme ulaşana kadar soruyu yanıtlamak için yalnızca ağaçta aşağı inmeniz ve yeni noktanın özelliklerini kullanmanız gerekir Yaprak düğüme karşılık gelen sınıflandırma, nihai tahmindir.

Ağacı farklı bir şekilde görebilmek için karar ağacının oluşturduğu bölütlemeyi orijinal veriler üzerine çizebiliriz.

Karar ağacı yapısının segmentasyonu

Her bölüm, veri noktalarını karakteristik değere göre farklı düğümlere bölen bir çizgidir. Bu basit problem için ve maksimum derinlikte sınırlama olmaksızın, bölme nihayet her noktayı yalnızca aynı tür noktaları içeren bir düğüme yerleştirir. (Yine, eğitim verilerinin bu mükemmel bölümünün istediğimiz şey olmayabileceğini daha sonra göreceğiz çünkü aşırı uyuma yol açabilir)

Gini Safsızlık (Gini Safsızlık)

Gini safsızlığı kavramını daha derinlemesine anlamanın zamanı geldi (matematik korkutucu değil!) Bir düğümün Gini safsızlığı, düğümden rastgele seçilen bir örneğin düğümdeki örneğin dağılımına göre sınıflandırıldığında yanlış bir şekilde sınıflandırılma olasılığını ifade eder. Örneğin, kök düğümde, düğümdeki örnek etikete göre rastgele seçilen bir veri noktasının yanlış bir şekilde sınıflandırılması olasılığı% 44,4'tür. Bu değer aşağıdaki denklem kullanılarak elde edilebilir:

Düğüm n'nin Gini safsızlığı

Düğüm n'nin Gini safsızlığı 1 eksi her sınıfın örnek oranlarının karelerinin toplamıdır (ikili sınıflandırma görevinde 2). Biraz kafa karıştırıcı, o halde kök düğümün Gini safsızlığını birlikte hesaplayalım.

Kök düğümün Gini safsızlığı

Her düğümde, karar ağacı, Gini kirliliğini en aza indirmek için tüm özelliklerde bölme için değerler arar. (Düğümleri bölmenin bir başka alternatifi de bilgi kazancını kullanmaktır).

Daha sonra, bu bölmeyi açgözlü özyinelemeli bir işlemde maksimum derinliğe ulaşılana kadar tekrarlar veya her düğüm yalnızca aynı türden örnekler içerir. Ağacın her katmanının ağırlıklı toplam Gini safsızlığı azaltılmalıdır. Ağacın ikinci seviyesinde toplam ağırlıklı Gini safsızlık değeri 0,333'tür:

(Her düğümün Gini safsızlığı, o düğümdeki ana düğümden alınan noktaların oranına göre ağırlıklandırılır.) Her düğüm için Gini kirliliğini hesaplamaya devam edebilirsiniz (görselleştirmede bir cevap vardır). Bu şekilde, bazı temel matematiklerden güçlü bir model doğdu!

Sonunda, son katmanın ağırlıklı toplam Gini safsızlığı 0 olur, bu da her düğümün tamamen saf olduğu ve düğümlerden rastgele seçilen noktaların yanlış sınıflandırılmayacağı anlamına gelir. Bütün bunlar iyi görünse de bu, modelin aşırı uyumlu olabileceği anlamına gelir çünkü tüm düğümler yalnızca eğitim verileri kullanılarak oluşturulur.

Aşırı uyum: Neden bir orman ağaçtan daha iyidir?

Neden sadece bir karar ağacı kullanmadığınızı merak ediyor olabilirsiniz. Mükemmel görünüyor çünkü hata yapmadı! Ama bu ağacın içinde bulunduğu kilit noktayı unutma Eğitim verileri Hata yapılmadı. Bu durumu önceden tahmin etmiştik çünkü ağaca yanıt verdik ve maksimum derinliği (ağacın seviye sayısını) sınırlamadık. Bununla birlikte, makine öğrenimi modellerinin amacı, daha önce hiç görülmemiş yeni verilere iyi bir şekilde genelleme yapmaktır.

Aşırı uyum, çok esnek bir modele sahip olduğumuzda (modelin yüksek yetenekleri vardır) oluşur ve bu, eğitim verilerini hatırlamak için esasen sıkı bir uyumdur. Sorun, modelin yalnızca eğitim verilerindeki gerçek ilişkiyi değil, aynı zamanda mevcut gürültüyü de öğrenmesidir. Yüksek varyanslı esnek model (Varyans) , Çünkü öğrenilen parametreler (karar ağacının yapısı gibi) eğitim verileriyle büyük ölçüde değişecektir.

Öte yandan, eğitim verileri nedeniyle Hipotez Dolayısıyla, esnek olmayan bir modelin daha yüksek (Önyargı) , (Veriler hakkında önyargılı fikirlere eğilimlidir) Örneğin, doğrusal bir sınıflandırıcı, verilerin doğrusal olduğunu ve doğrusal olmayan ilişkilere uyacak esnekliğe sahip olmadığını varsayar. Esnek olmayan bir model eğitim verilerine bile uymayabilir .. Her iki durumda da yüksek varyans ve yüksek önyargı durumunda, model yeni verilere iyi bir şekilde genelleyemez.

Eğitim verilerini hatırlayabilen çok esnek bir model ile eğitim verilerinden öğrenemeyen esnek olmayan bir model arasındaki dengeye, makine öğreniminde temel bir kavram olan önyargı-varyans-tradeoff denir.

Maksimum derinliği sınırlamadığımızda karar ağacının aşırı uyum göstermesinin nedeni, sınırsız esnekliğe sahip olmasıdır; bu, mükemmel sınıflandırmaya ulaşmak için her bir gözlem noktası için bir yaprak düğümü oluşturana kadar büyümeye devam edebileceği anlamına gelir. . Önceki karar ağacının görüntüsüne geri dönerseniz ve maksimum derinliği 2 (yalnızca bir bölme) ile sınırlarsanız, sınıflandırma artık% 100 doğru değildir. Karar ağacının varyansını azalttık, ancak artan önyargı pahasına.

Ağacın derinliğini sınırlamak, varyansı azaltabilir (iyi) ve önyargıyı artırabilir (kötü) Alternatif olarak, birçok karar ağacını rastgele orman adı verilen bir topluluk modelinde birleştirebiliriz.

Rastgele orman

Rastgele orman, birçok karar ağacından oluşan bir modeldir. Bu model, tüm ağaçların tahminlerinin ortalamasını almakla kalmaz (buna "orman" diyebiliriz), aynı zamanda addaki rastgele kelimenin geldiği iki anahtar kavramı kullanır:

  • Ağacı oluştururken eğitim veri noktalarının rastgele örneklenmesi
  • Düğümleri bölerken rastgele bir özellik alt kümesi düşünün
Rastgele örnekleme eğitimi gözlem verileri

Eğitim sırasında, rastgele ormandaki her ağaç rastgele bir veri noktası örneğinden öğrenecektir. Örneklerin değiştirildiği örneklemeye bootstrapping adı verilir, bu da bazı örneklerin bir ağaçta birden çok kez kullanılacağı anlamına gelir. Arkasındaki fikir, her bir ağacı farklı örnekler üzerinde eğitmektir.Her ağacın belirli bir eğitim veri setine göre yüksek bir varyansı olsa da, genel olarak, tüm ormanın sapmayı artırmadan düşük bir varyansı olacaktır.

Test sırasında, her bir karar ağacının tahminlerinin ortalaması alınarak tahminler yapılır. Tek bir öğrenciyi farklı kendi kendine örnekleme veri alt kümeleri üzerinde eğitme ve ardından tahminlerin ortalamasını alma sürecine, önyükleme toplamasının kısaltması olan torbalama denir.

Düğümleri ayırmak için kullanılan rastgele özellik alt kümesi

Rastgele ormandaki diğer bir ana kavram, her bir karar ağacındaki her düğümü ayırmak için tüm özelliklerin yalnızca bir alt kümesinin dikkate alınmasıdır. Genellikle sınıflandırma için sqrt (n_features) olarak ayarlanır, yani her ağaçtaki her düğümde 16 özellik varsa, düğümü ayırmak için yalnızca 4 rastgele özellik kabul edilir. (Rastgele orman, regresyonda yaygın olduğu gibi, her düğümdeki tüm özellikleri de dikkate alabilir. Bu seçenekler, Scikit-Learn Random Forest uygulamasında kontrol edilebilir).

Tek bir karar ağacını, torbalama kavramını ve rastgele özellik alt kümelerini anlayabiliyorsanız, rastgele ormanların nasıl çalıştığını iyi anlarsınız:

Rastgele orman, yüzlerce karar ağacını birleştirir, her bir karar ağacını biraz farklı gözlem kümelerinde eğitir ve düğümleri ayırmak için her ağaçtaki sınırlı sayıda özelliği dikkate alır. Rastgele ormanın nihai tahmini, her ağacın tahminlerinin ortalaması alınarak elde edilir.

Rastgele ormanın neden tek bir karar ağacından daha iyi olduğunu anlamak için aşağıdaki senaryoyu hayal edin: Tesla'nın hisselerinin artıp artmadığını yargılamalısınız ve şimdi etrafınızda şirket hakkında önceden bilgisi olmayan bir düzine analist var. Her analistin daha düşük bir önyargısı vardır çünkü varsayımları yoktur ve haber raporlarının veri setinden öğrenebilirler.

Bu ideal bir durum gibi görünüyor, ancak sorun şu ki rapor gerçek sinyale ek olarak gürültü de içerebilir. Analistler tahminler tamamen verilere dayalı olarak yaptıklarından, yani yüksek derecede esnekliğe sahiptirler, bu da ilgisiz bilgilerden etkilenebilecekleri anlamına gelir. Analistler, aynı veri setinden farklı tahminler üretebilirler. Ek olarak, farklı raporlama eğitim setleri sağlanırsa, her analist yüksek varyansa sahip olacak ve tamamen farklı tahminler üretecektir.

Çözüm, herhangi bir kişiye güvenmek değil, her analistin oylarını bir havuzda toplamaktır. Ek olarak, rastgele orman gibi, her analistin raporun yalnızca bir bölümünü kullanmasına izin verilir ve örnekleme yoluyla gürültü bilgisinin etkisini ortadan kaldırmayı umar. Gerçek hayatta, aynı zamanda birden fazla bilgi kaynağına da güveniyoruz (Amazon'un bireysel incelemelerine asla güvenmiyoruz) Bu nedenle, sadece karar ağaçları fikri sezgisel değil, aynı zamanda bunları rastgele bir ormanda birleştirme fikri de aynı.

Pratikte rastgele orman

Ardından, Python'da rastgele bir orman inşa etmek için Scikit-Learn kullanacağız. Basit bir problem öğrenmiyoruz, ancak bir eğitim seti ve bir test setine bölünmüş gerçek bir veriyi kullanacağız. Test setini yeni veriler üzerindeki modelin performansını tahmin etmek için kullanıyoruz, bu da modelin aşırı uyum derecesini belirlememize yardımcı olabilir. .

veri seti

Çözmek istediğimiz problem ikili bir sınıflandırma görevidir, amaç bireylerin sağlığını tahmin etmektir. Veri setinin özellikleri, bireyin sosyal ekonomisini ve yaşam tarzını temsil eder. 0 etiketi kötü sağlık, 1 ise sağlık anlamına gelir. Bu veri seti Hastalık Kontrol ve Önleme Merkezleri tarafından toplanır ve buradan ulaşılabilir.

Veri örneği

Genellikle, bir veri bilimi projesinin çalışmasının% 80'i verilerdeki özellikleri temizlemek, araştırmak ve çıkarmaktır. Ancak, bu makaledeki odak noktamız modelleme üzerinedir (diğer adımlarla ilgili ayrıntılar için bu makaleye bakın).

Bu, dengesiz bir sınıflandırma problemidir, dolayısıyla doğruluk uygun bir ölçü değildir. Bunun yerine, ROC ve AUC'yi kullanacağız. AUC, 0'dan (en kötü) 1'e (en iyi) kadar, rastgele tahmin puanı 0,5 olan bir metriktir. Modeli değerlendirmek için ROC eğrileri de çizebiliriz.

Bu defter, karar ağaçlarının ve rastgele ormanların uygulamalarını içeriyor, ancak burada sadece rastgele ormanlara odaklanıyoruz. Verileri okuduktan sonra, aşağıdaki gibi rastgele bir ormanı başlatabilir ve eğitebiliriz:

Birkaç dakikalık eğitimden sonra, model aşağıdaki gibi test verileri üzerinde tahminler yapmaya hazırdır:

ROC AUC'yi hesaplamak için sınıflandırmayı (tahmin) ve tahmin olasılığını (tahmin_proba) tahmin ederiz. Test setinde tahmin sonuçlarını aldığımızda, ROC AUC'yi hesaplayabiliriz.

sonuç

Son test seti ROC AUC'si 0,87'dir ve sonsuz maksimum derinliğe sahip tek bir karar ağacının son test seti ROC AUC'si 0,67'dir. Eğitim puanlarına bakarsanız, her iki modelin de ROC AUC değeri 1.0'a ulaşmış olması beklenir, çünkü bu modellere eğitim yanıtları verdik ve her ağacın maksimum derinliğini sınırlamadık.

Rastgele orman gereğinden fazla uygun olsa da (eğitim verilerinde test verilerinden daha iyi bir iş çıkarır), test verileri üzerinde tek bir karar ağacından daha iyi genelleme yapar. Rastgele orman, bir karar ağacı ile aynı düşük önyargıyı korurken düşük bir varyansa (faydalara) sahiptir (ayrıca faydalar).

Tek bir karar ağacının (üstte) ve rastgele ormanın (altta) ROC eğrisini de çizebiliriz. Sol üst köşeye yakın eğri, daha iyi bir modeli temsil eder:

Karar ağacı ROC eğrisi

Rastgele orman ROC eğrisi

Rastgele orman, tek bir karar ağacından açıkça daha iyidir.

Kullanabileceğimiz bir başka model tanı ölçüsü, test seti tahmin sonuçlarının bir kafa karışıklığı matrisini çizmektir (ayrıntılar için lütfen not defterine bakın):

Sol üst ve sağ alt köşelerde modelin doğru tahminlerini, sol alt ve sağ üst köşelerde ise modelin yanlış değerlendirdiği öngörüleri gösterir. Modelimizi teşhis etmek ve yeterince iyi performans gösterip göstermediğini ve üretime sokulup konulamayacağını belirlemek için bu tür bir grafiği kullanabiliriz.

Unsur Önemleri

Rastgele ormandaki özellik önemi, özellik üzerinde bölünmüş tüm düğümlerin Gini safsızlık azaltmasının toplamını temsil eder. Random Forest'ın en önemli olarak gördüğü tahmin değişkenlerini bulmaya çalışmak için kullanabiliriz. Özelliğin önemini eğitimli bir rasgele ormandan çıkarabilir ve aşağıda gösterildiği gibi Pandas DataFrame'e koyabilirsiniz:

Bize hangi değişkenlerin sınıflar arasında en ayırt edici olduğunu söyleyerek, özellik önemi bize problem hakkında daha iyi bir fikir verebilir. Örneğin, DIFFWALK Hastanın yürümekte güçlük çekip çekmediğini gösteren önemli bir özelliktir ki bu soru bağlamında da mantıklıdır.

En önemli özelliklerden ek özellikler oluşturarak, özellik mühendisliği için özellik önemi kullanılabilir. Önemsiz özellikleri silerek özellik seçiminde de özellik önemini kullanabiliriz.

Ormandaki ağaçları görselleştirmek

Son olarak, ormanda tek bir karar ağacını görselleştirebiliriz. Bu sefer ağacın derinliğini sınırlamak zorundayız, aksi takdirde görüntüye dönüştürülemeyecek kadar büyük olacaktır. Aşağıdaki resmi yapmak için maksimum derinliği 6 ile sınırladım. Ama bu yine de tam olarak çözemeyeceğimiz büyük bir ağaç üretir! Ancak karar ağaçlarını derinlemesine incelediğimiz için bu modelin çalışma prensibini bu resimden hala kavrayabiliyoruz.

Rastgele ormanda tek karar ağacı Sonraki adım

Bir sonraki adım, rastgele arama yoluyla rastgele ormanı optimize etmek için Scikit-Learn'de RandomizedSearchCV kullanmaktır. Optimizasyon, belirli bir veri kümesinde bir modelin en iyi hiperparametrelerini bulmayı ifade eder. En iyi hiperparametreler farklı veri kümelerine göre değişecektir, bu nedenle her veri kümesinde optimizasyonu ayrı ayrı gerçekleştirmeliyiz Buna model ayarlama da denir.

Bir makine öğrenimi algoritması için en iyi ayarları bulmak olarak model ayarlamayı düşünmeyi seviyorum. Rastgele bir ormanda optimize edebileceğimiz şeyler arasında karar ağaçlarının sayısı, her bir karar ağacının maksimum derinliği, her düğümü bölmek için maksimum özellik sayısı ve bir yaprak düğümünde bulunabilecek maksimum veri noktası sayısı bulunur.

Rastgele orman modeli ile optimize edilmiş rastgele aramanın özel uygulaması için lütfen Jupyter Defterine bakın.

Tam koşu örneği

Aşağıdaki kod, Python'da rastgele çalışan tam bir etkileşimli çalışma örneğini gösteren repl.it kullanılarak oluşturulmuştur. Kodu istediğiniz zaman çalıştırabilir ve değiştirebilirsiniz (paketin yüklenmesi biraz zaman alabilir).

Orijinal metindeki etkileşimli ortamı kontrol etmeniz önerilir. sonuç olarak

Python'da güçlü makine öğrenimi modelleri oluşturmak için temel ilkeleri anlamamız gerekmese de, perde arkasında neler olduğunu anlamayı daha etkili buluyorum. Bu yazıda, sadece Python'da rastgele ormanlar inşa edip kullanmakla kalmadık, aynı zamanda modeli temelden öğrendik.

Önce rastgele bir ormanın temel bileşeni olan tek bir karar ağacına baktık ve sonra yüzlerce karar ağacını rastgele orman adı verilen bir topluluk modelinde birleştirerek tek bir karar ağacının yüksek varyans problemini nasıl çözeceğimizi öğrendik. . Rastgele orman, gözlem verilerinin rastgele örneklenmesi, özelliklerin rastgele örneklenmesi ve her ağacın tahminlerinin ortalamasının alınması olarak özetlenebilir.

Bu makaleden anlaşılan temel kavramlar şunlardır:

  • Karar ağacı: Özdeğerler hakkında bir dizi soru sormaya dayalı kararlar veren sezgisel bir model. Düşük önyargılı ve yüksek varyansa sahip özellikler, eğitim verilerinin aşırı uymasına neden olabilir.
  • Gini safsızlığı: Karar ağacının her düğümü bölerken en aza indirmeye çalıştığı metrik. Düğümdeki örnek dağılımına göre rastgele seçilen bir örneğin yanlış sınıflandırılma olasılığını temsil eder.
  • Bootstrap örnekleme yöntemi: Yerine koyma ile rasgele gözlem örneklemesi.
  • Rastgele özellik alt kümesi: Karar ağacındaki her bir düğümün bölünmesini değerlendirirken, bir dizi rastgele özellik seçin.
  • Rastgele orman: Tahmin yapmak için önyükleme örneklemesini, rastgele özellik alt kümelerini ve ortalama oylamayı kullanan birçok karar ağacından oluşan bir topluluk modeli. Bu bir Torbalama örneğidir.
  • Önyargı sapması değiş tokuşu: Makine öğrenimindeki temel sorun, yüksek esnekliğe (yüksek varyansa) sahip modeli açıklar, yani eğitim verilerini iyi öğrenebilir, ancak yeni verileri genelleme yeteneği ve öğrenme eğitim verilerinin esnekliği (yüksek sapma) pahasına ) Modeller arasındaki denge. Rastgele orman, yeni verileri daha iyi tahmin edebilen tek bir karar ağacının varyansını azaltır.

Umarım bu makale, projelerinizde rastgele ormanları kullanmak için gereken ilkeler konusunda size güven ve anlayış sağlar. Rastgele orman, güçlü bir makine öğrenimi modelidir, ancak bu, onun çalışma mekanizmasını anlamamızı engellememelidir. Model hakkında ne kadar çok şey bilirsek, onu o kadar etkili bir şekilde kullanabilir ve nasıl tahminlerde bulunduğunu açıklayabiliriz.

Her zaman olduğu gibi, yorumlar, geri bildirimler ve yapıcı eleştiriler memnuniyetle karşılanmaktadır. Twitter'da @koehrsen_will'de benimle iletişime geçebilirsiniz. Bu makale ilk olarak, makine öğrenimini araştırmak için açık kaynaklı bir topluluk olan enlight'ta yayınlandı. Enlight ve repl.it'e bu makaledeki kodu barındırdığı için teşekkürler.

Orijinal başlık: Python'da Rastgele Ormanın Uygulanması ve Açıklaması Alt Başlık: Tek bir karar ağacından oluşturarak rastgele ormanı kullanmak ve anlamak için bir kılavuz Orijinal bağlantı: https://towardsdatascience.com/an-implementation-and-explanation -of-the-random-forest-in-python-77bf308a9b76

Çevirmen Profili

Ve Zhonghua, Almanya'da Yazılım Mühendisliği Yüksek Lisansı. Makine öğrenimine olan ilgiden dolayı, yüksek lisans tezi, geleneksel anlamlarını geliştirmek için genetik algoritma fikirlerini kullanmayı seçti. Şu anda Hangzhou'da büyük veri ile ilgili uygulamalar yapıyor. Datapie'ye katılmak THU, BT çalışanları için üzerine düşeni yapmayı ve aynı zamanda benzer düşünen birçok arkadaş edinmeyi umuyor.

- Bitiş -

Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " THU Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.

Zaman serisi verilerini görselleştirmek için Dygraphs'ı nasıl kullanacağınızı öğretin (kod ve bağlantı ile)
önceki
İtalyan polisi IŞİD teröristlerini tutukladı terörist saldırıyı başarıyla engelledi
Sonraki
Wall Street'i açık kaynağa mı zorluyorsunuz? Bu yeni teknoloji koruma fonu yeni bir "para birimi" icat etti
Size k-en yakın komşu algoritmasını kullanarak regresyon uygulamak için pratik bir rehber gönderin (kod ve bağlantı ile)
DeepMind "hafızanın" yapay zekaya entegrasyonunu duyurdu ve genel amaçlı yapay zeka daha da ileri gidiyor mu?
Efsanevi perde çağrısı! Barcelona, 39 yaşında kariyerinin 34. şampiyonluğunu kazandı ve sezon bitiminden sonra resmen emekli oldu.
Bu şehirdeki halka açık bisikletler o kadar iyi ki Mobike bile girmeye cesaret edemiyor!
Çevre koruma dönüşümünü kazanan Gongjing Bölge Komitesinin merkezi grubu, çevre koruma konulu bir öğrenme toplantısı düzenledi.
20.000 hayran çılgın bir savaşa tanık oldu! Serie A takımı 15 dakikada 4 gol attı, 87 yıllık büyülü rekor doğdu
Wolverine 3 sana ne söylemedi
PDF dosyalarından (bağlantıyla) veri dışa aktarmak için Python'u nasıl kullanacağınızı öğretin
GIF-Çinli Kadın Futbolu 2 dakika 2 gol! İki yedek oyuncu attı, Wang Shuang rastgele bir golü kaçırdı
Takviye öğrenmede strateji ağını ve sayısal ağı anlamanıza yardımcı olur (bağlantı)
MIT bilim adamları bir damlacık mikroskobu oluşturuyor
To Top