Faset ve Etkileşim Terimi ile TensorFlow Lineer Regresyon

Bu öğreticide, verileri nasıl kontrol edeceğinizi ve basit bir doğrusal regresyon görevi oluşturmak için nasıl hazırlayacağınızı öğreneceksiniz.

Bu eğitim iki bölüme ayrılmıştır:

  • Etkileşim arayın
  • Modeli test edin

İçinde önceki eğitim , bir evin medyan fiyatını tahmin etmek için Boston veri setini kullandınız. Boston veri kümesi, yalnızca 506 gözlem ile küçük bir boyuta sahiptir. Bu veri seti, yeni doğrusal regresyon algoritmalarını denemek için bir kıyaslama olarak kabul edilir.

Veri kümesi şunlardan oluşur:

DeğişkenAçıklama
zn25.000 sq.ft'den büyük parseller için imar edilen konut arazilerinin oranı.
EndüstriKasaba başına perakende dışı iş alanı oranı.
noxnitrik oksit konsantrasyonu
rmkonut başına ortalama oda sayısı
yaş1940'tan önce inşa edilmiş sahibi tarafından kullanılan birimlerin oranı
söylemekbeş Boston istihdam merkezine ağırlıklı mesafeler
vergi10.000 dolar başına tam değerli emlak vergisi oranı
pratiobir kasabaya göre öğrenci-öğretmen oranı
V ileBin dolar cinsinden sahibi tarafından kullanılan evlerin medyan değeri
suçşehirlere göre kişi başına suç oranı
kovalamakCharles River kukla değişkeni (nehri sınırlarsa 1; aksi takdirde 0)
Bkasaba tarafından siyahların oranı

Bu öğreticide, doğrusal bir regresör kullanarak medyan fiyatı tahmin edeceğiz, ancak odak noktası belirli bir makine öğrenimi sürecidir: 'veri hazırlama'.

Bir model, verilerdeki deseni genelleştirir. Böyle bir deseni yakalamak için önce onu bulmanız gerekir. Herhangi bir makine öğrenimi algoritmasını çalıştırmadan önce bir veri analizi yapmak iyi bir uygulamadır.

Doğru özellikleri seçmek, modelinizin başarısında tüm farkı yaratır. Bir insanın ücretini tahmin etmeye çalıştığınızı hayal edin, cinsiyeti bir değişken olarak dahil etmezseniz, sonuç olarak kötü bir tahminle sonuçlanırsınız.

Modeli geliştirmenin bir başka yolu da bağımsız değişken arasındaki korelasyona bakmaktır. Örneğe dönersek, eğitimi, maaşın yanı sıra mesleği de tahmin etmek için mükemmel bir aday olarak düşünebilirsiniz. Mesleğin eğitim düzeyine bağlı olduğunu söylemek doğru olur, yani yüksek eğitim genellikle daha iyi bir mesleğe yol açar. Bu fikri genelleştirirsek, bağımlı değişken ile açıklayıcı değişken arasındaki korelasyonun bir başka açıklayıcı değişkenle büyütülebileceğini söyleyebiliriz.

Eğitimin meslek üzerindeki sınırlı etkisini yakalamak için bir etkileşim terimi kullanabiliriz.

Ücret denklemine bakarsanız, şöyle olur:

Eğer pozitif ise, ek bir eğitim seviyesinin, yüksek bir meslek seviyesi için bir evin medyan değerinde daha yüksek bir artış sağladığı anlamına gelir. Başka bir deyişle, eğitim ve meslek arasında bir etkileşim etkisi vardır.

Bu derste, hangi değişkenlerin etkileşim terimleri için iyi bir aday olabileceğini görmeye çalışacağız. Bu tür bilgilerin eklenmesinin daha iyi fiyat tahminine yol açıp açmadığını test edeceğiz.

Bu eğitimde, öğreneceksiniz

Özet istatistikler

Modele geçmeden önce izleyebileceğiniz birkaç adım var. Daha önce de belirtildiği gibi, model verilerin bir genellemesidir. En uygun uygulama, verileri anlamak ve bir tahminde bulunmaktır. Verilerinizi bilmiyorsanız, modelinizi geliştirmek için çok az şansınız var.

İlk adım olarak, verileri bir panda veri çerçevesi olarak yükleyin ve bir eğitim seti ve test seti oluşturun.

İpuçları: Bu eğitim için Python'da matplotlit ve seaborn kurulu olmalıdır. Python paketini Jupyter ile anında kurabilirsiniz. Sen Yapmamalı bunu yap |_+_|

