Yukarıdaki satır, 10 satır ve tüm sütunlardan oluşan veri kümesinin bir kısmını verir. bfriday.head(x,y) yazmayı denerseniz hata alırsınız çünkü bilgisayar toplam sütun sayısını zaten zorunlu kabul eder. bfriday.head() de çıktı verir ve hata olmaz; bilgisayar satır ve sütunları kendi varsayılanına göre alır
bfriday.shape #bu bize veri kümesinin boyutlarını verir (satır,sütun)Altyapı:
b =['Product_Category_2','Product_Category_3']#burada Product_Category_2 ve Product_Category_3 adlı 2 sütundan oluşan bir dizi oluşturuyoruzAltyapı:
for i in b:exec("bfriday.%s.fillna(bfriday.%s.value_counts().idxmax(), inplace=True)"%(i,i))Altyapı:
Şimdi boş alanları en sık görülen değerle doldurduk. Ayrıca şu şekilde de boş alanları temizleyebilir ya da doldurabilirsiniz: bfriday.Product_Category_2.fillna(bfriday.Product_Category_2.value_counts().idxmax(),inplace=True) benzer şekilde Product_category_3 adlı sütunu da temizleyebilirsiniz
Şimdi veri kümesinden purchase adlı sütunu kaldırdık ve Purchase sütunu dışındaki tüm sütunlardan oluşan X adlı bir dizi oluşturduk.
from sklearn.preprocessing import LabelEncoder#Şimdi sklearn kütüphanesinden kodlayıcıyı içe aktaralım
LE = LabelEncoder()#Şimdi, kolay hesaplama için verileri etiket kodlayıcı ile etiketlere dönüştüreceğizAltyapı:
X = X.apply(LE.fit_transform)#Burada kodlayıcıyı verilere uyguladıkAltyapı:
Şimdi verileri pandas kullanarak sayısal forma dönüştüreceğiz; çünkü sayısal verilerle çalışmak, kategorik verilerle çalışmaktan daha kolaydır
Y = bfriday["Purchase"]#Burada Purchase sütunundaki verilerden oluşan Y adlı bir dizi oluşturdukAltyapı:
from sklearn.preprocessing import StandardScaler
SS = StandardScaler()Altyapı:
Özellikleri ortalamayı çıkarıp birim varyansa ölçekleyerek standartlaştırır. Merkezleme ve ölçekleme, eğitim kümesindeki örnekler üzerinden ilgili istatistikler hesaplanarak her özellik için bağımsız şekilde gerçekleşir. Daha sonra ortalama ve standart sapma, transform yöntemiyle daha sonraki verilerde kullanılmak üzere saklanır.
Xs = SS.fit_transform(X)#X'i sayısal bir gösterime (ikili olması gerekmez) dönüştürmeniz gerekir. Çünkü tüm makine öğrenimi yöntemleri sayı matrisleri üzerinde çalışırAltyapı:
from sklearn.decomposition import PCA
pc = PCA(4)#buradaki 4, istediğiniz bileşen sayısını belirtir.Altyapı:
Verinin Tekil Değer Ayrışımı kullanılarak doğrusal boyut indirgemesi, onu daha düşük boyutlu bir uzaya yansıtmaktır. PCA, en çok kullanılan ve bilinen boyut indirgeme yöntemlerinden biridir. PCA, makine öğrenimi algoritmalarını hızlandırmak için kullanılır; PCA’yı yalnızca eğitim kümesinde uygularsınız. Temel bileşen analizi (PCA)
PCA, orijinal değişkenlerin yerine, kovaryansları sıfır olan ve varyansları azalan sırada bulunan yeni değişkenler (temel bileşenler) koyar. Böylece, veriden çıkarılan temel bileşenler arasındaki kovaryans matrisi sıfır olur.
Not: Seyrek veriler için asla RandomizedPCA kullanmayın. Seyrek veri üzerinde RandomizedPCA kullanımı yanlıştır; çünkü seyrekliği bozmadan veriyi merkezleyemeyiz ve bu, gerçekçi boyutlardaki seyrek verilerde belleğin şişmesine yol açabilir. Oysa PCA için merkezleme gereklidir
from sklearn.model_selection import KFold
kf = KFold(20)#Eğitim/test kümelerine ayırmak için indeksler sağlar. Varsayılan olarak karıştırmadan veri kümesini k ardışık katmana böler.#Her katman bir kez doğrulama için kullanılırken, kalan k - 1 katman eğitim kümesini oluşturur.Altyapı:
for a,b in kf.split(principalDf):
X_train, X_test = Xs[a],Xs[b]
y_train, y_test = Y[a],Y[b]Altyapı:
from sklearn.linear_model import LinearRegression
Altyapı:
Regresyon iki şeyi incelemek içindir: (1) belirli bir yordayıcı değişkenler kümesi, bir sonuç (bağımlı) değişkenini iyi tahmin ediyor mu? (2) Özellikle hangi değişkenler sonuç değişkeninin anlamlı yordayıcılarıdır ve beta katsayılarının büyüklüğü ve işaretiyle gösterildiği üzere sonucu nasıl etkilerler? Bu regresyon tahminleri, bir bağımlı değişken ile bir veya daha fazla bağımsız değişken arasındaki ilişkiyi açıklamak için kullanılır. Bir bağımlı ve bir bağımsız değişkenli en basit regresyon denklemi y = c + b*x şeklinde tanımlanır; burada y = tahmini bağımlı değişken skoru, c = sabit, b = regresyon katsayısı ve x = bağımsız değişkenin skoru.
from sklearn.tree import DecisionTreeRegressor
Altyapı:
Bir karar ağacı, kök düğümden yukarıdan aşağıya doğru inşa edilir ve benzer değerlere sahip örnekler içeren alt kümelere veri bölümlemeyi içerir. Karar ağacı, modelleri bir ağaç yapısı şeklinde kurar. Bir veri kümesini giderek daha küçük alt kümelere bölerken, buna eşlik eden bir karar ağacı da artımlı olarak geliştirilir. Nihai sonuç, karar düğümleri ve yaprak düğümlerinden oluşan bir ağaçtır. Bir karar düğümü (ör. Outlook) ikiden fazla dala (ör. Güneşli, Bulutlu ve Yağmurlu) sahiptir ve her dal test edilen özelliğin bir değerini temsil eder. Yaprak düğüm (ör. Oynanan Saat) sayısal hedefe ilişkin bir kararı temsil eder. Bir ağaçtaki en üstteki karar düğümü, en iyi yordayıcıya karşılık gelir ve kök düğüm olarak adlandırılır. Karar ağaçları hem kategorik hem sayısal verileri işleyebilir. Hedef değişkenin sürekli değerler (tipik olarak reel sayılar) alabildiği karar ağaçlarına regresyon ağaçları denir. Ağacın maksimum derinliği çok yüksek ayarlanırsa, karar ağaçları eğitim verisinin çok ince ayrıntılarını ve gürültüsünü öğrenir; yani aşırı uyum (overfit) oluşur.
from sklearn.ensemble import RandomForestRegressor
Altyapı:
Rastgele orman, veri kümesinin çeşitli alt örnekleri üzerinde çok sayıda sınıflandırıcı karar ağacı uyduran ve tahmin doğruluğunu artırıp aşırı uyumu kontrol etmek için ortalama alan bir kestirimcidir. Alt örneklem boyutu her zaman orijinal giriş örneklemiyle aynıdır, ancak bootstrap=True ise örnekler tekrar koyularak çekilir. Bu tekniğin ardındaki fikir, ağaçları birbiriyle ilişkisiz hale getirmektir. Eğitim verisinden farklı bootstrap örnekleri (yani kendinden üretilen örnekler) oluşturur. Ardından ağaçlardaki varyansı ortalama alarak azaltırız. Böylece, bu yaklaşım Python veya R’da çok sayıda karar ağacı oluşturur. Rastgele orman modeli sayısal özelliklere sahip tablolu verileri veya yüzlerce kategoriden az kategorik özellikleri çok iyi işler. Rastgele ormanlar, özellikler ile hedef arasındaki doğrusal olmayan etkileşimleri yakalama yeteneğine sahiptir.
Not: Ağaç tabanlı modeller çok seyrek özelliklerle çalışmak üzere tasarlanmamıştır. Seyrek girdi verileriyle uğraşırken, seyrek özellikleri sayısal istatistikler üretmek üzere önceden işleyebilir ya da bu tür senaryolara daha uygun olan bir doğrusal modele geçebiliriz.
from sklearn.ensemble import GradientBoostingRegressor
Altyapı:
Gradyan artırma, regresyon ve sınıflandırma problemleri için kullanılan ve zayıf kestirimcilerden (genellikle karar ağaçları) oluşan bir toplulukla (ensemble) tahmin modeli üreten bir makine öğrenimi tekniğidir. Modeli, diğer boosting yöntemlerinde olduğu gibi aşamalı olarak kurar ve keyfi bir türevlenebilir kayıp fonksiyonunun optimize edilmesine izin vererek onları genelleştirir. Boosting, uygun bir maliyet fonksiyonu üzerinde bir optimizasyon algoritması olarak yorumlanabilir. Son iki makale, boosting algoritmalarını yinelemeli fonksiyonel gradyan inişi algoritmaları olarak görme yaklaşımını tanıttı. Yani, fonksiyon uzayı üzerinde bir maliyet fonksiyonunu, negatif gradyan yönünü işaret eden bir fonksiyonu (zayıf hipotez) yinelemeli olarak seçerek optimize eden algoritmalar. Bu fonksiyonel gradyan bakışı, regresyon ve sınıflandırmanın ötesinde makine öğrenimi ve istatistiğin birçok alanında boosting algoritmalarının geliştirilmesine yol açtı. Gradyan artırma, zayıf “öğrenicileri” yinelemeli bir biçimde tek bir güçlü öğrenicide birleştirir. En kolay, en küçük kareler regresyonu bağlamında açıklanır; burada amaç, ortalama karesel hatayı en aza indirerek F modeline y ^ = F ( x ) biçimindeki değerleri “öğretmektir”.
fit1 = lr.fit(X_train,y_train)#Burada eğitim verisini doğrusal regresyona uyduruyoruz
fit2 = dtr.fit(X_train,y_train)#Burada eğitim verisini Karar Ağacı Regresörüne uyduruyoruz
fit3 = rfr.fit(X_train,y_train)#Burada eğitim verisini Rastgele Orman Regresörüne uyduruyoruz
fit4 = gbr.fit(X_train,y_train)#Burada eğitim verisini Gradyan Artırma Regresörüne uyduruyoruzAltyapı:
Şimdiye kadar fit ve fit_transform gördünüz ama ne olduklarını anlamadınız mı? Hadi şimdi öğrenelim.
fit(): Eğitim verisinden öğrenme modeli parametrelerini üretmek için kullanılır
transform(): fit() yöntemiyle üretilen parametreler, modele uygulanarak dönüştürülmüş veri kümesini üretir.
fit_transform(): Aynı veri kümesi üzerinde fit() ve transform() API’lerinin birleşimidir
print("Accuracy Score of Linear regression on train set",fit1.score(X_train,y_train)*100)print("Accuracy Score of Decision Tree on train set",fit2.score(X_train,y_train)*100)print("Accuracy Score of Random Forests on train set",fit3.score(X_train,y_train)*100)print("Accuracy Score of Gradient Boosting on train set",fit4.score(X_train,y_train)*100)Altyapı:
Accuracy Score of Linear regression on train set11.829233894211866
Accuracy Score of Decision Tree on train set100.0
Accuracy Score of Random Forests on train set94.207451077798
Accuracy Score of Gradient Boosting on train set65.49517152859553Altyapı:
print("Accuracy Score of Linear regression on test set",fit1.score(X_test,y_test)*100)print("Accuracy Score of Decision Tree on test set",fit2.score(X_test,y_test)*100)print("Accuracy Score of Random Forests on test set",fit3.score(X_test,y_test)*100)print("Accuracy Score of Gradient Boosting on testset",fit4.score(X_test,y_test)*100)Altyapı:
Accuracy Score of Linear regression on test set36.8210287243639
Accuracy Score of Decision Tree on test set57.61911563230391
Accuracy Score of Random Forests on test set74.71675935214292
Accuracy Score of Gradient Boosting on testset 72.43849411693184Altyapı:
Sonuç
Bu eğitim, boş değerleri nasıl dolduracağınıza dair hızlı bir fikir verir. Bunu yazmamın nedeni, gerçek verilerin çoğu zaman daha da dağınık olması; çünkü boş değerler, hatalı değerler ve temizlenmesi gereken birçok kırpıntı bulunur. Yaşasın! Bu eğitimi tamamladınız. Eğitimle ilgili herhangi bir sorunuz veya düşünceniz varsa, aşağıdaki yorumlarda bizimle paylaşmaktan çekinmeyin.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Önce veri kümesiyle çalışmak için gereken temel kütüphaneyi içe aktaralım.
Şimdi veri kümesini okuyup görelim.
Yukarıdaki satır, 10 satır ve tüm sütunlardan oluşan veri kümesinin bir kısmını verir. bfriday.head(x,y) yazmayı denerseniz hata alırsınız çünkü bilgisayar toplam sütun sayısını zaten zorunlu kabul eder. bfriday.head() de çıktı verir ve hata olmaz; bilgisayar satır ve sütunları kendi varsayılanına göre alır
Şimdi boş alanları en sık görülen değerle doldurduk. Ayrıca şu şekilde de boş alanları temizleyebilir ya da doldurabilirsiniz: bfriday.Product_Category_2.fillna(bfriday.Product_Category_2.value_counts().idxmax(),inplace=True) benzer şekilde Product_category_3 adlı sütunu da temizleyebilirsiniz
Şimdi veri kümesinden purchase adlı sütunu kaldırdık ve Purchase sütunu dışındaki tüm sütunlardan oluşan X adlı bir dizi oluşturduk.
Şimdi verileri pandas kullanarak sayısal forma dönüştüreceğiz; çünkü sayısal verilerle çalışmak, kategorik verilerle çalışmaktan daha kolaydır
Özellikleri ortalamayı çıkarıp birim varyansa ölçekleyerek standartlaştırır. Merkezleme ve ölçekleme, eğitim kümesindeki örnekler üzerinden ilgili istatistikler hesaplanarak her özellik için bağımsız şekilde gerçekleşir. Daha sonra ortalama ve standart sapma, transform yöntemiyle daha sonraki verilerde kullanılmak üzere saklanır.
Verinin Tekil Değer Ayrışımı kullanılarak doğrusal boyut indirgemesi, onu daha düşük boyutlu bir uzaya yansıtmaktır. PCA, en çok kullanılan ve bilinen boyut indirgeme yöntemlerinden biridir. PCA, makine öğrenimi algoritmalarını hızlandırmak için kullanılır; PCA’yı yalnızca eğitim kümesinde uygularsınız. Temel bileşen analizi (PCA)
PCA, orijinal değişkenlerin yerine, kovaryansları sıfır olan ve varyansları azalan sırada bulunan yeni değişkenler (temel bileşenler) koyar. Böylece, veriden çıkarılan temel bileşenler arasındaki kovaryans matrisi sıfır olur.
Burada RandomizedPCA adlı ilginç bir şeyimiz var
Not: Seyrek veriler için asla RandomizedPCA kullanmayın. Seyrek veri üzerinde RandomizedPCA kullanımı yanlıştır; çünkü seyrekliği bozmadan veriyi merkezleyemeyiz ve bu, gerçekçi boyutlardaki seyrek verilerde belleğin şişmesine yol açabilir. Oysa PCA için merkezleme gereklidir
Regresyon iki şeyi incelemek içindir: (1) belirli bir yordayıcı değişkenler kümesi, bir sonuç (bağımlı) değişkenini iyi tahmin ediyor mu? (2) Özellikle hangi değişkenler sonuç değişkeninin anlamlı yordayıcılarıdır ve beta katsayılarının büyüklüğü ve işaretiyle gösterildiği üzere sonucu nasıl etkilerler? Bu regresyon tahminleri, bir bağımlı değişken ile bir veya daha fazla bağımsız değişken arasındaki ilişkiyi açıklamak için kullanılır. Bir bağımlı ve bir bağımsız değişkenli en basit regresyon denklemi y = c + b*x şeklinde tanımlanır; burada y = tahmini bağımlı değişken skoru, c = sabit, b = regresyon katsayısı ve x = bağımsız değişkenin skoru.
Bir karar ağacı, kök düğümden yukarıdan aşağıya doğru inşa edilir ve benzer değerlere sahip örnekler içeren alt kümelere veri bölümlemeyi içerir. Karar ağacı, modelleri bir ağaç yapısı şeklinde kurar. Bir veri kümesini giderek daha küçük alt kümelere bölerken, buna eşlik eden bir karar ağacı da artımlı olarak geliştirilir. Nihai sonuç, karar düğümleri ve yaprak düğümlerinden oluşan bir ağaçtır. Bir karar düğümü (ör. Outlook) ikiden fazla dala (ör. Güneşli, Bulutlu ve Yağmurlu) sahiptir ve her dal test edilen özelliğin bir değerini temsil eder. Yaprak düğüm (ör. Oynanan Saat) sayısal hedefe ilişkin bir kararı temsil eder. Bir ağaçtaki en üstteki karar düğümü, en iyi yordayıcıya karşılık gelir ve kök düğüm olarak adlandırılır. Karar ağaçları hem kategorik hem sayısal verileri işleyebilir. Hedef değişkenin sürekli değerler (tipik olarak reel sayılar) alabildiği karar ağaçlarına regresyon ağaçları denir. Ağacın maksimum derinliği çok yüksek ayarlanırsa, karar ağaçları eğitim verisinin çok ince ayrıntılarını ve gürültüsünü öğrenir; yani aşırı uyum (overfit) oluşur.
Rastgele orman, veri kümesinin çeşitli alt örnekleri üzerinde çok sayıda sınıflandırıcı karar ağacı uyduran ve tahmin doğruluğunu artırıp aşırı uyumu kontrol etmek için ortalama alan bir kestirimcidir. Alt örneklem boyutu her zaman orijinal giriş örneklemiyle aynıdır, ancak bootstrap=True ise örnekler tekrar koyularak çekilir. Bu tekniğin ardındaki fikir, ağaçları birbiriyle ilişkisiz hale getirmektir. Eğitim verisinden farklı bootstrap örnekleri (yani kendinden üretilen örnekler) oluşturur. Ardından ağaçlardaki varyansı ortalama alarak azaltırız. Böylece, bu yaklaşım Python veya R’da çok sayıda karar ağacı oluşturur. Rastgele orman modeli sayısal özelliklere sahip tablolu verileri veya yüzlerce kategoriden az kategorik özellikleri çok iyi işler. Rastgele ormanlar, özellikler ile hedef arasındaki doğrusal olmayan etkileşimleri yakalama yeteneğine sahiptir.
Not: Ağaç tabanlı modeller çok seyrek özelliklerle çalışmak üzere tasarlanmamıştır. Seyrek girdi verileriyle uğraşırken, seyrek özellikleri sayısal istatistikler üretmek üzere önceden işleyebilir ya da bu tür senaryolara daha uygun olan bir doğrusal modele geçebiliriz.
Gradyan artırma, regresyon ve sınıflandırma problemleri için kullanılan ve zayıf kestirimcilerden (genellikle karar ağaçları) oluşan bir toplulukla (ensemble) tahmin modeli üreten bir makine öğrenimi tekniğidir. Modeli, diğer boosting yöntemlerinde olduğu gibi aşamalı olarak kurar ve keyfi bir türevlenebilir kayıp fonksiyonunun optimize edilmesine izin vererek onları genelleştirir. Boosting, uygun bir maliyet fonksiyonu üzerinde bir optimizasyon algoritması olarak yorumlanabilir. Son iki makale, boosting algoritmalarını yinelemeli fonksiyonel gradyan inişi algoritmaları olarak görme yaklaşımını tanıttı. Yani, fonksiyon uzayı üzerinde bir maliyet fonksiyonunu, negatif gradyan yönünü işaret eden bir fonksiyonu (zayıf hipotez) yinelemeli olarak seçerek optimize eden algoritmalar. Bu fonksiyonel gradyan bakışı, regresyon ve sınıflandırmanın ötesinde makine öğrenimi ve istatistiğin birçok alanında boosting algoritmalarının geliştirilmesine yol açtı. Gradyan artırma, zayıf “öğrenicileri” yinelemeli bir biçimde tek bir güçlü öğrenicide birleştirir. En kolay, en küçük kareler regresyonu bağlamında açıklanır; burada amaç, ortalama karesel hatayı en aza indirerek F modeline y ^ = F ( x ) biçimindeki değerleri “öğretmektir”.
Şimdiye kadar fit ve fit_transform gördünüz ama ne olduklarını anlamadınız mı? Hadi şimdi öğrenelim.
fit(): Eğitim verisinden öğrenme modeli parametrelerini üretmek için kullanılır
transform(): fit() yöntemiyle üretilen parametreler, modele uygulanarak dönüştürülmüş veri kümesini üretir.
fit_transform(): Aynı veri kümesi üzerinde fit() ve transform() API’lerinin birleşimidir
Sonuç
Bu eğitim, boş değerleri nasıl dolduracağınıza dair hızlı bir fikir verir. Bunu yazmamın nedeni, gerçek verilerin çoğu zaman daha da dağınık olması; çünkü boş değerler, hatalı değerler ve temizlenmesi gereken birçok kırpıntı bulunur. Yaşasın! Bu eğitimi tamamladınız. Eğitimle ilgili herhangi bir sorunuz veya düşünceniz varsa, aşağıdaki yorumlarda bizimle paylaşmaktan çekinmeyin.
Python’da Makine Öğrenimi hakkında daha fazla bilgi edinmek isterseniz, DataCamp’in Introduction to Machine Learning in Python eğitimini ve Preprocessing for Machine Learning in Python kursunu inceleyin.