Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Python'da Dolar Maliyeti Ortalama Stratejinizi Kolayca Geri Test Edin
Python'da Dolar Maliyeti Ortalama Stratejinizi Kolayca Geri Test Edin
Önümüzdeki 20 dakika içinde, Python'da bir dolar maliyet ortalama stratejisi uygulayacağız. Bu strateji, belirli bir varlık veya endeks için belirli bir süre boyunca dolar maliyet ortalamasının performansını değerlendirmenize olanak tanır. Bu stratejiyi uygulamak için backtesting.py adlı bir araç kullanacağız. Backtesting.py, Python'da Vectorbt veya Backtrader gibi diğer kitaplıklardan daha az göz korkutucu olan kullanıcı dostu bir çerçevedir. Python'da yeniyseniz, bu sizin için harika bir seçenek olacaktır.
Uygulayacağımız dolar maliyet ortalama stratejisi nispeten basittir, ancak size onu nasıl genişleteceğinizi de göstereceğim. Stratejimiz, her Pazartesi veya Salı belirli bir varlığın sabit bir dolar tutarında satın alınmasını ve veri bitene kadar bu işlemin tekrarlanmasını içerir. Başlamak için bir terminal açın ve uygulamamız için temiz bir ortam sağlamak üzere yeni bir sanal ortam kurun. Sanal ortamı kurduktan sonra, pip kullanarak geriye dönük test paketini kurun:
pip kurulumu geriye dönük test
Paketi kurduktan sonra Python dosyamıza geçebiliriz. Bazı gerekli modülleri ve verileri içe aktarmamız gerekecek. Geriye dönük testten, geriye dönük test ve strateji modüllerini içe aktarın. Ek olarak, backtesting.test'ten bazı sahte verileri, özellikle de google verilerini içe aktarın. Veri işleme için pandas modülüne de ihtiyacımız olacak.
Şimdi strateji sınıfımızı tanımlayalım. Strateji sınıfından miras alan DCA (Dolar Maliyet Ortalaması) adlı bir sınıf oluşturun. Bu sınıfın içinde, yatırmak istediğimiz sabit dolar tutarını temsil eden, miktar_to_invest adında bir sınıf değişkeni belirleyeceğiz. Başlangıçta, 10 olarak ayarlayın.
Ardından, bu sınıf içinde iki işlev tanımlamamız gerekiyor: __init__ ve next. __init__ işlevi başlatma sırasında çağrılır ve daha sonra ihtiyaç duyabileceğimiz değerleri önceden hesaplamak için kullanılır. Bizim durumumuzda, bize haftanın gününü veren bir gösterge oluşturacağız. Bunu yapmak için backtesting.py tarafından sağlanan self.indicator yöntemini kullanacağız. Göstergemizi self.day_of_week = self.indicator(lambda x: x, self.data.close.s.dt.dayofweek) şeklinde tanımlayabiliriz. Bu gösterge, verilerimiz için haftanın günü değerlerinin bir dizisini (0-6, Pazartesi 0 ve Pazar 6'dır) döndürür.
Şimdi ticaret mantığımızı uyguladığımız bir sonraki fonksiyona geçelim. Bu fonksiyon her veri çubuğu için çağrılır ve mevcut verilere göre karar vermemizi sağlar. Bizim durumumuzda if self.day_of_week == 1: kullanarak haftanın gününün 1'e (Salı) eşit olup olmadığını kontrol edeceğiz. Salı ise, bir satın alma sinyali tetikleyeceğiz. Satın alma emrini gerçekleştirmek için backtesting.py tarafından sağlanan self.buy işlevini kullanacağız. Yatırım_yatırılacak tutarı varlığın mevcut kapanış fiyatına bölerek satın alma emrinin büyüklüğünü hesaplayabiliriz. Tam sayıda hisse satın aldığımızdan emin olmak için, sonucu yuvarlamak için math.floor'u kullanabiliriz.
Kesirli payları ele almak için, varlığı 10 ** -6 gibi küçük bir sayıyla çarparak payları bölebiliriz. Bu, hisseleri daha sonra aynı küçük sayıya bölünerek satın alınan gerçek hisse miktarına dönüştürülebilen mikro hisselere bölecektir.
Son olarak, backtest'i çalıştırmamız ve istatistikleri çıkarmamız gerekiyor. Bunu yapmak için bt.run() işlevini kullanabilir ve sonucu istatistik adı verilen bir değişkene atayabiliriz. Sonuçları bt.plot() kullanarak da çizebiliriz.
Henüz satış mantığını uygulamadığımız için arsa, herhangi bir satış noktası olmayan sürekli bir çizgi olarak görünür. Bunu yakında düzelteceğiz. Ancak bunu yapmadan önce, geriye dönük test sonuçlarından bazı istatistikler çıkaralım.
Bunu yapmak için daha önce tanımladığımız istatistik değişkenini kullanacağız. Toplam getiri, yıllık getiri, maksimum düşüş ve daha fazlası gibi çeşitli istatistikleri yazdırabiliriz.
Ek performans metriklerini keşfetmekle ilgileniyorsanız, daha fazla istatistik eklemekten çekinmeyin.
Şimdi satış mantığını uygulamaya geçelim. Bir dolar maliyeti ortalama stratejisi kullandığımız için, her hafta aynı sabit dolar miktarını satacağız. Bizim durumumuzda Cuma günleri satış yapacağız.
Burada daha önce oluşturduğumuz day_of_week göstergesini kullanarak haftanın gününün 4 (Cuma) olup olmadığını kontrol ediyoruz. Günlerden Cuma ise, daha önce aldığımız aynı dolar tutarını, yatırılacak_tutar'ı mevcut kapanış fiyatına bölerek satarız. Bu, yatırım tutarımıza uygun sayıda hisse satmamızı sağlar.
Şimdi, geriye dönük testi çalıştırdığımızda, arsa üzerinde, pozisyonumuzu sattığımız Cuma günlerini gösteren satış noktaları görmeliyiz.
Al/sat günlerini ayarlamak veya fiyat hareketlerine göre ek koşullar uygulamak gibi bu stratejinin farklı varyasyonlarını denemekten çekinmeyin. Bu çerçeve, stratejinizi gereksinimlerinize göre kolayca genişletmenize ve özelleştirmenize olanak tanır.
Stratejinin nasıl performans gösterdiğini görmek için miktar_to_yatırım değişkenini ayarlamayı ve farklı varlık verilerini keşfetmeyi unutmayın.
Umarım bu, Python'daki backtesting.py kitaplığını kullanarak dolar maliyeti ortalama stratejisini uygulamanıza ve keşfetmenize yardımcı olur. Başka sorunuz varsa bana bildirin!
Backtesting.py'deki Özel Göstergeler - Python Derin İncelemesi
Backtesting.py'deki Özel Göstergeler - Python Derin İncelemesi
Bu videoda, backtesting.py kitaplığında özel göstergeler oluşturma sürecini keşfedeceğiz. Bu özellik, göstergeler oluşturarak ve Python işlevlerini backtesting.py ekosistemiyle uyumlu bir biçime çevirerek herhangi bir ticaret stratejisini kolayca geriye dönük test etmemizi sağlayacaktır.
Gösterge oluşturmanın ayrıntılarına girmeden önce, backtesting.py'nin çoğu yönünü kapsayan YouTube'da ücretsiz olarak sunulan bir kursa göz atmanız önerilir. Bu kurs, kitaplığın üst düzeyde anlaşılmasını sağlayacak ve bu videoda gösterge oluşturmayı keşfederken faydalı olacaktır.
Bu videoda, çeşitli gösterge fikirlerini ele almak için üç farklı örneğe odaklanacağız. İlk örnek, harici bir Python programında oluşturulan sinyalleri kullanmayı ve bunları backtesting.py'ye entegre etmeyi içerir. Bu yaklaşım, halihazırda harici bir kaynaktan alım satım sinyalleriniz olduğunda ve bunları geriye dönük test sürecinize dahil etmek istediğinizde kullanışlıdır.
İkinci örnek, her gösterge için birden çok değer döndürmek üzere pandas-ta kitaplığının kullanımını gösterecektir. Spesifik olarak, Bollinger Bantları göstergesiyle çalışacağız ve basit bir numpy dizisi yerine hem alt hem de üst bantları içeren bir veri çerçevesinin nasıl döndürüleceğini göstereceğiz. Bu örnek, birden çok değere sahip göstergeler oluşturmanın çok yönlülüğünü vurgulayacaktır.
Son olarak, saf Python kullanılarak özel göstergelerin nasıl oluşturulabileceğini göstermek için bir momentum stratejisi kodlayacağız. Bu örnek, gösterge tasarımında sınırsız olanaklara izin vererek, Python programlama kullanarak göstergeler oluşturmanın esnekliğini gösterecektir.
Örnekleri takip etmek için geriye dönük testler, pandalar ve pandalar-ta dahil olmak üzere gerekli kitaplıkların kurulu olduğundan emin olun. Bu kitaplıkları yükledikten sonra, kod örnekleri için bir Python dosyası oluşturun.
Kodun ilk kısmı, backtesting.py kullanılırken gerekli ortak metni ayarlar. Gerekli sınıfları, "geriye dönük test" ve "stratejiyi" içe aktarır ve Google hisse senedi için örnek verileri backtesting.py'den içe aktarır. İçe aktarılan veriler, tarih-saat indeksi ile açık, yüksek, düşük, kapanış ve hacim dahil olmak üzere günlük fiyat verilerini içeren bir pandas veri çerçevesidir.
İlk örnek için, harici bir programda zaten bazı sinyaller oluşturduğunuzu ve bunları backtesting.py'ye aktarmak istediğinizi varsayıyoruz. Bunu göstermek için numpy kullanarak rastgele sinyaller oluşturuyoruz ve bunları Google veri çerçevesine ekliyoruz. Bu sinyaller, Python'da programladığınız herhangi bir göstergeyi temsil edebilir; burada -1, satış sinyalini, 0 işlem yapılmadığını ve 1, satın alma sinyalini temsil eder.
Ardından, daha önce içe aktarılan "Strategy" sınıfından miras alan "SignalStrategy" adlı bir strateji sınıfı tanımlarız. Bu sınıf, sinyallere dayalı olarak alım satım mantığını uygulamaktan sorumlu olacaktır. Sınıf, başlatma işlevini " init " ve "sonraki" işlevini içerir.
" init " işlevinde, bu özel örnekte yapacak pek bir şeyimiz yok ama onu dahil etmek iyi bir uygulamadır. "Sonraki" işlevi, sinyallere dayalı olarak alım satım mantığının uygulanacağı yerdir.
Geriye dönük testi yürütmek için, Google veri çerçevesini ve "SignalStrategy" sınıfını geçen bir arka test sınıfı örneği oluşturuyoruz. Cache değerini de 10.000 olarak ayarladık. Ardından, arka testi çalıştırır ve sonuçları "stats" değişkeninde saklarız. Son olarak, stratejinin performansını görmek için istatistikleri yazdırıyoruz.
Kodun bu noktada çalıştırılması herhangi bir işlem sağlamaz çünkü henüz alım satım mantığını uygulamadık. Ancak "next" fonksiyonu içinde "self.data.signal" kullanarak bize en son sinyal değerini verecek olan sinyal değerlerine ulaşabiliriz.
Alış ve satış mantığını uygulamak için mevcut sinyal değerini ve mevcut pozisyonu kontrol ederiz. Sinyal 1 ise (alış sinyali) ve mevcut pozisyon yoksa "self.buy" kullanarak bir satın alma emri uygularız. Sinyal -1(sat sinyali) ise ve mevcut bir uzun pozisyon varsa, "self.sell" kullanarak bir satış emri uygularız.
Dış Sinyal Stratejisi:
Özel Göstergeler için pandas-ta kullanma:
GOOG gibi yer tutucuları gerçek verilerinizle değiştirmeyi ve stratejileri özel gereksinimlerinize göre özelleştirmeyi unutmayın.
Backtesting.py'de Kayıpları Durdur
Backtesting.py'de Kayıpları Durdur
Bu videoda, "backtesting.py" kütüphanesinde stoploss kavramını keşfedeceğiz. Video, artan karmaşıklık ve derinliğin üç örneğini içerecek ve "backtesting.py" içindeki kayıpları durdurmanın kapsamlı bir şekilde anlaşılmasını sağlayacaktır. Sunucu, "backtesting.py" hakkında önceden bilgi sahibi olduğunu varsayar ve bu ileri düzey konuya dalmadan önce yeni başlayanlar için YouTube'da ücretsiz bir kursu izlemenizi önerir.
Başlamak için bir terminal açın ve "pip install backtesting" komutunu çalıştırarak "backtesting.py" dosyasının kurulu olduğundan emin olun. Bu, gerekli tüm paketleri yükleyecektir. Ardından, yeni bir Python dosyası oluşturun, "example.py" olarak adlandıralım ve gerekli modülleri içe aktarın: "backtesting" den "backtest" ve "strategy" ve "backtesting.test" den "googledale". "googledale", "backtesting.py" ile gelen bir test veri kümesidir.
Ardından, "strateji" sınıfından miras alan "Strats" adlı bir sınıf oluşturarak strateji sınıfını tanımlayın. Gerekli iki işlevi uygulayın: " init " ve "sonraki". Bu noktada, geriye dönük testimizi yapmaya hazırız. "Geri test" işlevini kullanarak yeni bir arka test nesnesi "bt" başlatın. "googledale" verilerini ve az önce tanımladığımız strateji sınıfını iletin. Başlangıç nakit değerini 10.000$ olarak ayarlayın. Son olarak, "bt.run" yöntemini kullanarak arka testi çalıştırın ve sonuçları "bt.plot" kullanarak çizin.
Başlangıçta, strateji sınıfı herhangi bir ticari işlem gerçekleştirmez. Basit bir stop-stop örneği göstermek için bazı temel alım ve satım mantığı ekleyeceğiz. Mevcut bir pozisyonumuz varsa, herhangi bir işlem yapmayacağız. Ancak pozisyonumuz yoksa "self.to_buy" yöntemini kullanarak pozisyonun büyüklüğünü (örn. 1 hisse) belirterek bir satın alma emri veririz. Ek olarak, zararı durdur ve karı alacağız. Zararı durdur mevcut kapanış fiyatının 10 birim altına, kar al mevcut kapanış fiyatının 20 birim üstüne ayarlanacaktır.
Geriye dönük testi çalıştırmak, çok sayıda işlem üretecektir. Bir işlem kapatılır kapatılmaz, zararı durdur veya kârı al tetiklenmediği sürece bir sonraki çubukta yeni bir işlem açılır. "backtesting.py"nin zararları durdurma ve karları nasıl ele aldığını anlamak önemlidir. Aynı barda hem zararı durdur hem de kârı al tetiklendiği durumlarda, kütüphane önce zararı durdurun tetiklendiğini varsayar. Bu davranış, özellikle önemli boşluklar içerebilecek günlük verilerle uğraşırken beklenmedik sonuçlara yol açabilir.
Stop Loss'u daha etkili bir şekilde yönetmek için, strateji sınıfını genişletebilir ve "backtesting.py" tarafından sağlanan "sonraki stratejiyi" kullanabiliriz. "backtesting.lib"den "çaprazlama" ve "sonraki strateji" dahil olmak üzere gerekli modülleri içe aktarın. Yeni strateji sınıfında, temel "strateji" sınıfı yerine "izleyen strateji" sınıfından devralın. Üst sınıfın " init " işlevini "super" kullanarak çağırmak için " init " işlevini geçersiz kılın. Ardından, takip eden bir stoploss değeri ayarlamak için üst sınıftan "set_trailing_stop_loss" işlevini kullanın.
Videonun bir sonraki bölümünde sunum yapan kişi, "izleme stratejisinin" nasıl çalıştığını ve belirli gereksinimler için nasıl özelleştirileceğini daha ayrıntılı olarak açıklıyor. Ancak, bu bölümde, kodumuzdaki "takip etme stratejisinin" kullanılmasına odaklanılmaktadır. Üst sınıfın " init " işlevini çağırarak ve "set_trailing_stop_loss" işlevini kullanarak, arka testimizde takip eden zarar durdurma işlevinden yararlanabiliriz.
Genel olarak video, "backtesting.py" içinde kayıpları durdurma uygulamasının adım adım açıklamasını sağlar. Basit örneklerin yanı sıra, 10'luk bir değeri takip etmek gibi daha gelişmiş kavramları kapsar; bu, zararı durdurmamızın fiyatı 10 birim takip edeceği anlamına gelir.
Artık başlatma fonksiyonumuzu kurduğumuza göre, bir sonraki fonksiyona geçelim. Ticaret mantığımızın büyük bir kısmının uygulanacağı yer burasıdır. Sonraki işlevin içinde, önce super().next() kullanarak üst sınıfın sonraki işlevini çağıracağız. Bu, takip eden zararı durdurma işlevinin diğer ticaret mantığıyla birlikte yürütülmesini sağlar.
Ardından, takip eden stop kaybımızı ayarlamak için bazı kodlar ekleyeceğiz. Açık bir pozisyonumuz olup olmadığını kontrol etmek için koşullu bir ifade kullanacağız (self.position, None değildir). Bir pozisyonumuz varsa, trailing_strategy sınıfı tarafından sağlanan update_trailing_sl yöntemini kullanarak takip eden zarar durdurmayı güncelleyeceğiz. Bu yöntem, mevcut fiyatı bir argüman olarak alır ve zararı durdurmayı buna göre günceller.
Python'da Geri Test Doğrulaması (Rastgelelik Tarafından Kandırıldı)
Python'da Geri Test Doğrulaması (Rastgelelik Tarafından Kandırıldı)
Hepimiz bir ticaret stratejisi oluşturduğumuz, geriye dönük test ettiğimiz ve sonunda uyguladığımızda beklendiği gibi performans göstermediği bir durumdayız. Bu hayal kırıklığının ana nedenlerinden biri, stratejiyi arka testte kullanılan belirli bir tarihsel veri setine fazla uydurmak. Bu videoda, fazla uydurmayla mücadele etmek için bir strateji göstereceğim ve sağlam bir temeli olmayan stratejilere güvenmemenizi veya rastgeleliğe aldanmamanızı sağlayacağım.
Belirli bir örneğe dalalım. Bitcoin'i varlık olarak kullanan basit bir RSI tabanlı strateji üzerinde bir geriye dönük test yaptım. Strateji, RSI yüksek olduğunda satış yapmayı ve RSI düşükken satın almayı içerir. Geriye dönük test sonuçları, test edilen dönemde Bitcoin'in yüzde 15'lik bir düşüş yaşamasına rağmen yaklaşık yüzde üç gibi mütevazı bir getiri gösterdi. İlk bakışta ayı piyasaları için umut verici bir strateji gibi görünebilir.
Bununla birlikte, sürekli olarak karlı fırsatları tespit edip etmediğini veya geriye dönük test sırasında seçilen parametre değerleriyle şanslı olup olmadığını belirlemek için stratejinin performansını çeşitli zaman dilimlerinde incelemek çok önemlidir. Bunu başarmak için, yıl boyunca farklı dönemleri kapsayan 30 günlük çok sayıda geriye dönük test gerçekleştirdim.
Bu geriye dönük testlerden elde edilen getirilerin dağılımını çizerek, stratejinin etkililiği hakkında fikir edinebiliriz. Çizim, her 30 günlük pencereyi, o dönemde elde edilen getirileri temsil eden bir nokta olarak gösterir. Ekteki kutu çizimi medyan getiriyi, çeyrekleri, maksimum ve minimum değerleri gösterir. Arsa incelendiğinde, 30 günlük bir süre boyunca medyan getirinin yüzde -8,5 olduğu ortaya çıkıyor. Ayrıca, -35 ile 15 arasında bir rasgele sayı üreteci kümesinden beklenebilecek sonuçlara benzer şekilde, getirilerin dağılımı rasgele görünüyor. geriye dönük test
Stratejiyi doğrulamak ve fazla uydurmanın etkisini azaltmak için daha geniş bir veri yelpazesi üzerinde geriye dönük testler yapmamız gerekiyor. Bu amaçla, 2022'nin başından 2022'nin sonuna kadar tüm yılı kapsayan birden fazla veri dosyası indirdim. Bu dosyaları, tüm dönem için bir dakikalık mum verilerini içeren bir ana CSV'de birleştirdim.
Doğrulama kodunda, genişletilmiş veri kümesini barındırmak için bazı küçük ayarlamalar yaptım. Temel strateji, RSI tabanlı ticaret mantığına odaklanarak aynı kalır. Ancak, veriler boyunca 30 günlük pencerelerde geriye dönük testler yapmak için bir döngü oluşturdum. Her geriye dönük test, daha sonra daha fazla analiz için bir listeye eklenen getirileri hesaplar.
Toplanan getirileri kullanarak bir kutu grafiği oluşturarak, çeşitli 30 günlük pencerelerde strateji performansının dağılımını görselleştirebiliriz. Bu çizim, getirilerin değişkenliğini ortaya koyar ve stratejinin farklı zaman aralıklarında nasıl performans gösterdiğine dair daha net bir resim sağlar. Bu özel örnekte grafik, neredeyse her ay için ağırlıklı olarak negatif getiriler gösteriyor ve bu da stratejinin tutarlı karlılıktan yoksun olduğunu gösteriyor.
Alım satım stratejilerini doğrulamak ve doğrulamak için kullanılan bu teknikler, seçtiğiniz herhangi bir geriye dönük test çerçevesine uygulanabilir. Sağlanan kod, backtesting.py kitaplığını kullanır, ancak bunu vectorbt veya backtrader gibi diğer kitaplıklara uyarlayabilirsiniz. Temel fikir, stratejinizin farklı zaman dilimlerinde sağlamlık sergilemesini ve yalnızca belirli bir tarihsel veri kümesine fazla uydurmanın bir ürünü olmamasını sağlamaktır.
Bu doğrulama adımlarını izleyerek, gerçekliğe dayanmayan stratejilere güvenme veya rastgele sonuçlara kurban gitme riskini azaltabilirsiniz. Alım satım stratejilerini uygularken bilinçli kararlar vermek için geriye dönük test performansının ötesine geçmek ve stratejinin farklı piyasa koşullarındaki etkinliğini göz önünde bulundurmak önemlidir.
Geriye dönük test sonuçlarını ve getirilerin farklı zaman çerçevelerine dağılımını analiz ettikten sonra, stratejinin performansının temelde rastgele olduğunu keşfettik. Geriye dönük test için kullanılan belirli zaman aralığı dışında tutarlı karlılık sağlamadı. Bu, stratejinin aşırı uyumdan muzdarip olduğunu ve sağlamlıktan yoksun olduğunu gösterir.
Fazla uydurma tuzağına düşmekten kaçınmak ve güvenilir ticaret stratejileri geliştirme şansını artırmak için işte size birkaç öneri:
Yeterli ve Çeşitli Veri Kullanın: Geriye dönük testinizin, çeşitli piyasa koşullarını kapsayacak şekilde önemli miktarda tarihsel veri içerdiğinden emin olun. Bu, daha geniş bir senaryo yelpazesinin yakalanmasına yardımcı olur ve belirli piyasa koşullarına fazla uyum sağlama olasılığını azaltır.
Birden Çok Zaman Çerçevesinde Doğrulayın: Geriye dönük test için yalnızca tek bir zaman dilimine güvenmek yerine, stratejinizi farklı zaman dilimlerinde test edin. Bu, çeşitli piyasa koşulları altındaki performansına ilişkin içgörüler sağlar ve stratejinin tutarlı karlılığa sahip olup olmadığını veya gözlemlenen sonuçların rastgelelikten kaynaklanıp kaynaklanmadığını belirlemeye yardımcı olur.
Numune Dışı Testi Uygulayın: Geçmiş verilerinizin bir kısmını numune dışı test için ayırın. İlk veri kümesi üzerinde birincil geriye dönük testinizi gerçekleştirdikten sonra, modelin daha önce görmediği ayrılmış veriler üzerinde stratejiyi doğrulayın. Bu, stratejinin görünmeyen piyasa koşullarına uyum sağlama yeteneğinin değerlendirilmesine yardımcı olur ve performansının daha gerçekçi bir şekilde değerlendirilmesini sağlar.
Eğri Uydurma Konusunda Dikkat Edin: Stratejiyi geçmiş verilere çok yakından uydurmak için aşırı optimizasyondan veya parametre ayarlamasından kaçının. Belirli veri modellerine göre fazla uyarlanmış stratejilerin, gerçek dünya ticaretinde başarısız olma olasılığı daha yüksektir. Yalnızca geçmiş veriler üzerinde olağanüstü performans peşinde koşmak yerine sağlamlığı hedefleyin.
İleriye Yönelik Analizi Düşünün: Yalnızca statik geriye dönük testlere güvenmek yerine ileriye dönük analizi kullanmayı düşünün. Bu, yeni veriler kullanıma sunuldukça stratejinizin periyodik olarak yeniden optimize edilmesini ve yeniden test edilmesini içerir. Değişen pazar koşullarında performansını iyileştirerek, stratejinizi sürekli olarak uyarlamanıza ve ince ayar yapmanıza olanak tanır.
İstatistiksel Önem Testlerini Kullanın: Stratejinizin performansının önemini değerlendirmek için istatistiksel testler uygulayın. Bu, gözlemlenen sonuçların istatistiksel olarak anlamlı olup olmadığını veya yalnızca şansa bağlı olup olmadığını belirlemeye yardımcı olur. Geriye dönük testte kullanılan yaygın istatistiksel testler arasında t-testleri, önyükleme testleri ve Monte Carlo simülasyonları bulunur.
Bu yönergeleri izleyerek, geçmiş verilere fazlasıyla uyan stratejiler geliştirme riskini azaltabilir ve sağlam ve güvenilir ticaret yaklaşımları oluşturma olasılığını artırabilirsiniz.
Unutmayın, amaç, yalnızca geçmiş veriler üzerinde iyi performans gösteren stratejiler yerine, farklı piyasa koşullarında tutarlı karlılık gösteren ticaret stratejileri geliştirmektir.
Makine Öğrenimi Mühendisleri için Python'a Hızlı Giriş
Makine Öğrenimi Mühendisleri için Python'a Hızlı Giriş
Kurs eğitmeni, tahmine dayalı modelleme kavramını ve endüstrideki önemini tanıtarak başlar. Tahmine dayalı modelleme, bu tahminlerin neden yapıldığına dair bir açıklama sağlamasalar bile, doğru tahminler yapabilen modeller geliştirmeye odaklanır. Eğitmen, dersin özellikle elektronik tablolar veya veritabanları gibi tablo verilerine odaklanacağını vurgular. Amaç, öğrencilerin Python'da makine öğrenimiyle ilgilenen geliştiriciler olmaktan, yeni veri kümeleriyle çalışma, uçtan uca tahmine dayalı modeller geliştirme ve makine öğrenimi görevleri için Python ve SCIPy kitaplığından yararlanma konusunda yetkin hale gelmelerine rehberlik etmektir.
Başlamak için, eğitmen Python sözdiziminde hızlandırılmış bir kurs sağlar. Değişkenler ve atamalar gibi temel kavramları kapsar ve atama için kullanılan "eşittir" işareti ile eşitlik karşılaştırmaları için kullanılan "çift eşittir" işareti arasındaki farkı netleştirir. Eğitmen, Python kodlaması için Jupyter Notebook'un nasıl kullanılacağını gösterir ve yeni bir not defteri oluşturma, kitaplıklar için takma adlar kullanma, hücreleri yürütme ve hücreleri kopyalama veya taşıma gibi gezinme için ipuçları sağlar. Ayrıca not defterlerinin otomatik kaydetme özelliğini ve manuel olarak kaydedilmesini de açıklarlar. Son olarak video, çekirdeğin yürütülmesini durdurma konusuna kısaca değiniyor.
Eğitmen devam ederken, Jupyter Notebook for Python motor navigasyonunda araç çubuğunun nasıl kullanılacağını ve Markdown kullanarak not defterlerine nasıl açıklama ekleneceğini açıklıyor. Video, if-then-else koşulları, for döngüleri ve while döngüleri dahil olmak üzere temel akış denetimi ifadelerini kapsar. Bu ifadeler, Python kodu içinde karar vermeye ve tekrarlamaya izin verir. Eğitmen daha sonra makine öğrenimi için üç önemli veri yapısını tanıtır: demetler, listeler ve sözlükler. Bu veri yapıları, verileri depolamak ve işlemek için verimli yollar sağlar. Ek olarak, video, Python'da sayısal işlemlere olanak sağlayan bir kitaplık olan NumPy hakkında hızlandırılmış bir kurs içerir. Dizi oluşturmayı, verilere erişmeyi ve dizilerle aritmetik işlemler gerçekleştirmeyi kapsar.
Video, veri analizi ve görselleştirme için makine öğreniminde yaygın olarak kullanılan iki temel kitaplık olan Matplotlib ve Pandas'ı tartışmaya devam ediyor. Matplotlib, kullanıcıların veri görselleştirmesini kolaylaştıran çeşitli çizimler ve çizelgeler oluşturmasına olanak tanır. Öte yandan Pandalar, özellikle seri ve veri çerçevesi yapıları aracılığıyla veri işleme ve analizi için veri yapıları ve işlevleri sağlar. Video, makine öğrenimi uygulamalarında en yaygın biçim olan CSV dosyalarını yüklemek için Pandas'ın read_csv işlevinin önemini vurguluyor. Ayrıca, içgörüler elde etmek ve makine öğrenimi görevlerine veri hazırlamak için verileri özetlemek ve çizmek için Pandas işlevlerinin kullanışlılığını vurgular. Python'daki tanımlayıcı istatistiklerden, veri özelliklerini ve doğasını anlamak için çok önemli bir araç olarak bahsedilir.
Video, makine öğrenimi tekniklerini uygulamadan önce veri analizine yardımcı olabilecek belirli veri görselleştirme tekniklerini ele alıyor. Niteliklerin dağılımını gözlemlemenin ve potansiyel aykırı değerleri belirlemenin yolları olarak histogramlar, yoğunluk grafikleri ve kutu grafikleri sunulur. Korelasyon matrisleri ve dağılım grafiği matrisleri, nitelik çiftleri arasındaki ilişkileri belirleme yöntemleri olarak sunulur. Video, verileri makine öğrenimi algoritmalarına hazırlamak için gerekli ön işleme adımları olarak verileri yeniden ölçeklendirmenin, standartlaştırmanın, normalleştirmenin ve ikili hale getirmenin önemini vurguluyor. Sığdır ve dönüştür yöntemi, veri ön işleme için ortak bir yaklaşım olarak açıklanmaktadır.
Tartışılan bir sonraki konu, makine öğreniminde veri ön işleme teknikleridir. Video, iki önemli teknik olarak normalleştirme ve standardizasyonu kapsar. Normalleştirme, özniteliklerin aynı ölçeğe sahip olacak şekilde yeniden ölçeklendirilmesini içerirken, standartlaştırma, özniteliklerin ortalama sıfır ve standart sapma bir olacak şekilde dönüştürülmesini içerir. İkili nitelikler veya kesin değerler oluşturmak için verileri eşikleyen ikilileştirme de açıklanmaktadır. Alakasız veya kısmen ilgisiz özellikler model performansını olumsuz etkileyebileceğinden, özellik seçiminin önemi vurgulanır. Video, özellik seçimine istatistiksel bir yaklaşım olarak tek değişkenli seçimi tanıtıyor ve rastgele orman veya ekstra ağaçlar gibi karar ağacı topluluklarını kullanan yinelemeli özellik eleme ve özellik önem yöntemlerinin kullanımını vurguluyor. Temel bileşen analizi (PCA), doğrusal cebir kullanarak veri setini daha az sayıda boyuta sıkıştırabilen bir veri azaltma tekniği olarak da tartışılmaktadır.
Video, makine öğrenimi algoritmalarının görünmeyen veriler üzerindeki performansını değerlendirmek için yeniden örnekleme yöntemlerinin önemini vurguluyor. Algoritmaların eğitim için kullanılan aynı veri kümesi üzerinde değerlendirilmesine karşı uyarıda bulunur, çünkü bu, fazla uydurmaya ve yeni verilere yetersiz genellemeye yol açabilir. Algoritma performansının güvenilir tahminlerini elde etmenin yolları olarak, tren-test bölme kümeleri, k-katlı çapraz doğrulama, birini dışarıda bırakma çapraz doğrulama ve tekrarlanan rasgele test bölmeleri gibi teknikler açıklanır. Video, makine öğrenimi algoritmaları için sınıflandırma doğruluğu, logaritmik kayıp, eğrinin altındaki alan, karışıklık matrisi ve sınıflandırma raporu gibi çeşitli performans ölçümlerinin tartışılmasıyla sona erer.
Video, makine öğrenimi modelleri tarafından yapılan tahminleri değerlendirmek için kullanılan performans ölçümlerini ayrıntılı olarak ele alıyor. Sınıflandırma doğruluğunu, log kaybını (olasılıkları değerlendirmek için), alıcı işletim karakteristiği (ROC) eğrisi altındaki alanı (ikili sınıflandırma problemleri için), karışıklık matrisini (çoklu sınıflarla model doğruluğunu değerlendirmek için) ve sınıflandırma raporunu (kesinlik sağlayan) kapsar. , hatırlama, F1 puanı ve her sınıf için destek). Ek olarak, video üç yaygın regresyon metriğini açıklıyor: ortalama mutlak hata, ortalama karesel hata ve R-kare. Python kullanılarak bu ölçümlerin nasıl hesaplanacağını göstermek için pratik örnekler gösterilmiştir.
Konuşmacı, belirli bir sorun için hangi makine öğrenimi algoritmalarının iyi performans gösterdiğini belirlemek için yerinde kontrol kavramını tanıtıyor. Spot kontrol, birden çok algoritmayı değerlendirmeyi ve performanslarını karşılaştırmayı içerir. Video, Python'u scikit-learn kitaplığıyla kullanarak, hem doğrusal hem de doğrusal olmayan algoritmalar dahil olmak üzere altı farklı makine öğrenimi modeli için nokta denetimi gösteriyor. Konuşmacı, modellerin stokastik yapısından dolayı sonuçların değişebileceğinin altını çiziyor. Bölüm, regresyon makine öğrenimi modellerine bir girişle sona eriyor ve izleyicileri bu modellerin anında kontrol edilmesiyle ilgili bir sonraki bölüme hazırlıyor.
Ardından konuşmacı, örnek olarak Boston ev fiyatı veri kümesini kullanarak doğrusal ve doğrusal olmayan makine öğrenimi modellerini tanıtıyor. Her modelin noktasal kontrolünün nasıl yapıldığını göstermek için 10 kat çapraz doğrulamalı bir test donanımı kullanılır ve bir performans göstergesi olarak ortalama karesel hata kullanılır (çapraz dosya skor fonksiyonundaki bir tuhaflık nedeniyle ters çevrilir). Girdi değişkenleri ve bunların çıktı değişkeniyle ilişkisi için bir Gauss dağılımı varsayılarak doğrusal regresyon modeli tartışılmaktadır. Model karmaşıklığını en aza indiren doğrusal regresyonun bir modifikasyonu olan Ridge regresyonu da açıklanmaktadır. Konuşmacı, bu aşamada belirli bir kod uygulamasına kapılmak yerine işlem hattını veya süreci anlamanın önemini vurgular.
Video, bir makine öğrenimi sorunu için girdi değişkenlerini anlama ve görselleştirme sürecini araştırıyor. Girdi değişkenlerinin dağılımını anlamak için kutu ve bıyık grafikleri ve histogramlar gibi tek değişkenli grafiklerin kullanılmasını önerir. Çok değişkenli analiz için dağılım grafikleri, girdi değişkenleri arasındaki yapısal ilişkileri belirlemeye ve belirli özellik çiftleri arasındaki yüksek korelasyonları ortaya çıkarmaya yardımcı olabilir. Video ayrıca, model performansını değerlendirmek için 10 kat çapraz doğrulamalı bir test donanımı kullanan değerlendirme sürecini de tartışıyor. En iyi modelin doğruluğunu bağımsız olarak değerlendirmek için bir doğrulama veri seti oluşturmanın önemi vurgulanmıştır. Altı farklı makine öğrenimi modeli değerlendirilir ve tahminler için en doğru olanı seçilir. Tahminleri değerlendirmek için sınıflandırma raporu, karışıklık matrisi ve doğruluk tahmini kullanılır. Son olarak video, regresyon modellerinin karmaşıklığını azaltmak için Lasso ve Elastic Net modellerinin yapısını vurgulayarak düzenlileştirme regresyonuna değiniyor.
Video, Sonar Madenleri ve Kayalar veri setini kullanarak metali kayadan tahmin etmeyi amaçlayan, makine öğreniminde bir ikili sınıflandırma problemini tanıtıyor. Veri kümesi, class özniteliği de dahil olmak üzere 61 özniteliğe sahip 208 örnek içerir. Tanımlayıcı istatistikler analiz edilerek, verilerin aynı aralıkta olmasına rağmen, farklı yöntemlerin verilerin standardize edilmesinin faydalı olabileceğini gösterdiğini gösterir. Histogramlar, yoğunluk çizimleri ve korelasyon görselleştirmeleri gibi tek modlu ve çok modlu veri görselleştirmeleri, verilere ilişkin öngörüler elde etmek için araştırılır. Doğrulama veri seti oluşturulur ve lineer regresyon, lojistik regresyon, lineer diskriminant analizi, sınıflandırma regresyon ağaçları, destek vektör makineleri (SVM), saf Bayes ve k-en yakın komşular (k-en yakın komşular) dahil olmak üzere çeşitli modeller test edilerek model performansı için bir temel oluşturulur ( KNN). Her algoritmanın doğruluğu, 10 kat çapraz doğrulama kullanılarak hesaplanır ve karşılaştırılır.
Aşağıdaki bölümde video, standartlaştırılmış veriler ve ayarlama kullanarak farklı makine öğrenimi algoritmalarının nasıl değerlendirileceğini tartışıyor. Standardizasyon, verilerin dönüştürülmesini içerir, böylece her bir özniteliğin ortalaması 0 ve standart sapması 1'dir, bu da belirli modellerin performansını artırabilir. Dönüştürme işlemi sırasında veri sızıntısını önlemek için, verileri standartlaştıran ve çapraz doğrulama test donanımındaki her kat için model oluşturan bir boru hattı önerilir. Video, eğitim veri setinin standartlaştırılmış kopyasında 10 kat çapraz doğrulama ile bir ızgara araması kullanan k-en yakın komşular (KNN) ve destek vektör makineleri (SVM) için ayarlama tekniklerini gösterir. KNN ve SVM için en uygun konfigürasyonlar belirlenir ve modellerin doğruluğu değerlendirilir. Son olarak video, doğrusal olmayan makine öğrenimi modelleri olarak KNN, karar ağacı regresyonu ve SVM'yi kısaca tartışıyor.
Makine Öğrenimi Mühendisleri için Uygulamalı İstatistikler
Makine Öğrenimi Mühendisleri için Uygulamalı İstatistikler
Videodaki eğitmen istatistik alanını tanıtıyor ve bunun makine öğreniminde tahmine dayalı modelleme problemleriyle çalışmadaki önemini vurguluyor. İstatistiğin, basit özet istatistiklerden başlayarak hipotez testleri ve tahmin istatistiklerine kadar bir dizi teknik sunduğunu açıklarlar. Kurs, Python'da pratik örneklerle, istatistiksel yöntemlerde adım adım bir temel sağlamak için tasarlanmıştır. Makine öğrenimi için istatistiklerin altı temel yönünü kapsar ve gerçek dünya uygulamalarına odaklanarak makine öğrenimi mühendisleri için uygun hale getirir.
Eğitmen, makine öğrenimi ile istatistik arasındaki yakın ilişkiyi vurgular ve programcıların bu kurs aracılığıyla istatistiksel becerilerini geliştirmelerinden fayda sağlayabileceklerini önerir. İstatistik alanını iki kategoriye ayırırlar: tanımlayıcı istatistikler ve çıkarımsal istatistikler. Tanımlayıcı istatistikler, ortalamalar ve grafik gösterimler gibi ölçümleri kullanarak verilerin özetlenmesini ve açıklanmasını içerir. Çıkarımsal istatistikler ise, örnek verilere dayanarak daha büyük bir popülasyon hakkında çıkarımlar yapmak için kullanılır.
Veri kaybı, bozulma ve hataların ele alınması da dahil olmak üzere uygun veri işlemenin önemi de vurgulanmıştır. Ardından video, makine öğrenimi modelleri için veri hazırlamaya dahil olan çeşitli adımları ayrıntılı olarak ele alıyor. Bu, standartlaştırma ve normalleştirme gibi istatistiksel yöntemler kullanılarak veri temizleme, veri seçimi, veri örnekleme ve veri dönüştürmeyi içerir. Veri değerlendirmesi de vurgulanır ve video, bir modelin becerisini tahmin etmek için deneysel tasarım, verileri yeniden örnekleme ve model seçimini tartışır. Video, yeni verileri tahmin etmek için tahmin istatistiklerinin kullanılmasını önerir.
Video, istatistikte kullanılan farklı ölçüm ölçeklerini, yani nominal, sıra, aralık ve oran ölçeklerini açıklar. Her ölçek için geçerli istatistiksel teknikleri ve bunların makine öğreniminde nasıl uygulanabileceğini tartışır. Modellemede belirsizliği anlamanın ve raporlamanın önemi, özellikle örnek kümelerle çalışırken vurgulanır. Video daha sonra çeşitli veri kümelerinde yaygın olarak gözlemlenen normal dağılıma odaklanır. Örnek verilerin nasıl oluşturulacağını ve bir histogram kullanarak bir Gauss dağılımına uygunluğunun görsel olarak nasıl değerlendirileceğini gösterir. Çoğu veri kümesi mükemmel bir Gauss dağılımına sahip olmasa da, genellikle Gauss benzeri özellikler sergiler.
Altta yatan Gauss dağılımını ortaya çıkarmak için verileri bölmenin ayrıntılı bir yolunu seçmenin önemi vurgulanmıştır. Ortalama ve medyan gibi merkezi eğilim ölçüleri, dağılımın yayılmasının ölçüleri olarak varyans ve standart sapma ile birlikte araştırılır. Rastgelelik, makine öğreniminde önemli bir araç olarak tartışılır ve algoritmaların daha sağlam ve doğru olmasına yardımcı olur. Veri hataları ve gürültü de dahil olmak üzere çeşitli rastgelelik kaynakları açıklanmaktadır.
Video, makine öğrenimi algoritmalarının daha iyi performans elde etmek ve daha uygun modeller oluşturmak için genellikle rastgelelikten yararlandığını açıklıyor. Rastgelelik, algoritmaların farklı olasılıkları keşfetmesini ve daha iyi veri eşlemeleri bulmasını sağlar. Kontrol edilebilir ve kontrol edilemeyen rasgelelik kaynakları tartışılır ve bir model içinde rasgeleliği tutarlı hale getirmek için tohum fonksiyonunun kullanımı açıklanır. Video, rasgele sayılar oluşturmak için Python rasgele modülünü kullanan bir örnek sağlar ve numpy kitaplığının sözde rasgele sayı üreteci ile standart kitaplığın sözde rasgele sayı üreteci arasındaki farkı vurgular. Rastgele sayı üretecinin ne zaman tohumlanacağına ilişkin iki durum da, yani veri hazırlama ve veri bölmeleri sırasında tartışılmaktadır.
Verileri tutarlı bir şekilde bölmek ve bir algoritmayı değerlendirirken sözde rasgele sayı üreteçlerini kullanmak vurgulanmaktadır. Video, modelin ölçülen belirsizliği ve algoritmanın performansını içerecek şekilde değerlendirilmesini önerir. Bir algoritmanın birden fazla veri bölünmesi üzerinde değerlendirilmesi, performansının farklı eğitim ve test verileriyle nasıl değiştiğine dair içgörü sağlar. Bir algoritmayı aynı veri bölmelerinde birden çok kez değerlendirmek, performansının kendi başına nasıl değiştiğini anlamanıza yardımcı olur. Video ayrıca büyük sayılar yasasını ve merkezi limit teoremini tanıtarak, daha fazla veriye sahip olmanın modelin performansını iyileştirdiğini ve örneklem boyutu arttıkça ortalamanın dağılımının bir Gauss dağılımına yaklaştığını vurguluyor.
Video, zar atışlarını ve kodu kullanarak merkezi limit teoremini gösterir ve örnek boyutu arttıkça örnek ortalamalarının bir Gauss dağılımına nasıl yaklaştığını gösterir.
Video, makine öğrenimi modellerini değerlendirmenin ve tahminlerindeki belirsizliği anlamanın önemini vurguluyor. Sınıflandırma modellerinin performansını değerlendirmek için yaygın olarak kullanılan doğruluk, kesinlik, hatırlama ve F1 puanı gibi değerlendirme ölçütlerini sunar. Video, doğruluğun tahminlerin genel doğruluğunu ölçtüğünü, kesinliğin tüm pozitif tahminler içindeki gerçek pozitif tahminlerin oranını ölçtüğünü, hatırlamanın tüm gerçek pozitif örneklerdeki gerçek pozitif tahminlerin oranını ölçtüğünü ve F1 puanının kesinlik ile geri çağırmayı bir araya getirdiğini açıklıyor. tek bir metrik. Ayrıca, gerçek pozitif, gerçek negatif, yanlış pozitif ve yanlış negatif tahminlerin sayısını göstererek bir sınıflandırma modelinin performansının daha ayrıntılı bir görünümünü sağlayan bir karışıklık matrisi kavramını tartışır.
Konuşmacı, Python'un scikit-learn kitaplığını kullanarak bu değerlendirme ölçümlerinin nasıl hesaplanacağını gösterir. Gerekli modüllerin nasıl içe aktarılacağını, verilerin eğitim ve test kümelerine nasıl bölüneceğini, bir sınıflandırma modelinin nasıl eğitileceğini, test kümesi üzerinde tahminlerin nasıl yapılacağını ve doğruluk, kesinlik, geri çağırma ve F1 puanı kullanılarak modelin performansının nasıl değerlendirileceğini gösterir. Video, genelleştirme yeteneklerini sağlamak için modellerin görünmeyen veriler üzerinde değerlendirilmesinin önemini vurgulamaktadır.
Ayrıca video, ikili sınıflandırma modelleri için değerlendirme ölçütleri olarak alıcı işletim karakteristiği (ROC) eğrileri ve eğri altındaki alan (AUC) kavramını tanıtır. ROC eğrileri, farklı eşik değerleri boyunca modelin performansının görsel bir temsilini sağlayarak, çeşitli sınıflandırma eşiklerinde gerçek pozitif oranı yanlış pozitif oranına karşı çizer. AUC, ROC eğrisinin altındaki alanı temsil eder ve farklı modellerin performansını karşılaştırmak için tek bir ölçüm sağlar. Video, Python'un scikit-learn kitaplığını kullanarak bir ROC eğrisinin nasıl çizileceğini ve AUC'nin nasıl hesaplanacağını açıklar.
Aşırı uydurma kavramı, bir modelin eğitim verilerinde iyi performans gösterdiği ancak yeni, görünmeyen verilere genelleştiremediği makine öğreniminde yaygın bir sorun olarak tartışılır. Video, bir modelin çok karmaşık hale gelmesi ve genel popülasyonda bulunmayan eğitim verilerine özgü kalıpları öğrenmesi durumunda aşırı uyumun meydana geldiğini açıklıyor. Video, bir modelin eğitim ve test performansını karşılaştırarak fazla uydurmanın nasıl görselleştirilebileceğini gösterir. Bir aşırı uyum modelinin düşük eğitim hatasına, ancak yüksek test hatasına sahip olacağını ve genellemenin zayıf olduğunu gösterir. Video, modelin amaç işlevine bir ceza terimi ekleyerek aşırı uydurmayı azaltmanın yolları olarak sırt regresyonu ve Kement regresyonu gibi düzenlileştirme teknikleri önerir.
Çapraz doğrulama kavramı, makine öğrenimi modellerinin performansını ve genelleştirilmesini değerlendirmek için bir teknik olarak tanıtıldı. Video, çapraz doğrulamanın verileri birden çok alt kümeye ayırmayı, modeli verilerin bir kısmı üzerinde eğitmeyi ve geri kalan kısımda performansını değerlendirmeyi içerdiğini açıklıyor. Bu süreç, eğitim ve test için kullanılan farklı alt kümelerle birçok kez tekrarlanır ve modelin performansının bir tahminini sağlamak için sonuçların ortalaması alınır. Video, Python'un scikit-learn kitaplığı, özellikle K-katlamalı çapraz doğrulama yöntemi kullanılarak çapraz doğrulamanın nasıl gerçekleştirileceğini gösterir.
Ardından video, özellik seçimi kavramını ve makine öğrenimindeki önemini tartışıyor. Özellik seçiminin, modelin performansına katkıda bulunan en alakalı özelliklerin veya değişkenlerin tanımlanmasını içerdiğini açıklar. Video, modelin doğruluğunu artırmak, fazla uydurmayı azaltmak ve yorumlanabilirliği artırmak için bilgilendirici özellikleri seçmenin önemini vurgulamaktadır. Tek değişkenli seçim, özyinelemeli özellik eleme ve özellik önem puanları gibi farklı özellik seçim teknikleri sunar. Video, Python'un scikit-learn kitaplığını kullanarak özellik seçiminin nasıl uygulanacağını gösterir.
Boyut azaltma kavramı, makine öğrenimindeki boyutsallık lanetini ele alan bir teknik olarak da tartışılmaktadır. Video, boyut azaltmanın, ilgili bilgilerin çoğunu korurken bir veri kümesindeki özelliklerin veya değişkenlerin sayısını azaltmayı içerdiğini açıklıyor. Yaygın olarak kullanılan bir boyutluluk azaltma tekniği olarak temel bileşen analizini (PCA) sunar. PCA, verilerdeki maksimum varyansın yönlerini belirleyerek verileri daha düşük boyutlu bir uzaya dönüştürmeyi amaçlar. Video, PCA'nın orijinal özelliklerin doğrusal kombinasyonları olan temel bileşenler adı verilen yeni özellikler oluşturduğunu açıklıyor. Bu temel bileşenler, verilerdeki en önemli bilgileri yakalar ve makine öğrenimi modelleri için girdi olarak kullanılabilir.
Video, Python'un scikit-learn kitaplığını kullanarak PCA'nın nasıl gerçekleştirileceğini gösterir. Gerekli modüllerin nasıl içe aktarılacağını, verilerin standartlaştırılacağını, bir PCA nesnesinin nasıl başlatılacağını, PCA modelinin verilere nasıl uydurulacağını ve verilerin daha düşük boyutlu uzaya nasıl dönüştürüleceğini gösterir. Video ayrıca, açıklanan varyans oranına dayalı olarak tutulacak en uygun temel bileşen sayısının nasıl belirleneceğini de açıklar.
Topluluk öğrenimi kavramı, birden çok bireysel modeli birleştirerek makine öğrenimi modellerinin performansını artırmaya yönelik bir teknik olarak tanıtıldı. Video, topluluk öğreniminin, her bir modelin kendi tahminlerine katkıda bulunduğu ve nihai tahminin bir oylama veya ortalama alma mekanizmasına göre belirlendiği kalabalıkların bilgeliğinden yararlandığını açıklıyor. Video, iki popüler toplu öğrenme yöntemini tartışıyor: torbalama ve hızlandırma. Paketleme, birden çok modeli verilerin farklı alt kümeleri üzerinde eğitmeyi ve tahminlerini toplamayı içerirken, artırma, her modelin önceki modeller tarafından yanlış sınıflandırılan örneklere daha fazla önem vererek sırayla eğitim modellerine odaklanır.
Video, Python'un scikit-learn kitaplığını kullanarak topluluk öğreniminin nasıl uygulanacağını gösterir. Torbalama ve hızlandırma için gerekli modüllerin nasıl içe aktarılacağını, topluluk modellerinin nasıl başlatılacağını, verilere uydurulacağını ve topluluk modellerini kullanarak tahminlerin nasıl yapılacağını gösterir. Video, topluluk öğreniminin genellikle makine öğrenimi modellerinin genel performansını ve sağlamlığını iyileştirebileceğini vurgular.
Son olarak video, derin öğrenme ve doğal dil işleme (NLP) gibi makine öğrenimindeki ileri düzey konulara kısaca değiniyor. Derin öğrenmenin, verilerdeki karmaşık kalıpları öğrenmek için çok katmanlı derin sinir ağlarını eğitmeyi içerdiğinden bahseder. NLP, insan dilini anlamak ve işlemek için modeller ve teknikler geliştirmeye odaklanarak metin sınıflandırması, duygu analizi ve makine çevirisi gibi uygulamaları mümkün kılar. Video, makine öğreniminin çok sayıda uygulama ve daha fazla keşif ve öğrenme fırsatı içeren geniş ve hızla gelişen bir alan olduğunu vurgulayarak sona eriyor.
Video, model değerlendirme, fazla uydurma, düzenleme, çapraz doğrulama, özellik seçimi, boyut azaltma, topluluk öğrenimi ve derin öğrenmeye ve NLP'ye giriş dahil olmak üzere makine öğrenimindeki temel kavram ve tekniklere kapsamlı bir genel bakış sağlar. Python ve scikit-learn kitaplığının kullanıldığı pratik uygulamaları göstererek, onu yeni başlayanlar ve makine öğrenimi anlayışlarını geliştirmek isteyenler için değerli bir kaynak haline getiriyor.
Makine Öğrenimi Mühendisleri için Uygulamalı Doğrusal Cebir
Makine Öğrenimi Mühendisleri için Uygulamalı Doğrusal Cebir
Video, makine öğrenimi mühendisleri için doğrusal cebiri öğrenmenin önemini vurguluyor çünkü makine öğreniminde gerekli olan matematik ve istatistiği anlamak için temel bir yapı taşı görevi görüyor. Doğrusal cebir hakkında daha derin bir anlayışa sahip olmak, uygulayıcılara makine öğrenimi yöntemlerinin nasıl çalıştığına dair daha iyi bir sezgi sağlayarak, algoritmaları özelleştirmelerine ve yenilerini geliştirmelerine olanak tanır.
Ders, matrisler ve vektörler üzerindeki işlemleri göstermek için somut örnekler ve veri yapıları kullanarak doğrusal cebirin temellerini öğretmek için yukarıdan aşağıya bir yaklaşım benimser. Doğrusal cebir, matrislerin ve vektörlerin matematiği olarak tanımlanır, veri işleme için bir dil sağlar ve bu veri yapıları üzerindeki işlemler yoluyla yeni sütunların veya sayı dizilerinin oluşturulmasına izin verir. Başlangıçta 1800'lerin sonlarında doğrusal denklem sistemlerini çözmek için geliştirilen doğrusal cebir, makine öğrenimini anlamak için temel bir ön koşul haline geldi.
Konuşmacı, lineer cebirin bilgisayarlarda uygulanmasını içeren sayısal lineer cebir kavramını tanıtır. Bu, doğrusal cebir işlemlerinin uygulanmasını ve dijital bilgisayarlarda sınırlı kayan nokta hassasiyetiyle çalışırken ortaya çıkan zorlukların ele alınmasını içerir. Sayısal doğrusal cebir, makine öğreniminde, özellikle doğrusal cebir hesaplamalarını verimli bir şekilde gerçekleştirmek için ağırlıklı olarak grafik işlem birimlerine (GPU'lar) dayanan derin öğrenme algoritmalarında çok önemli bir rol oynar. Temelleri Fortran tabanlı kitaplıklar olan çeşitli açık kaynaklı sayısal doğrusal cebir kitaplıkları, genellikle Python gibi programlama dilleriyle bağlantılı olarak doğrusal cebir işlemlerini hesaplamak için yaygın olarak kullanılır.
Doğrusal cebirin istatistikteki önemi, özellikle çok değişkenli istatistiksel analizde, temel bileşen analizinde ve doğrusal regresyon problemlerini çözmede vurgulanır. Video ayrıca, Albert Einstein'ın tensörleri kullanan görelilik teorisi ve bir tür lineer cebir olan tensör hesabı gibi örneklerle, sinyal işleme, bilgisayar grafikleri ve hatta fizik gibi alanlarda lineer cebirin geniş uygulama yelpazesinden bahsediyor.
Video, lineer cebirin makine öğrenimi görevlerindeki pratik uygulamasını daha ayrıntılı olarak araştırıyor. Görüntüleri manipüle etmek için kırpma, ölçekleme ve yamultma gibi doğrusal cebir işlemlerini kullanma kavramını tanıtır ve bu bağlamda doğrusal cebirin notasyonu ve işlemlerinin nasıl kullanılabileceğini gösterir. Ayrıca video, kategorik değişkenler için one-hot kodlama adı verilen popüler kodlama tekniğini açıklıyor. Makine öğreniminde kullanılan ana veri yapısı, N-boyutlu diziler veya ND diziler, Python'daki NumPy kitaplığının bu dizileri oluşturmak ve işlemek için güçlü bir araç olarak ele alınmasıyla tanıtıldı. Video, mevcut dizilerden yeni dizilerin oluşturulmasını sağlayan v-stack ve yatay yığınlama gibi önemli işlevleri kapsar.
Makine öğrenimi verilerini temsil etmek için yaygın olarak kullanılan NumPy dizilerindeki verilerin işlenmesi ve bunlara erişilmesi açıklanmaktadır. Video, dizi işlevini kullanarak tek boyutlu listelerin dizilere nasıl dönüştürüleceğini ve liste listelerini kullanarak iki boyutlu veri dizilerinin nasıl oluşturulacağını gösterir. Ayrıca, dilimleme ve negatif indeksleme için kolon operatörünün kullanımı da dahil olmak üzere NumPy dizilerindeki indeksleme ve dilimleme işlemlerini kapsar. Makine öğreniminde girdi ve çıktı değişkenlerini belirlemede dilimlemenin önemi vurgulanmıştır.
Videoda, makine öğreniminde çok boyutlu veri kümeleriyle çalışma teknikleri ele alınmaktadır. Tek boyutlu dilimleme ile başlar ve eğitim ve test için verileri girdi ve çıktı değerlerine ayırmanın yanı sıra iki boyutlu dilimlemeye doğru ilerler. Bir veya daha fazla zaman adımından ve özellikten birden çok örnek gerektiren algoritmalar için tek boyutlu dizilerin tek sütunlu iki boyutlu dizilere nasıl yeniden şekillendirileceği ve iki boyutlu verilerin üç boyutlu dizilere nasıl dönüştürüleceği açıklanarak dizinin yeniden şekillendirilmesi ele alınmaktadır. Farklı boyutlardaki dizilerin aritmetik işlemlerde kullanılmasına olanak sağlayan ve farklı boyutlardaki veri setlerinin etkin bir şekilde işlenmesini sağlayan dizi yayını kavramı tanıtıldı.
Video ayrıca NumPy'deki dizi aritmetiğinin sınırlamalarına, özellikle de aritmetik işlemlerin yalnızca aynı boyutlara ve aynı boyuta sahip boyutlara sahip dizilerde gerçekleştirilebileceğine değiniyor. Bununla birlikte, bu sınırlama, NumPy'nin, daha küçük diziyi son eşleşmeyen boyut boyunca kopyalayan ve farklı şekil ve boyutlardaki diziler arasında aritmetik sağlayan yerleşik yayın özelliği ile aşılır. Video, skaler ve tek boyutlu diziler, iki boyutlu dizide skaler ve iki boyutlu dizide tek boyutlu dizi dahil olmak üzere üç yayın örneği sağlar. Yayının, aritmetiğin ancak dizilerdeki her bir boyutun şekli eşit olduğunda veya bunlardan birinin boyut boyutu bir olduğunda yapılabileceğini belirten katı bir kural izlediğine dikkat çekiliyor.
Konuşmacı devam ederken, skaler adı verilen bir veya daha fazla değerin demetleri olan vektörler kavramını tanıtıyor. Vektörler genellikle "v" gibi küçük harfler kullanılarak temsil edilir ve "n"nin boyutların sayısını temsil ettiği n boyutlu bir uzayda noktalar veya koordinatlar olarak görülebilir. Python'da NumPy dizileri olarak vektörlerin oluşturulması anlatılmaktadır. Video aynı zamanda, eşit uzunluktaki vektörler için eleman bazında gerçekleştirilen ve aynı uzunlukta yeni bir vektörle sonuçlanan vektör toplama ve çıkarma gibi vektör aritmetik işlemlerini de kapsar. Ayrıca konuşmacı, vektörlerin büyüklüklerini ölçeklendirmek için skalerlerle nasıl çarpılabileceğini açıklıyor ve bu işlemlerin Python'da NumPy dizilerini kullanarak nasıl gerçekleştirileceğini gösteriyor. Bir skaler veren ve bir vektörün ağırlıklı toplamını hesaplamak için kullanılabilen iki vektörün iç çarpımı da tartışılmaktadır.
Daha sonra odak, vektör normlarına ve bunların makine öğrenimindeki önemine kayar. Vektör normları, bir vektörün boyutunu veya uzunluğunu ifade eder ve vektörün vektör uzayının orijinine olan mesafesini özetleyen bir ölçü kullanılarak hesaplanır. Tümü sıfır değerleri olan bir vektör dışında, vektör normlarının her zaman pozitif olduğu vurgulanır. Video, makine öğreniminde kullanılan dört yaygın vektör normu hesaplamasını tanıtıyor. L1 normu vektörü ile başlar, ardından L2 normu (Öklid normu) ve maksimum norm gelir. Bu bölüm ayrıca matrisleri tanımlar ve bunların Python'da nasıl değiştirileceğini açıklar. Matris-matris çarpımı (nokta çarpımı), matris-vektör çarpımı ve skaler çarpımı içeren matris aritmetiği tartışılır. Bir matris, tipik olarak "A" gibi büyük harflerle temsil edilen, bir veya daha fazla sütun ve bir veya daha fazla satır içeren iki boyutlu bir skaler dizisi olarak tanımlanır.
Ardından, makine öğrenimi için matris işlemleri kavramı tanıtılır. Buna matris çarpımı, matris bölümü ve matris skaler çarpımı dahildir. Matris nokta çarpımı olarak da bilinen matris çarpımı, birinci matristeki sütun sayısının ikinci matristeki satır sayısına eşit olmasını gerektirir. Video, NumPy'deki nokta işlevinin bu işlemi gerçekleştirmek için kullanılabileceğinden bahsediyor. Orijinal matrisin satır ve sütun sayısını ters çevirerek yeni bir matrisin oluşturulduğu matris devrik kavramı da açıklanmaktadır. Son olarak, orijinal matrisle çarpıldığında bir birim matrisle sonuçlanan başka bir matrisin bulunmasını içeren matris ters çevirme işlemi tartışılmaktadır.
Matris ters çevirme tartışmasından devam eden video, bu kavramı daha da araştırıyor. Bir matrisin ters çevrilmesi, matrisin yanında negatif 1 üst simgesi ile gösterilir. Video, matris ters çevirmenin verimli sayısal yöntemler bulmayı içerdiğini açıklıyor. Köşegen elemanların toplamını hesaplayan ve NumPy'deki izleme işlevi kullanılarak hesaplanabilen bir kare matrisin izleme işlemi tanıtılır. Bir kare matrisin determinantı, matrisin hacminin skaler gösterimi olarak tanımlanır ve NumPy'deki det işlevi kullanılarak da hesaplanabilir. Matristeki doğrusal olarak bağımsız satırların veya sütunların sayısını tahmin eden ve genellikle tekil değer ayrışımı kullanılarak hesaplanan bir matrisin sıralamasından kısaca bahsedilir. Son olarak, seyrek matris kavramı açıklanır ve ağırlıklı olarak sıfır değerleri içerdikleri ve temsil edilmesi ve üzerinde çalışılması hesaplama açısından pahalı olabilir.
Video daha sonra, birincil olarak sıfır değerlerinden oluşan ve çoğunlukla sıfır olmayan değerlere sahip yoğun matrislerden farklı olan seyrek matrisleri derinlemesine inceler. Seyreklik, matristeki toplam öğe sayısına bölünen sıfır değerlerinin sayısı olan seyreklik puanı hesaplanarak ölçülür. Video, seyreklikle ilişkili iki ana sorunu vurgulamaktadır: uzay karmaşıklığı ve zaman karmaşıklığı. Seyrek matrisleri temsil etmenin ve bunlarla çalışmanın hesaplama açısından pahalı olabileceğine dikkat edilmelidir.
Bu zorlukların üstesinden gelmek için video, Scipy'nin seyrek matrisler oluşturmak ve değiştirmek için araçlar sağladığından bahseder. Ek olarak, NumPy ve Scipy'deki birçok lineer cebir işlevinin seyrek matrisler üzerinde çalışabileceğini ve seyrek veriler üzerinde verimli hesaplamalar ve işlemler sağlayabileceğini vurgular.
Seyrek matrisler, veri gözlemleri ve veri hazırlama için uygulamalı makine öğreniminde yaygın olarak kullanılır. Seyreklikleri, önemli sayıda sıfır değeri olan büyük veri kümelerinin daha verimli depolanmasına ve işlenmesine olanak tanır. Seyrek yapıdan yararlanan makine öğrenimi algoritmaları, azaltılmış bellek kullanımından ve daha hızlı hesaplamalardan yararlanabilir.
Devam edecek olursak, video doğrusal cebirde yaygın olarak kullanılan farklı matris türlerini, özellikle de makine öğrenimiyle ilgili olanları tartışıyor. Satır sayısının sütun sayısına eşit olduğu kare matrisler tanıtılır. Farklı satır ve sütun sayılarına sahip olan dikdörtgen matrislerden de bahsedilmektedir. Video, aynı satır ve sütun indislerine sahip elemanlardan oluşan bir kare matrisin ana köşegenini açıklıyor. Satır veya sütun sayısı olarak tanımlanan bir kare matrisin sırası da ele alınır.
Ayrıca video, devriklerine eşit olan kare matrisler olan simetrik matrisleri tanıtır. Üst ve alt üçgen matrisler dahil olmak üzere üçgen matrisler açıklanır. Köşegen olmayan tüm elemanların sıfır olduğu köşegen matrisler de tartışılmaktadır. Ana diyagonalde birler ve başka yerlerde sıfırlar olan kare matrisler olan kimlik matrisleri, çarpımsal kimlikler olarak rolleri bağlamında açıklanır. İki vektörün iç çarpımı sıfıra eşit olduğunda oluşan ortogonal matrisler de tanıtılır.
Video ortogonal matrisler ve tensörleri tartışarak ilerliyor. Ortogonal matris, sütunların ve satırların ortogonal birim vektörler olduğu belirli bir kare matris türüdür. Bu matrisler, terslerini hesaplamak için hesaplama açısından verimli ve kararlıdır, bu da onları derin öğrenme modelleri dahil olmak üzere çeşitli uygulamalarda kullanışlı kılar. Video ayrıca, TensorFlow'da tensörlerin temel bir veri yapısı ve vektörler ile matrislerin bir genellemesi olduğundan bahseder. Tensörler çok boyutlu diziler olarak temsil edilir ve Python'da matrislere benzer şekilde n boyutlu diziler kullanılarak manipüle edilebilir. Video, toplama ve çıkarma gibi öğe bazında tensör işlemlerinin tensörler, matrisler ve vektörler üzerinde gerçekleştirilebileceğini vurgulayarak daha yüksek boyutlar için bir sezgi sağlar.
Ardından video, bir matrisi bileşenlerine ayırma yöntemi olan matris ayrıştırmasını tanıtıyor. Matris ayrışımı, karmaşık matris işlemlerini basitleştirir ve verimli hesaplamalar sağlar. Yaygın olarak kullanılan iki matris ayrıştırma tekniği ele alınmaktadır: kare matrisler için LU (Alt-Üst) ayrıştırma ve dikdörtgen matrisler için QR (QR-faktoring) ayrıştırma.
LU ayrışımı, lineer regresyon problemleri bağlamında lineer denklemleri basitleştirebilir ve bir matrisin determinantı ve tersi gibi hesaplamaları kolaylaştırabilir. QR ayrışımı, lineer denklem sistemlerini çözmede uygulamalara sahiptir. Her iki ayrıştırma yöntemi de Python'daki NumPy paketindeki yerleşik işlevler kullanılarak uygulanabilir ve çeşitli doğrusal cebir problemleri için verimli ve güvenilir çözümler sunar.
Ek olarak video, özellikle simetrik ve pozitif tanımlı matrisler için kullanılan Cholesky ayrıştırmasını tartışıyor. Cholesky ayrışımı, daha düşük bir üçgen matris ile temsil edilir ve simetrik matrisleri ayrıştırmak için LU ayrışımından neredeyse iki kat daha verimli kabul edilir.
Video, karmaşık işlemleri basitleştirmek için Eigen ayrışımı da dahil olmak üzere matris ayrıştırma yöntemlerinin kullanıldığından kısaca bahseder. Öz ayrıştırma, bir matrisi özvektörlerine ve özdeğerlerine ayrıştırır. Özvektörler yönleri temsil eden katsayılardır, özdeğerler ise skalerdir. Hem özvektörler hem de özdeğerler, boyut azaltma ve karmaşık matris işlemleri gerçekleştirme gibi pratik uygulamalara sahiptir.
Son olarak video, tekil değer ayrıştırma (SVD) kavramına ve bunun makine öğrenimindeki uygulamalarına değiniyor. SVD, makine öğreniminde çeşitli matris işlemlerinde ve veri azaltma yöntemlerinde kullanılır. En küçük kareler doğrusal regresyon, görüntü sıkıştırma ve gürültü giderme verileri gibi hesaplamalarda çok önemli bir rol oynar.
Video, SVD'nin bir matrisin üç ayrı matrise ayrıştırılmasına izin verdiğini açıklıyor: U, Σ ve V. U matrisi sol tekil vektörleri içerir, Σ tekil değerleri içeren köşegen bir matristir ve V sağ tekil vektörleri içerir. Orijinal matrisi bu bileşenlerden yeniden yapılandırarak, boyutsallığını azaltırken orijinal verilere bir yaklaşım elde edilebilir.
SVD'nin ana uygulamalarından biri boyut indirgemedir. En önemli tekil değerlerin bir alt kümesini ve bunlara karşılık gelen tekil vektörleri seçerek, önemli bilgileri kaybetmeden verileri daha düşük boyutlu bir alanda temsil etmek mümkündür. Bu teknik, daha verimli depolama ve hesaplamaya izin verdiği için, verilerin yüksek boyutluluğa sahip olduğu durumlarda özellikle yararlıdır.
Video, SVD'nin gizli anlamsal analiz (LSA) veya gizli anlamsal indeksleme (LSI) adı verilen bir teknik kullanılarak doğal dil işlemede başarıyla uygulandığını vurgular. LSA, metin belgelerini matrisler olarak temsil ederek ve SVD gerçekleştirerek, belgelerin altında yatan semantik yapıyı yakalayabilir ve belge benzerliği ve konu modelleme gibi görevleri etkinleştirebilir.
Ayrıca video, bir matrisin boyutsallığını azaltma yeteneğini doğrudan uygulayan kesik SVD sınıfını tanıtır. Kesilmiş SVD ile, en önemli bilgileri korurken orijinal matrisi daha düşük boyutlu bir gösterime dönüştürmek mümkün hale gelir. Bu teknik, daha verimli işleme ve analize izin verdiği için özellikle büyük veri kümeleriyle uğraşırken faydalıdır.
Özet olarak video, makine öğrenimi için doğrusal cebir ile ilgili çeşitli konuları ele aldı. Makine öğrenimi bağlamında hesabı ve istatistiği anlamak için temel bir yapı taşı olarak doğrusal cebiri öğrenmenin önemini vurgulamıştır. Videoda, algoritmaların özelleştirilmesi ve geliştirilmesi, sayısal doğrusal cebir, istatistiksel analiz ve sinyal işleme ve bilgisayar grafikleri gibi çeşitli diğer alanlar gibi makine öğrenimindeki doğrusal cebir uygulamaları tartışıldı.
Ayrıca video, vektörler, matrisler, matris işlemleri, vektör normları, matris ayrıştırma teknikleri ve seyrek matrisler dahil olmak üzere doğrusal cebirdeki temel kavramları araştırdı. Bu kavramların makine öğreniminde nasıl kullanıldığı açıklanmış ve pratik uygulamalarına ilişkin bilgiler sağlanmıştır.
Lineer cebiri anlayan makine öğrenimi uygulayıcıları, makine öğrenimi algoritmalarının altında yatan matematiksel temeller hakkında daha derin bir sezgi elde edebilir ve bunları gerçek dünya problemlerine etkili bir şekilde uygulayabilir. Doğrusal cebir, verimli ve etkili makine öğrenimi çözümleri sağlayarak veri işleme, boyut azaltma ve optimizasyon için güçlü bir araç olarak hizmet eder.
Makine Öğrenimi Mühendisleri için XGBoost'a Eksiksiz Bir Giriş
Makine Öğrenimi Mühendisleri için XGBoost'a Eksiksiz Bir Giriş
Videoda eğitmen, makine öğrenimi mühendisleri için XGBoost'a kapsamlı bir giriş sağlar. XGBoost'un, son derece doğru sınıflandırma ve regresyon modellerini hızlı bir şekilde oluşturma becerisiyle bilinen açık kaynaklı bir makine öğrenimi kitaplığı olduğunu açıklıyorlar. Özellikle yüksek düzeyde yapılandırılmış veri kümeleriyle uğraşırken, gerçek dünya modelleri oluşturmak için en iyi seçenek olarak popülerlik kazanmıştır. XGBoost, Taiki Chen tarafından yazılmıştır ve hızlı ve verimli model oluşturmaya olanak tanıyan gradyan artırma karar ağaçları tekniğine dayanmaktadır.
Eğitmen, XGBoost'un Python ve scikit-learn uygulamaları dahil olmak üzere birden çok arabirimi desteklediğini vurgular. Veri yüklemek ve model oluşturmak için çeşitli modülleri sergileyen XGBoost'un bir tanıtımını yapmaya devam ediyorlar.
Ardından video, bir XGBoost modelini eğitmek için veri kümesini hazırlamaya odaklanır. Eğitmen, verilerin eğitim ve test kümelerine ayrılmasının önemini vurgular. Hedef değişkeni bir ikili sınıflandırma problemi olarak tanımlarlar ve XGBoost modeli için gerekli hiperparametreleri ayarlama sürecini açıklarlar. Model, eğitim verileri üzerinde eğitildikten sonra, doğruluk puanını bir metrik olarak kullanarak test verileri üzerindeki doğruluğunu değerlendirir.
Eğitmen, XGBoost'un daha iyi anlaşılmasını sağlamak için gradyan artırma kavramını ve bunun geleneksel makine öğrenimi modellerinin daha geniş kategorisindeki rolünü derinlemesine araştırır. Degrade artırmanın, daha doğru bir model oluşturmak için zayıf bir modeli aynı türdeki diğer modellerle birleştiren bir teknik olduğunu açıklıyorlar. Bu süreçte, birbirini takip eden her ağaç, bir önceki ağacın tahmin artıkları için inşa edilir. Eğitmen, verilen koşullara dayalı olarak olası karar çözümlerinin grafiksel bir temsilini sağladıkları için karar ağaçlarının gradyan artırmada kullanıldığını vurgular. Ayrıca, bir karar ağacı tasarlamanın, potansiyel çözümleri etkili bir şekilde belirlemek için iyi belgelenmiş bir düşünce süreci gerektirdiğinden de bahsediyorlar.
Video, özyinelemeli ikili bölmeyi kullanarak ikili karar ağaçlarının oluşturulmasını daha da inceliyor. Bu süreç, tahmin edilen değerlerin gerçek değerlere yakınlığını ölçen bir maliyet fonksiyonunu en aza indirmek için tüm girdi değişkenlerinin ve ayrım noktalarının açgözlü bir şekilde değerlendirilmesini içerir. Eğitmen, en düşük maliyetli bölmenin seçildiğini ve ortaya çıkan grupların yinelemeli olarak alt bölümlere ayrılabileceğini açıklar. Her adımda en iyi kararı vermeye odaklandığı için kullanılan algoritmanın açgözlü olduğunu vurguluyorlar. Bununla birlikte, daha iyi anlaşılabilirlik sağlamak ve verilerin fazla uydurma riskini azaltmak için daha az bölmeli karar ağaçlarına sahip olunması tercih edilir. Eğitmen, XGBoost'un, her bir ağacın maksimum derinliğini sınırlamak ve alakasız dalları budamak gibi aşırı uyumu önlemek için mekanizmalar sağladığını vurgular. Ek olarak, etiket kodlamayı kapsar ve scikit-learn kullanarak iris veri setinin yüklenmesini gösterirler.
Devamında videoda hedef etiketin etiket kodlayıcı yöntemi kullanılarak sayısal bir değişken olarak kodlanması işlemi anlatılmaktadır. Verileri eğitim ve test veri kümelerine böldükten sonra eğitmen, XGBoost sınıflandırıcısını eğitim verileri üzerinde tanımlar ve eğitir. Ardından, test veri kümesi üzerinde tahminler yapmak için eğitilmiş modeli kullanırlar ve %90'lık bir doğruluk elde ederler. Topluluk öğrenimi kavramı, tahmin doğruluğunu iyileştirmek ve sonuçta öğrenme algoritmasının verimliliğini artırmak için birden çok modeli birleştirme yöntemi olarak tanıtıldı. Eğitmen, optimal sonuçlara ulaşmak için sınıflandırma veya regresyon problemlerinde doğru modeli seçmenin önemini vurgular.
Video, makine öğrenimi modellerinde yanlılık ve varyans kavramını derinlemesine inceliyor ve ikisi arasında bir dengeye duyulan ihtiyacı vurguluyor. Topluluk öğrenimi, daha karmaşık modeller oluşturmak için zayıf öğrenen gruplarını birleştirerek bu dengeyi sağlamaya yönelik bir teknik olarak sunulur. Torbalama ve artırma olmak üzere iki topluluk tekniği tanıtılır. Torbalama, karar ağaçlarını eğitmek için veri alt kümeleri oluşturarak ve yüksek varyans ve düşük yanlılığa sahip bir modeller topluluğu oluşturarak varyansı azaltmayı amaçlar. Boosting ise, önceki modeller tarafından yapılan hataların düzeltilmesine izin vererek, karar ağaçları ile sıralı öğrenme modellerini içerir. Eğitmen, gradyan artırmanın, regresyon ağaçları biçimindeki zayıf öğrenicileri kullanarak türevlenebilir bir kayıp fonksiyonunu optimize eden özel bir artırma türü olduğunun altını çizer.
Video, gradyan artırma kavramını üç adımlı sürecini özetleyerek ayrıntılı olarak açıklıyor. İlk adım, kaybı en aza indirmek için yinelemeli olarak zayıf öğrenicileri (örneğin, karar ağaçları) eklemeyi içerir. İkinci adım, ağaçların sıralı olarak eklenmesidir ve son adım, daha fazla yineleme yoluyla model hatasını azaltmaya odaklanır. Süreci göstermek için video, verileri bölümlere ayırmak için k-katlı çapraz doğrulama kullanımını gösterir. XGBoost aracılığıyla her kat için puanlar alınır. Eğitmen, zayıf öğrenenler olarak karar ağaçlarını seçer ve fazla uydurmayı önlemek için sığ bir derinlik sağlar. Son olarak, bir kayıp işlevi, makine öğrenimi modelinin verilere ne kadar iyi uyduğunun bir ölçüsü olarak tanımlanır.
Kayıp işlevini optimize etmeyi, zayıf öğrenicileri (genellikle karar ağaçlarını) kullanmayı ve çoklu zayıf öğrenicileri toplu öğrenme aracılığıyla eklemeli bir şekilde birleştirmeyi içeren gradyan artırmanın temel adımları açıklanmaktadır. Video ayrıca XGBoost'u kullanmanın eksik değerleri işleme, modelleri diske kaydetme ve erken durdurmayı kullanma gibi pratik yönlerini de kapsar. XGBoost'un çeşitli kullanım durumlarını göstermek için Python kodunun kullanıldığı gösterimler sağlanmıştır. Ek olarak, video, ortalama değer atfetme gibi eksik değerleri işlemeye yönelik teknikler de dahil olmak üzere veri temizlemenin önemini vurguluyor.
Konuşmacı, işi yapmak için yalnızca algoritmalara güvenmek yerine verileri düzgün bir şekilde temizlemenin önemini tartışıyor. Boş değerleri bırakmanın, model doğruluğunu nasıl iyileştirebileceğini ve boş değerleri işleyen algoritmalara karşı uyarıyı nasıl geliştirebileceğini gösterirler. Eğitilmiş modellerin daha sonra kullanılmak üzere diske kaydedilmesini içeren asitleme kavramı, Python'daki turşu kitaplığı kullanılarak tanıtıldı. Konuşmacı, modellerin nasıl kaydedileceğini ve yükleneceğini gösterir. Ayrıca, XGBoost ve matplotlib kitaplığındaki önem grafiğini çiz işlevini kullanarak bir veri kümesindeki her bir özelliğin öneminin nasıl çizileceğini gösterirler.
Konuşmacı, makine öğrenimi modelleri oluştururken farklı senaryoları analiz etmenin ve test etmenin önemini tartışıyor ve XGBoost'tan alınan özellik önem puanlarının, bir özelliğin modelin doğruluğu üzerindeki gerçek etkisini her zaman yansıtmayabileceğini vurguluyor. Özellik önem puanlarında alt sıralarda yer almalarına rağmen "cinsiyet" özelliğinin eklenmesinin model doğruluğunu nasıl iyileştirdiğini göstermek için Titanic veri kümesi örneğini kullanıyorlar. Konuşmacı, yalnızca özellik önem puanlarına güvenmenin değil, çeşitli senaryoları test etmenin önemini vurgular. Ayrıca, XGBoost'un eğitim sırasında bir test setinin performansını değerlendirip raporlayabileceğinden de bahsediyorlar.
Video, bir değerlendirme metriği belirleyerek ve bir x ve y çifti dizisi geçirerek eğitim sırasında bir XGBoost modelinin performansının nasıl izleneceğini açıklar. Modelin her değerlendirme setindeki performansı saklanır ve eğitimden sonra kullanıma sunulur. Video, modelin davranışı hakkında fikir veren ve öğrenmeyi erken durdurarak fazla uydurmayı önlemeye yardımcı olan öğrenme eğrilerini kapsar. Erken durdurma, doğrulama puanında herhangi bir gelişme gözlenmezse, sabit sayıda dönemden sonra eğitimi durdurmak için bir teknik olarak sunulur.
Video, XGBoost'ta erken durdurma turlarının kullanımını kapsıyor ve Boston'daki ev fiyatlarını değerlendirmek için bir regresyon modeli oluşturmayı gösteriyor. Tek tek ağaçların oluşturulmasına ve girdi verilerinin verimli bir şekilde hazırlanmasına odaklanılarak, gradyan artırmada paralelliğin faydaları tartışılmaktadır. Video, hesaplamaları aynı anda yürütmek için sistemin tüm çekirdeklerini kullanan ve daha hızlı program yürütülmesine neden olan çoklu kullanım desteğinin bir gösterimini sağlar. XGBoost öncelikle sınıflandırma problemlerine yönelik olsa da video, regresyon modelleri oluşturmada da mükemmel olma yeteneğini vurgulamaktadır.
Konuşmacı, bir örneğin yineleme sayısını tutmak için bir liste oluşturur ve iş parçacığı sayısına dayalı olarak modelin yürütme hızını test etmek için bir for döngüsü kullanır. Her yineleme için oluşturma hızını yazdırırlar ve iş parçacığı sayısı arttıkça modelin hızının nasıl azaldığını gösteren sonuçları çizerler. Konuşmacı daha sonra, performansını artırmak için bir modeldeki parametrelerin ayarlanmasını içeren hiperparametre ayarını tartışır. XGBoost ve scikit-learn için varsayılan parametreleri araştırıyorlar ve bir XGBoost modelinin performansını optimize etmek için hiperparametreleri ayarlamanın gerekli olduğundan bahsediyorlar. Video, hiperparametrelerin verilerden öğrenilmeyen, kullanıcı tarafından manuel olarak ayarlanan ayarlar olduğunu açıklar. Hiperparametrelerin ayarlanması, en yüksek model performansıyla sonuçlanan en iyi parametre değerleri kombinasyonunun sistematik olarak aranmasını içerir.
Video, hiperparametre ayarlaması gerçekleştirmek için iki yaygın yaklaşımı tanıtıyor: kılavuz arama ve rastgele arama. Izgara araması, bir hiperparametre değerleri ızgarası tanımlamayı ve her bir kombinasyonu kapsamlı bir şekilde değerlendirmeyi içerir. Öte yandan rastgele arama, hiperparametre kombinasyonlarını önceden tanımlanmış bir arama alanından rastgele örnekler. Video, arama alanı geniş olduğunda veya hiperparametre sayısı yüksek olduğunda rastgele aramanın kullanılmasını önerir.
Video, scikit-learn'den RandomizedSearchCV sınıfını kullanarak hiperparametre ayarlamasını gösterir. Öğrenme hızı, maksimum derinlik ve alt örnek oranı gibi hiperparametreler için farklı değerler içeren bir parametre ızgarası tanımlarlar. RandomizedSearchCV sınıfı, her parametre kombinasyonunun performansını değerlendirerek çapraz doğrulama ile rastgele arama gerçekleştirir. Ayarlamadan sonra en iyi hiperparametreler seçilir ve model bu optimal değerlerle eğitilir.
Konuşmacı, hiperparametre ayarının yetersiz ve fazla uyum arasındaki en iyi dengeyi bulmaya yardımcı olduğunu açıklıyor. Belirli veri kümesine ve eldeki soruna dayalı olarak hiperparametreleri dikkatli bir şekilde seçerek bir denge kurmak ve aşırı uydurmadan kaçınmak önemlidir.
Video, hiperparametre ayarına ek olarak, XGBoost modellerinde özelliğin önemini tartışıyor. Özelliğin önemi, hangi özelliklerin modelin tahminleri üzerinde en önemli etkiye sahip olduğuna dair içgörüler sağlar. Konuşmacı, özelliğin öneminin, bir özelliğin bir karar ağacında kullanıldığında getirdiği kayıp fonksiyonundaki iyileşmeyi ölçen ortalama kazanç tarafından belirlendiğini açıklıyor. Daha yüksek ortalama kazanç, daha yüksek önemi gösterir.
Video, XGBoost kitaplığı kullanılarak özellik öneminin nasıl çıkarılacağını ve görselleştirileceğini gösterir. En önemli özellikleri ve bunlara karşılık gelen önem puanlarını gösteren bir çubuk grafik çizerler. Konuşmacı, özelliğin öneminin, özellik seçiminde, boyutsallığı azaltmada ve altta yatan soruna ilişkin içgörü kazanmada yardımcı olabileceğini belirtiyor.
Videonun sonuna doğru konuşmacı, XGBoost ile ilgili diğer gelişmiş konulardan kısaca bahsediyor. Scale_pos_weight hiperparametresini ayarlayarak, XGBoost'un yerleşik yeteneğini kullanarak eksik değerlerle ilgilenerek ve kategorik değişkenleri one-hot kodlama yoluyla veya XGBoost'taki kategorik özellikler için yerleşik desteği kullanarak ele alarak dengesiz veri kümelerini ele almaya değinirler.
Video, XGBoost'un temel kavramlarını, uygulamasını, hiperparametre ayarlamasını ve özellik önem analizini kapsayan kapsamlı bir genel bakış sunar. Gösterimler ve kod örnekleri, Python'da XGBoost ile çalışmanın pratik yönlerini göstermeye yardımcı olur. Sınıflandırma ve regresyon görevleri için XGBoost'tan yararlanmak isteyen makine öğrenimi mühendisleri için değerli bir kaynak görevi görür.
Makine Öğrenimi Mühendisleri için Python'da Özellik Mühendisliği Örnek Olay İncelemesi
Makine Öğrenimi Mühendisleri için Python'da Özellik Mühendisliği Örnek Olay İncelemesi
Eğitmen derse özellik mühendisliği kavramını ve onun her gün üretilen çok büyük miktardaki veriden değer elde etmedeki kritik rolünü tanıtarak başlar. Dağınık verilerden çıkarılan değeri maksimize etmede özellik mühendisliğinin önemini vurguluyorlar. Öğrencilerin NumPy, Pandas ve Scikit-Learn kullanma deneyiminin yanı sıra giriş düzeyinde Python bilgisine sahip olduğu varsayılır.
Eğitmen, bir makine öğrenimi modeli oluşturma sürecinde keşif amaçlı veri analizinin ve veri temizlemenin önemini vurgular. Bu aşamaların kursun ana odak noktası olacağını açıklıyorlar. Öğrenciler son bölümde boru hattının tamamını gözden geçirecek olsa da, asıl vurgu özellik mühendisliği üzerinde olacaktır.
Eğitmen, özellik mühendisliğinin model performansını iyileştirmek için gerekli olduğunu vurgular. Özellik mühendisliğinin, ham verileri makine öğrenimi modelleri için altta yatan sinyali daha iyi temsil eden özelliklere dönüştürmeyi içerdiğini açıklıyorlar. İyi özellikler basit modelleri bile güçlü kılabileceğinden, özelliklerin kalitesi modelin performansını doğrudan etkiler. Eğitmen, özellikleri seçerken, alakasız olanları çıkarırken ve analiz edilen problemle ilgili faktörleri dahil ederken sağduyulu olmayı önerir.
Videoda temizleme ve mühendislik özellikleri için çeşitli teknikler ele alınmaktadır. Aykırı değerler kaldırılır, veriler normalleştirilir ve adres çarpıklığına dönüştürülür, özellikler birleştirilerek daha kullanışlı olanlar oluşturulur ve sürekli olanlardan kategorik değişkenler oluşturulur. Bu teknikler, ilgisiz bilgileri atarken verilerdeki önemli eğilimleri doğru bir şekilde yakalayan özellikleri elde etmeyi amaçlar. Gemideki yolcular hakkında bilgi içeren Titanic veri seti örnek olarak sunulmuştur.
Eğitmen, pozitif vakaların negatif vakalardan önemli ölçüde daha az olduğu makine öğrenimindeki sınıf dengesizliği sorununu tartışır. Negatif sınıfı alt örnekleme yoluyla olduğu gibi, her iki durumda da sinyali daha iyi algılamak için modeli ayarlamayı önerirler. Bununla birlikte, örnekte kullanılan veri seti aşırı derecede dengesiz olmadığından, eğitmen veri özelliklerini keşfetmeye devam eder. Sürekli özellikler üzerinde temel keşif veri analizi yapılır ve ad, bilet, cinsiyet, kabin ve gemiye binme gibi sayısal olmayan özellikler kaldırılır. Temizlenen veri seti görüntülenir ve özelliklerin dağılımı ve korelasyonu incelenir. "p-sınıfı" ve "ücret" özelliklerinin, hayatta kalma sütunuyla en güçlü korelasyonu sergilediği keşfedildi ve bu, tahminlerde bulunma potansiyel yararlılıklarını gösteriyor.
Sürekli özellikler üzerinde daha fazla keşif verisi analizi yapılır. Ad ve bilet gibi sayısal olmayan özellikler çıkarılır ve veri kümesinin ilk beş satırı yazdırılır. Veriler, eksik değerleri ve "Hayatta Kaldı" adlı bir ikili hedef değişkeni ortaya çıkaran panda işlevleri kullanılarak açıklanır. Özellikler arasındaki korelasyonları ve bunların "Survived" ile ilişkilerini belirlemek için korelasyon matrisi analiz edilir. Yalnızca ortalama veya medyan değerlere güvenmek yanlış sonuçlara yol açabileceğinden, verilerin tam dağılımına bakmanın önemi vurgulanmıştır. Grafikler ve görselleştirmeler, birinci sınıf yolcular ve daha az aile üyesi olan yolcular arasında daha yüksek hayatta kalma oranları gibi eğilimleri ortaya çıkararak, kategorik özellikler ile hayatta kalma oranı arasındaki ilişkiyi keşfetmek için kullanılır.
Eğitmen, özellik mühendisliğinin önemini vurgular ve uygun testler yapılmadan özelliklerin aşırı derecede yoğunlaştırılmasına karşı tavsiyede bulunur. Eksik değerlerin belirlenmesi ve her bir özellikteki benzersiz değerlerin sayısı da dahil olmak üzere, kategorik özellikleri keşfetme ve tasarlama sürecini tartışırlar. Özelliklerin gruplanması ve her gruptaki hedef değişken için ortalama değerin analiz edilmesi, veri setini daha iyi anlamak için yararlı bir yaklaşım olarak önerilmektedir. Eksik kabin özelliği ile hayatta kalma oranı arasındaki ilişki araştırılır ve bu, özelliğin görünüşte düşük değerine rağmen hayatta kalma oranının güçlü bir göstergesinin keşfedilmesine yol açar.
Özellik araştırması, başlıkların, kabin göstergelerinin ve cinsiyetin hayatta kalma ile güçlü bir korelasyona sahip olduğunu, buna karşın girişilen özelliğin gereksiz olduğunu ortaya koyuyor. Kabin ve hayatta kalma oranı arasındaki ilişki, Cherbourg'da uçağa binen daha fazla insanın kabinleri olduğu ve bunun da daha yüksek bir hayatta kalma oranıyla sonuçlandığı gözlemiyle açıklanıyor. Uçaktaki yakın aile üyelerinin sayısı tek bir özellikte birleştirilir ve korelasyonları nedeniyle yolcu sınıfı veya ücret önerilir.
Eğitmen, bir sonraki adımın, keşifsel veri analizinden elde edilen içgörülere dayalı olarak özellikleri tasarlamak olduğunu açıklar. "Ad" özelliğinden "Başlık" adlı yeni bir özellik oluşturarak başlarlar. "Unvan" özelliği, sosyal statü ve hayatta kalma oranıyla ilgili ek bilgiler sağlayabileceğinden, her bir yolcunun adından (örn. Bay, Bayan, Bayan) başlığı çıkarır. "Başlık" özelliği daha sonra basitlik için sayısal değerlerle eşlenir.
Daha sonra eğitmen, başlangıçta birçok eksik değere sahip olan "Kabin" özelliğine odaklanır. Ancak, kabin bilgisi olan ve olmayan yolcuların hayatta kalma oranları analiz edildiğinde, kayıtlı bir kabin numarasına sahip olmanın hayatta kalma oranının daha yüksek olduğu keşfedildi. Bu içgörüye dayanarak, bir yolcunun kayıtlı bir kabini olup olmadığını belirtmek için "HasCabin" adlı yeni bir ikili özellik oluşturulur.
Eğitmen devam ederek "Seks" özelliğini ele alır. Makine öğrenimi modelleri genellikle sayısal verilerle daha iyi çalıştığından, "Cinsiyet" özelliği, 0 erkeği ve 1 dişiyi temsil edecek şekilde ikili değerlerle eşlenir.
Eğitmen, "Sex" özelliğini tasarladıktan sonra, biniş limanını (C = Cherbourg, Q = Queenstown, S = Southampton) gösteren "Bindirildi" özelliğine değinir. Ancak daha önce "Gömülü" özelliğinin gereksiz olduğu ve hayatta kalma tahminine önemli bir katkı sağlamadığı belirlenmişti. Bu nedenle, veri kümesinden çıkarılır.
Eğitmen daha sonra keşifsel veri analizi sırasında hayatta kalma ile güçlü korelasyonlar sergileyen "Pclass" ve "Fare" özelliklerine odaklanır. Bu özellikler zaten makine öğrenmesi modeline uygun formatta olduğu için olduğu gibi bırakılmıştır.
Bu aşamada eğitmen veri ön işlemenin ve model için özniteliklerin hazırlanmasının önemini vurgular. Veri seti, modelin performansını doğru bir şekilde değerlendirmek için eğitim ve test setlerine ayrılmıştır. "Yaş" özelliğindeki eksik değerler, yolcuların medyan yaşı kullanılarak belirlenir ve tüm özellikler, Scikit-Learn'ün ön işleme işlevleri kullanılarak sıfır ortalama ve birim varyansa sahip olacak şekilde standardize edilir.
Son olarak, eğitmen kategorik özellikler için one-hot kodlama kavramından kısaca bahseder ve bir sonraki videoda daha ayrıntılı olarak ele alınacağından bahseder. One-hot kodlama, kategorik değişkenleri ikili vektörler olarak temsil etmek için kullanılan ve modelin bunları doğru şekilde yorumlamasını sağlayan yaygın bir tekniktir.
Özetlemek gerekirse, dersin bu bölümünde eğitmen özellik mühendisliği kavramını tanıtmış ve makine öğrenimindeki önemini açıklamıştır. Keşif amaçlı veri analizi gerçekleştirdiler, veri kümesini temizlediler ve elde edilen içgörülere dayalı olarak özellikleri tasarladılar. Eğitmen, yeni özelliklerin nasıl oluşturulacağını, kategorik özelliklerin sayısal değerlerle nasıl eşleştirileceğini ve gereksiz özelliklerin nasıl kaldırılacağını gösterdi. Sonraki adımlar, verilerin ön işlenmesini ve özelliklerin makine öğrenimi modeli için hazırlanmasını içeriyordu.
Lütfen yukarıdaki özetin, tipik olarak bir özellik mühendisliği kursunda işlenen genel konulara dayanan varsayımsal bir devam niteliğinde olduğunu unutmayın. Gerçek içerik ve örnekler, belirli kursa ve eğitmene bağlı olarak değişebilir.
Google'ın Bulut Platformunda BigQuery ile Makine Öğrenimi
Google'ın Bulut Platformunda BigQuery ile Makine Öğrenimi
Videoda, makine öğrenimi için BigQuery kullanımına odaklanan bir kursun içeriği ele alınmaktadır. BigQuery, başlangıçta Google'da dahili olarak kullanılan ve daha sonra bir bulut hizmeti haline gelen bir kurumsal veri ambarıdır. Yüksek oranda ölçeklenebilir ve sunucusuzdur, petabaytlarca veri barındırabilir ve hızlı sorgu sonuçları sağlayabilir. Kurs eğitimi, gerçek dünya vaka incelemelerine dayalıdır ve öğrencilere veri kaynağından model oluşturmaya kadar makine öğrenimi modelleri oluşturma sürecinde rehberlik eder. Kurs boyunca öğrenciler, modellerini oluşturmak için BigQuery'yi kullanır ve BigQuery'ye özel bir Google Cloud Platform (GCP) hesabı oluşturmalarını gerektirir.
Video, Google'ın donanım kaynaklarını ölçeklendirmeye yönelik yol gösterici ilkelerini açıklayarak ölçeği büyütmek yerine ölçeği genişletme kararının altını çiziyor. Google, donanımın her an arızalanabileceğinin farkındadır, bu nedenle tasarımlar olası arızaları dikkate almalıdır. Ek olarak Google, uygun fiyatlı ve tedarikçi firma esnekliği sağlayan emtia donanımını kullanır. Donanım maliyetinin yüksek olması nedeniyle ölçek büyütme yerine ölçeklendirme tercih edilir. Google, ölçeklendirilmiş bir donanım mimarisine yol açan GFS, MapReduce ve Bigtable gibi teknolojiler geliştirmiştir. Colossus, GFS'nin yerini almıştır ve BigQuery dahil olmak üzere Google'ın teknolojileri için temel dağıtılmış alt sistem olarak hizmet vermektedir.
Öğretim görevlisi, Google'ın küresel olarak dağıtılan ve dağıtılmış işlemleri yönetmek için Colossus'a dayanan veritabanı çözümü Spanner'a genel bir bakış sağlar. Video ayrıca, Google Cloud Platform'da faturalandırma hesaplarına kaydolma ve bunları yönetme sürecini de gösterir. Kullanıcılar, platformun web sitesini ziyaret ederek, şartları kabul ederek ve gerekli bilgileri sağlayarak bir GCP hesabı oluşturabilir. Yeni kullanıcılara GCP'de kullanmaları için faturalandırma bölümünden izlenebilecek 300 ABD doları tutarında bir kredi verilir. Öğretim görevlisi, belirli faturalandırma hedeflerine ulaşıldığında bildirim almak için bütçe uyarılarının ayarlanmasını önerir.
BigQuery'nin oluşturulması ve amacı ayrıntılı olarak ele alınmıştır. Google'ın üstel veri büyümesi, büyük veri kümeleri üzerinde etkileşimli sorgulara izin veren BigQuery'nin geliştirilmesini gerektirdi. BigQuery, 50 satır veya 50 milyar satır içermelerinden bağımsız olarak sorguları işleyebilir. Standart olmayan SQL lehçesi, kısa bir öğrenme eğrisini kolaylaştırır ve binlerce makinede SQL yürütmesini paralel hale getirebilir. BigQuery, yapılandırılmış verileri depolarken ilişkisel veritabanlarından ayrılarak tablolar içinde iç içe geçmiş kayıt türlerini destekleyerek iç içe yapıların depolanmasını sağlar.
BigQuery'nin mimarisi, paralelleştirme yaklaşımı vurgulanarak açıklanıyor. Çekirdek başına bir sorgu yürüten çoğu ilişkisel veritabanı sisteminin aksine BigQuery, binlerce çekirdekte tek bir sorgu çalıştıracak şekilde tasarlanmıştır ve geleneksel yaklaşımlara kıyasla performansı önemli ölçüde artırır. Dremel motoru, bazıları I/O'da beklerken diğer sorguların mevcut çekirdekleri kullanmasına izin vererek sorgu ardışık düzenini etkinleştirir. BigQuery, birden çok müşterinin diğer konumları etkilemeden aynı donanım üzerinde aynı anda sorgu çalıştırmasına olanak tanıyan bir çoklu kiralama yaklaşımı kullanır. BigQuery arayüzü, tablolara ve görünümlere erişimi düzenlemek için sorgu geçmişi, kayıtlı sorgular, iş geçmişi ve kaynak bölümleri dahil olmak üzere üç temel bölmeden oluşur.
Video, BigQuery'ye özel Google Cloud Console içindeki ekranların ve panellerin ayrıntılı bir açıklamasını sunar. Gezinme menüsü, veri kümeleri ve tablolar gibi BigQuery kaynaklarını görüntülerken SQL çalışma alanı bölümü, kullanıcıların sorgular oluşturmasına, tablolarla çalışmasına ve iş geçmişlerini görüntülemesine olanak tanır. Explorer paneli mevcut projeleri ve bunların kaynaklarını listelerken, Ayrıntılar paneli seçilen kaynaklar hakkında bilgi sağlar ve tablo şemalarında, veri dışa aktarmalarında ve diğer işlevlerde değişikliklere izin verir. BigQuery'nin sık sık küçük satır düzeyinde güncellemeleri desteklememesi nedeniyle OLTP uygulamaları için uygun olmadığı açıklandı. Bir NoSQL veritabanı olmasa da BigQuery, SQL'in bir lehçesini kullanır ve bir OLAP veritabanına daha yakındır ve birçok OLAP kullanım durumu için benzer faydalar ve uygunluk sağlar.
Google'ın BigQuery'sinin tanımı, tam olarak yönetilen, yüksek düzeyde ölçeklenebilir, uygun maliyetli ve hızlı bulutu vurgulanarak daha ayrıntılı olarak ele alınmıştır.
Videoda tartışılan ek noktalar şunlardır:
BigQuery'nin depolama biçimi: BigQuery, sorgu performansı için optimize edilmiş sütunlu bir depolama biçimi kullanır. Verileri sıkıştırılmış ve sütunlu bir şekilde depolayarak, gereksiz verilere erişmeden bir sorgudaki belirli sütunların verimli bir şekilde işlenmesine olanak tanır. Bu biçim, özellikle toplama ve filtreleme içeren analitik iş yükleri için faydalıdır.
Veri alımı: BigQuery, çeşitli veri alımı yöntemlerini destekler. Google Cloud Storage, Google Sheets ve Google Cloud Bigtable gibi kaynaklardan verileri doğrudan yükleyebilir. Ayrıca ETL (Ayıkla, Dönüştür, Yükle) işlemleri için Dataflow ve Dataprep gibi diğer veri işleme araçlarıyla entegrasyonlar sunar.
Veri bölümleme ve kümeleme: BigQuery, sorgu performansını optimize etmek için bölümleme ve kümeleme gibi özellikler sağlar. Bölümleme, büyük veri kümelerini seçilen bir sütuna (örneğin, tarih) göre daha küçük, yönetilebilir parçalara bölmeyi içerir. Kümeleme, taranan veri miktarını azaltarak sorgu performansını iyileştirmek için her bölümdeki verileri bir veya daha fazla sütuna göre daha fazla düzenler.
Veri erişim denetimleri ve güvenlik: BigQuery, veri güvenliğini yönetmek için sağlam erişim denetimleri sunar. Google Cloud Identity and Access Management (IAM) ile entegre olarak kullanıcıların proje, veri kümesi ve tablo düzeylerinde ayrıntılı erişim izinleri tanımlamasına olanak tanır. BigQuery ayrıca, bekleyen ve aktarılan şifrelemeyi destekleyerek hassas verilerin korunmasını sağlar.
Veri fiyatlandırması ve maliyet optimizasyonu: Video, BigQuery'nin fiyatlandırma modeline kısaca değiniyor. Kullandıkça öde esasına göre çalışır ve kullanıcılardan sorgular tarafından işlenen veri miktarına göre ücret alır. BigQuery, gereksiz veri işlemeyi önleyerek maliyetleri azaltabilen sorgu önbelleğe alma gibi özellikler sunar. Maliyetleri en aza indirmek için sorguları optimize etmek ve gereksiz veri taramasından kaçınmak önemlidir.
BigQuery ile makine öğrenimi: Kurs, makine öğrenimi görevleri için BigQuery kullanımını kapsar. BigQuery, Google Cloud'un AutoML ve TensorFlow gibi makine öğrenimi hizmetleriyle entegre olur ve kullanıcıların makine öğrenimi modellerini eğitmeden önce veri hazırlama ve özellik mühendisliği için BigQuery'nin gücünden yararlanmasına olanak tanır.
Kullanım örnekleri ve örnekler: Öğretim görevlisi, büyük hacimli günlük verilerini analiz etme, pazar araştırması yürütme, müşteri segmentasyonu gerçekleştirme ve büyük veri kümeleri üzerinde karmaşık analitik sorgular çalıştırma gibi BigQuery'nin öne çıktığı çeşitli gerçek dünya kullanım örneklerinden bahseder.
Genel olarak video, BigQuery'nin yeteneklerine, mimarisine ve temel özelliklerine genel bir bakış sunarak büyük ölçekli veri analitiği ve makine öğrenimi görevleri için uygunluğunu vurgular. Büyük miktarda veriyi verimli bir şekilde işlemek için BigQuery gibi tamamen yönetilen ve yüksek düzeyde ölçeklenebilir bulut tabanlı bir çözüm kullanmanın faydalarını vurgular.