ama |__+_|

Matplotlib ve seaborn kurulu ise bu adımın gerekli olmadığını unutmayın.

Matplotlib, Python'da bir grafik oluşturmak için kullanılan kütüphanedir. Seaborn, matplotlib üzerine kurulmuş bir istatistiksel görselleştirme kütüphanesidir. Çekici ve güzel araziler sağlar.

Aşağıdaki kod gerekli kitaplıkları içe aktarır. |_+_|

Kütüphane sklearn, Boston veri setini içerir. Verileri içe aktarmak için API'sini arayabilirsiniz. |_+_|

Özelliğin adı, bir dizideki feature_names nesnesinde saklanır. |_+_|

Çıktı

!conda install -- yes matplotlib

Sütunları yeniden adlandırabilirsiniz. |_+_|

CHAS değişkenini bir dizge değişkeni olarak dönüştürür ve CHAS = 1 ise evet ve CHAS = 0 ise hayır olarak etiketlersiniz |_+_|

Pandalarda veri kümesini bölmek kolaydır. Veri setini yüzde 80 eğitim seti ve yüzde 20 test seti ile rastgele bölüyorsunuz. Pandalar, bir veri çerçevesi örneğini bölmek için yerleşik bir maliyet işlevine sahiptir.

İlk frac parametresi 0 ile 1 arasında bir değerdir. Veri çerçevesinin yüzde 80'ini rastgele seçmek için onu 0,8'e ayarlarsınız.

Random_state, herkes için aynı veri çerçevesinin döndürülmesine izin verir. |_+_|

Verilerin şeklini alabilirsiniz. Olmalı:

  • Tren seti: 506*0.8 = 405
  • Test seti: 506*0.2 = 101
 import sys !{sys.executable} -m pip install matplotlib # Already installed !{sys.executable} -m pip install seaborn 

Çıktı

 import pandas as pd from sklearn import datasets import tensorflow as tf from sklearn.datasets import load_boston import numpy as np 
 boston = load_boston() df = pd.DataFrame(boston.data) 

Çıktı

suç ZN ENDÜSTRİ CHAS NOX RM YAŞ SÖYLEMEK RAD VERGİ UYGULAMA B LSTAT FİYAT
0 0.0063218.02.31numara0,5386.57565.24.09001.0296.015.3396.904.9824.0
1 0.027310.07.07numara0.4696.42178.94,96712.0242.017.8396.909.1421.6
3 0.032370.02.18numara0.4586.99845.86.06223.0222.018.7394.632.9433.4
6 0.0882912.57.87numara0.5246.01266.65.56055.0311.015.2395.6012.4322.9
7 0.1445512.57.87numara0.5246.17296.15,95055.0311.015.2396.9019.1527.1

Veriler dağınıktır; genellikle dengesizdir ve analiz ve makine öğrenimi eğitimini boşa çıkaran aykırı değerlerle serpilir.

Veri kümesini temizlemenin ilk adımı, nerede temizlenmesi gerektiğini anlamaktır. Bir veri kümesini temizlemek, özellikle herhangi bir genelleştirilebilir şekilde yapmak zor olabilir.

Google Araştırma ekibi, bu iş için adı verilen bir araç geliştirdi: yönler Bu, verileri görselleştirmeye ve her türlü şekilde dilimlemeye yardımcı olur. Bu, veri kümesinin nasıl düzenlendiğini anlamak için iyi bir başlangıç ​​noktasıdır.

Yönler, verilerin düşündüğünüz gibi görünmediği yerleri bulmanızı sağlar.

Google, web uygulamaları dışında, araç setini bir Jupyter not defterine yerleştirmeyi kolaylaştırır.

Facets'in iki bölümü vardır:

  • Yönlere Genel Bakış
  • Yönler Derin Dalış

Yönlere Genel Bakış

Yönlere Genel Bakış, veri kümesine genel bir bakış sunar. Yönlere Genel Bakış, verilerin sütunlarını aşağıdakileri gösteren belirgin bilgi satırlarına böler:

  1. eksik gözlem yüzdesi
  2. minimum ve maksimum değerler
  3. ortalama, medyan ve standart sapma gibi istatistikler.
  4. Ayrıca, değerlerin çoğu sıfır olduğunda yardımcı olan, sıfır olan değerlerin yüzdesini gösteren bir sütun ekler.
  5. Bu dağılımları test veri setinde ve her bir özellik için eğitim setinde görmek mümkündür. Bu, testin eğitim verilerine benzer bir dağılıma sahip olduğunu iki kez kontrol edebileceğiniz anlamına gelir.

Bu, en azından herhangi bir makine öğrenimi görevinden önce yapılması gereken minimum şeydir. Bu araçla, bu önemli adımı kaçırmazsınız ve bazı anormallikleri vurgular.

Yönler Derin Dalış

Facets Deep Dive harika bir araçtır. Veri kümenizde biraz netliğe sahip olmanıza ve tek bir veri parçasını görmek için tamamen yakınlaştırmanıza olanak tanır. Bu, veri kümesinin herhangi bir özelliğinde verileri satır ve sütuna göre düzenleyebileceğiniz anlamına gelir.

Bu iki aracı Boston veri seti ile kullanacağız.

Not : Facets Overview ve Facets Deep Dive'ı aynı anda kullanamazsınız. Aracı değiştirmek için önce not defterini temizlemeniz gerekir.

Yönü Yükle

Analizlerin çoğu için Facet web uygulamasını kullanabilirsiniz. Bu eğitimde, onu bir Jupyter Notebook içinde nasıl kullanacağınızı göreceksiniz.

Her şeyden önce, nbextensions yüklemeniz gerekir. Bu kod ile yapılır. Aşağıdaki kodu kopyalayıp makinenizin terminaline yapıştırıyorsunuz. |_+_|

Bundan hemen sonra, bilgisayarınızdaki depoları klonlamanız gerekir. İki seçeneğiniz var:

Seçenek 1) Bu kodu kopyalayıp terminale yapıştırın (Tavsiye edilen)

Makinenizde Git kurulu değilse, lütfen bu URL'ye gidin https://git-scm.com/download/win ve talimatı izleyin. İşiniz bittiğinde, Mac Kullanıcısı için terminaldeki git komutunu veya Windows kullanıcısı için Anaconda istemini kullanabilirsiniz |_+_|

Seçenek 2) git https://github.com/PAIR-code/facets ve depoları indirin.

İlk seçeneği seçerseniz, dosya indirme dosyanızda sona erer. Dosyanın indirilmesine izin verebilir veya başka bir yola sürükleyebilirsiniz.

Bu komut satırı ile Facets'in nerede saklandığını kontrol edebilirsiniz: |_+_|

Artık Facets'i bulduğunuza göre, onu Jupyter Notebook'a yüklemeniz gerekiyor. Çalışma dizinini, fasetlerin bulunduğu yola ayarlamanız gerekir.

Mevcut çalışma dizininiz ve Facets zip konumunuz aynı olmalıdır.

Çalışma dizinini Facet'e yönlendirmeniz gerekiyor: |_+_|

Facets'i Jupyter'a kurmak için iki seçeneğiniz var. Jupyter'ı tüm kullanıcılar için Conda ile yüklediyseniz, bu kodu kopyalayın:

jupyter nbextension kurulum facets-dist/ |_+_|

Aksi takdirde, şunu kullanın: |_+_|

Tamam, hazırsın. Facet Overview'ı açalım.

genel bakış

Genel Bakış, istatistikleri hesaplamak için bir Python betiği kullanır. Generic_feature_statistics_generator adlı betiği Jupyter'a aktarmanız gerekiyor. Merak etme; komut dosyası, faset dosyalarında bulunur.

Onun yolunu bulmanız gerekiyor. Kolayca yapılır. Fasetleri açarsınız, facets_overview dosyasını ve ardından python'u açarsınız. Yolu kopyala

Bundan sonra Jupyter'a geri dönün ve aşağıdaki kodu yazın. '/Users/Thomas/facets/facets_overview/python' yolunu kendi yolunuzla değiştirin. |_+_|

Aşağıdaki kod ile scripti import edebilirsiniz. |_+_|

Pencerelerde aynı kod |_+_| olur.

Özellik istatistiklerini hesaplamak için GenericFeatureStatisticsGenerator() işlevini kullanmanız ve ProtoFromDataFrames nesnesini kullanmanız gerekir. Veri çerçevesini bir sözlükte iletebilirsiniz. Örneğin, tren seti için bir özet istatistik oluşturmak istiyorsak, bilgileri bir sözlükte saklayabilir ve `ProtoFromDataFrames` nesnesinde kullanabiliriz.

  • boston.feature_names

Ad, tablonun adını görüntüler ve özetini hesaplamak istediğiniz tablonun adını kullanırsınız. Örneğinizde, verileri içeren tablo df_train |_+_|

Son olarak aşağıdaki kodu kopyalayıp yapıştırmanız yeterlidir. Kod doğrudan GitHub'dan gelir. Bunu görebilmeniz gerekir:

array(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD','TAX', 'PTRATIO', 'B', 'LSTAT'], dtype='

grafik

Verileri ve dağılımlarını kontrol ettikten sonra bir korelasyon matrisi çizebilirsiniz. Korelasyon matrisi Pearson katsayısını hesaplar. Bu katsayı -1 ile 1 arasında bağlanmıştır, pozitif bir değer pozitif bir korelasyonu ve negatif bir değer negatif bir korelasyonu gösterir.

Hangi değişkenlerin etkileşim terimleri için iyi bir aday olabileceğini görmek istiyorsunuz. |_+_|

png

Matristen şunları görebilirsiniz:

  • LSTAT
  • RM

PRICE ile güçlü bir şekilde ilişkilidir. Bir başka heyecan verici özellik, NOX ve INDUS arasındaki güçlü pozitif korelasyondur; bu, bu iki değişkenin aynı yönde hareket ettiği anlamına gelir. Ayrıca, FİYAT ile de ilişkilidir. DIS ayrıca IND ve NOX ile yüksek oranda ilişkilidir.

IND ve NOX'in kesişme terimi için iyi adaylar olabileceğine dair bazı ilk ipuçlarınız var ve DIS de odaklanmak ilginç olabilir.

Bir çift ızgara çizerek biraz daha derine inebilirsiniz. Daha önce çizdiğiniz korelasyon haritasını daha ayrıntılı olarak gösterecektir.

Oluşturduğumuz çift ızgara aşağıdaki gibidir:

  • Üst kısım: Yerleştirilmiş hat ile dağılım grafiği
  • Çapraz: Çekirdek yoğunluğu grafiği
  • Alt kısım: Çok değişkenli çekirdek yoğunluğu grafiği

Dört bağımsız değişkene odaklanmayı seçersiniz. Seçim, PRICE ile güçlü korelasyona sahip değişkenlere karşılık gelir

  • ENDÜSTRİ
  • NOX
  • RM
  • LSTAT

üstelik FİYAT.

Not standart hatanın varsayılan olarak dağılım grafiğine eklendiğini. |_+_|

Çıktı

Üst kısımdan başlayalım:

  • Fiyat, INDUS, NOX ve LSTAT ile negatif ilişkilidir; RM ile pozitif ilişkilidir.
  • LSTAT ve PRICE ile biraz doğrusal olmayan bir durum var
  • Fiyat 50'ye eşit olduğunda düz bir çizgi vardır. Veri kümesinin açıklamasından PRICE, 50 değerinde kesilmiştir.

Diyagonal

  • NOX, biri 0,5 ve diğeri 0,85 civarında olmak üzere iki kümeye sahip görünüyor.

Daha fazlasını kontrol etmek için alt kısma bakabilirsiniz. Çok Değişkenli Çekirdek Yoğunluğu, noktaların çoğunun olduğu yeri renklendirmesi açısından ilginçtir. Veri kümesinde belirli bir koordinat için bir nokta olmamasına rağmen, dağılım grafiğindeki fark bir olasılık yoğunluğu çizer. Renk daha güçlü olduğunda, bu alan çevresinde yüksek bir nokta konsantrasyonu olduğunu gösterir.

INDUS ve NOX için çok değişkenli yoğunluğu kontrol ederseniz, pozitif korelasyonu ve iki kümeyi görebilirsiniz. Sektörün payı 18'in üzerinde olduğunda nitrik oksit konsantrasyonu 0,6'nın üzerindedir.

Doğrusal ilişkide INDUS ve NOX arasında bir etkileşim eklemeyi düşünebilirsiniz.

Son olarak, Google tarafından oluşturulan ikinci araç olan Facets Deep Dive'ı kullanabilirsiniz. Arayüz dört ana bölüme ayrılmıştır. Merkezdeki merkezi alan, verilerin yakınlaştırılabilir bir görüntüsüdür. Panelin üst kısmında, verilerin düzenini, yüzey, konumlandırma ve rengi kontrol etmek için değiştirebileceğiniz açılır menü vardır. Sağda, belirli bir veri satırının ayrıntılı bir görünümü vardır. Bu, o belirli veri noktasıyla ilgili ayrıntıları görmek için merkez görselleştirmedeki herhangi bir veri noktasına tıklayabileceğiniz anlamına gelir.

Veri görselleştirme adımı sırasında, evin fiyatındaki bağımsız değişken arasındaki ikili korelasyonu araştırmakla ilgileniyorsunuz. Ancak, en az üç değişken içerir ve 3B grafiklerle çalışmak karmaşıktır.

Bu sorunu çözmenin bir yolu, kategorik bir değişken oluşturmaktır. Yani, noktayı renklendiren bir 2B çizim oluşturabiliriz. PRICE değişkenini, her kategori bir çeyrek (yani, 0,25, 0,5, 0,75) olacak şekilde dört kategoriye bölebilirsiniz. Bu yeni değişkeni Q_PRICE olarak adlandırıyorsunuz. |_+_|

Yönler Derin Dalış

Deep Dive'ı açmak için verileri bir json formatına dönüştürmeniz gerekir. Pandalar bunun için bir nesne olarak. Pandas veri setinden sonra to_json kullanabilirsiniz.

İlk kod satırı, veri kümesinin boyutunu işler. |_+_|

Aşağıdaki kod Google GitHub'dan geliyor. Kodu çalıştırdıktan sonra şunu görebilmeniz gerekir:

 df.columns = boston.feature_names df['PRICE'] = boston.target df.head(2) 

Endüstri oranı, oksit konsantrasyonu, iş merkezine uzaklık ve evin fiyatı arasında bir bağlantı olup olmadığını görmek istiyorsunuz.

Bunun için önce verileri sektör aralığına ve renge göre fiyat çeyreğiyle bölersiniz:

  • Faset X'i seçin ve INDUS'u seçin.
  • Görüntüle'yi seçin ve DIS'i seçin. Ev fiyatının çeyreği ile noktaları renklendirecek

burada daha koyu renkler, ilk iş merkezine olan mesafenin uzak olduğu anlamına gelir.

Şimdiye kadar, bildiklerinizi tekrar gösteriyor, daha düşük endüstri oranı, daha yüksek fiyat. Şimdi INDUX'a göre, NOX'a göre dağılıma bakabilirsiniz.

  • Y yüzeyini seçin ve NOX'i seçin.

Şimdi ilk iş merkezinden uzaktaki evin en düşük endüstri payına ve dolayısıyla en düşük oksit konsantrasyonuna sahip olduğunu görebilirsiniz. Türü Q_PRICE ile görüntülemeyi seçerseniz ve sol alt köşeyi yakınlaştırırsanız, ne tür bir fiyat olduğunu görebilirsiniz.

IND, NOX ve DIS arasındaki etkileşimin modeli geliştirmek için iyi adaylar olabileceğine dair başka bir ipucunuz var.

TensorFlow

Bu bölümde, TensorFlow tahmincileri API'si ile doğrusal sınıflandırıcıyı tahmin edeceksiniz. Aşağıdaki gibi ilerleyeceksiniz:

  • Verileri hazırlayın
  • Bir kıyaslama modeli tahmin edin: Etkileşim yok
  • Etkileşimli bir model tahmin edin

Unutmayın, makine öğreniminin amacı hatayı en aza indirmektir. Bu durumda ortalama kare hatası en düşük olan model kazanacaktır. TensorFlow tahmincisi bu ölçümü otomatik olarak hesaplar.

Hazırlık verileri

Çoğu durumda, verilerinizi dönüştürmeniz gerekir. Bu nedenle Yönlere Genel Bakış büyüleyicidir. Özet istatistikten, aykırı değerler olduğunu gördünüz. Bu değerler, analiz ettiğiniz popülasyona benzemediğinden tahminleri etkiler. Aykırı değerler genellikle sonuçları saptırır. Örneğin, pozitif bir aykırı değer, katsayıyı olduğundan fazla tahmin etme eğilimindedir.

Bu sorunu çözmek için iyi bir çözüm, değişkeni standart hale getirmektir. Standardizasyon, birin standart sapması ve sıfırın ortalaması anlamına gelir. Standardizasyon süreci iki adımdan oluşur. Her şeyden önce, değişkenin ortalama değerini çıkarır. İkinci olarak, dağılımın birim varyansına sahip olması için varyansa bölünür.

Sklearn kütüphanesi, değişkenleri standartlaştırmaya yardımcı olur. Bunun için nesne ölçeği ile modül ön işlemeyi kullanabilirsiniz.

Bir veri kümesini ölçeklendirmek için aşağıdaki işlevi kullanabilirsiniz. Etiket sütununu ve kategorik değişkenleri ölçeklemediğinizi unutmayın. |_+_|

Ölçeklendirilmiş tren/test setini oluşturmak için işlevi kullanabilirsiniz. |_+_|

Temel regresyon: Benchmark

Her şeyden önce, bir modeli etkileşim olmadan eğitir ve test edersiniz. Amaç, modelin performans metriğini görmektir.

Modeli eğitmenin yolu tam olarak aşağıdaki öğretici gibidir. Üst düzey API . TensorFlow tahmincisi LinearRegressor'u kullanacaksınız.

Bir hatırlatma olarak, şunları seçmeniz gerekir:

  • modele koyulacak özellikler
  • özellikleri dönüştürmek
  • lineer regresörü inşa et
  • input_fn işlevini oluştur
  • modeli eğit
  • modeli test et

Modeli eğitmek için veri kümesindeki tüm değişkenleri kullanırsınız. Toplamda, üst düzey sürekli değişkenler ve bir kategorik değişken |_+_|

Unsurları sayısal bir sütuna veya kategorik bir sütuna dönüştürürsünüz |_+_|

Modeli linearRegressor ile yaratırsınız. Modeli train_Boston |_+_| klasöründe saklarsınız.

Çıktı

 df['CHAS'] = df['CHAS'].map({1:'yes', 0:'no'}) df['CHAS'].head(5) 0 no 1 no 2 no 3 no 4 no Name: CHAS, dtype: object 

Trendeki veya test verilerindeki her sütun, get_input_fn |_+_| işleviyle bir Tensöre dönüştürülür.

Modeli tren verileri üzerinde tahmin edersiniz. |_+_|

Çıktı

 ### Create train/test set df_train=df.sample(frac=0.8,random_state=200) df_test=df.drop(df_train.index) 

Son olarak, modelin performanslarını test setinde |_+_| tahmin edersiniz.

Çıktı

print(df_train.shape, df_test.shape)

Modelin kaybı 1650'dir. Bu, bir sonraki bölümde geçilecek metriktir.

Modeli geliştirin: Etkileşim terimi

Eğitimin ilk bölümünde değişkenler arasında ilginç bir ilişki gördünüz. Farklı görselleştirme teknikleri, INDUS ve NOS'un birbirine bağlı olduğunu ve fiyat üzerindeki etkiyi büyütmeye dönüştüğünü ortaya çıkardı. Sadece INDUS ve NOS arasındaki etkileşim fiyatı etkilemekle kalmaz, aynı zamanda DIS ile etkileşime girdiğinde bu etki daha güçlüdür.

Bu fikri genelleştirmenin ve tahmin edilen modeli geliştirip geliştiremeyeceğinizi görmenin zamanı geldi.

Her veri kümesine iki yeni sütun eklemeniz gerekir: tren + test. Bunun için, etkileşim terimini hesaplamak için bir işlev ve üçlü etkileşim terimini hesaplamak için başka bir işlev yaratırsınız. Her fonksiyon tek bir sütun üretir. Yeni değişkenler oluşturulduktan sonra bunları eğitim veri kümesine ve test veri kümesine birleştirebilirsiniz.

Öncelikle INDUS ve NOX arasındaki etkileşim için yeni bir değişken oluşturmanız gerekiyor.

Aşağıdaki işlev, INDUS ve NOX durumunuzda var_1 ve var_2 arasındaki etkileşimle birlikte tren ve test olmak üzere iki veri çerçevesi döndürür. |_+_|

İki yeni sütunu |_+_|

İkinci olarak, üçlü etkileşim terimini hesaplamak için ikinci bir işlev yaratırsınız. |_+_|

Artık gereken tüm sütunlara sahip olduğunuza göre, bunları veri kümesini eğitmek ve test etmek için ekleyebilirsiniz. Bu iki yeni veri çerçevesini adlandırın:

  • df_train_new
  • df_test_new
(405, 14) (101, 14) 

Çıktı

işte bu; etkileşim terimleri ile yeni modeli tahmin edebilir ve performans metriğinin nasıl olduğunu görebilirsiniz. |_+_|

Çıktı

df_test.head(5)

KOD |_+_| |_+_|

Çıktı

pip install jupyter_contrib_nbextensions 
git clone https://github.com/PAIR-code/facets 

Çıktı

echo `pwd`/`ls facets` 

Yeni kayıp 1515. Sadece iki yeni değişken ekleyerek kaybı azaltabildiniz. Bu, kıyaslama modelinden daha iyi bir tahmin yapabileceğiniz anlamına gelir.