Düzenlileştirme

PySpark ile Machine Learning

Andrew Collier

Data Scientist, Fathom Data

Özellikler: Az sayıda

Az sayıda özelliğe sahip veri seti

PySpark ile Machine Learning

Özellikler: Çok fazla

Çok sayıda özelliğe sahip veri seti

PySpark ile Machine Learning

Özellikler: Seçilmiş

Çok sayıda özellikten seçim yapmak

PySpark ile Machine Learning

Kayıp fonksiyonu (yeniden)

Doğrusal regresyon MSE’yi en aza indirmeyi amaçlar.

Ortalama Kare Hata kayıp fonksiyonu

PySpark ile Machine Learning

Düzenlileştirmeli kayıp fonksiyonu

Doğrusal regresyon MSE’yi en aza indirmeyi amaçlar.

Düzenlileştirme terimli Ortalama Kare Hata

Katsayılara bağlı bir düzenlileştirme terimi ekleyin.

PySpark ile Machine Learning

Düzenlileştirme terimi

Kayıp fonksiyonuna ek bir düzenlileştirme terimi eklenir.

Düzenlileştirme terimi şunlardan biri olabilir:

  • Lasso — katsayıların mutlak değeri
  • Ridge — katsayıların karesi

Lasso ve Ridge’in karışımı da mümkündür.

Düzenlileştirmenin gücü $\lambda$ ile belirlenir:

  • $\lambda = 0$ — düzenlileştirme yok (standart regresyon)
  • $\lambda = \infty$ — tam düzenlileştirme (tüm katsayılar sıfır)
PySpark ile Machine Learning

Yeniden arabalar

assembler = VectorAssembler(inputCols=[
    'mass', 'cyl', 'type_dummy', 'density_line', 'density_quad', 'density_cube'
], outputCol='features')
cars = assembler.transform(cars)
+-----------------------------------------------------------------------------+-----------+
|features                                                                     |consumption|
+-----------------------------------------------------------------------------+-----------+
|[1451.0,6.0,1.0,0.0,0.0,0.0,0.0,303.8743455497,63.63860639785,13.32745683724]|9.05       |
|[1129.0,4.0,0.0,0.0,1.0,0.0,0.0,244.2137140385,52.82580879050,11.42673778726]|6.53       |
|[1399.0,4.0,0.0,0.0,1.0,0.0,0.0,307.6753903672,67.66557958374,14.88136784335]|7.84       |
|[1147.0,4.0,0.0,1.0,0.0,0.0,0.0,264.1031545014,60.81122599620,14.00212433714]|7.84       |
+-----------------------------------------------------------------------------+-----------+
PySpark ile Machine Learning

Arabalar: Doğrusal regresyon

Eğitim verisine (standart) Doğrusal Regresyon modeli uydurun.

regression = LinearRegression(labelCol='consumption').fit(cars_train)
# Test verisinde RMSE
0.708699086182001

Katsayıları inceleyin:

regression.coefficients
DenseVector([-0.012, 0.174, -0.897, -1.445, -0.985, -1.071, -1.335, 0.189, -0.780, 1.160])
PySpark ile Machine Learning

Arabalar: Ridge regresyonu

# alpha = 0 | lambda = 0.1 -> Ridge
ridge = LinearRegression(labelCol='consumption', elasticNetParam=0, regParam=0.1)
ridge.fit(cars_train)
# RMSE
0.724535609745491
# Ridge katsayıları
DenseVector([ 0.001, 0.137, -0.395, -0.822, -0.450, -0.582, -0.806, 0.008,  0.029, 0.001])
# Doğrusal Regresyon katsayıları
DenseVector([-0.012, 0.174, -0.897, -1.445, -0.985, -1.071, -1.335, 0.189, -0.780, 1.160])
PySpark ile Machine Learning

Arabalar: Lasso regresyonu

# alpha = 1 | lambda = 0.1 -> Lasso
lasso = LinearRegression(labelCol='consumption', elasticNetParam=1, regParam=0.1)
lasso.fit(cars_train)
# RMSE
0.771988667026998
# Lasso katsayıları
DenseVector([   0.0,   0.0,    0.0, -0.056,    0.0,    0.0,    0.0, 0.026,    0.0,   0.0])
# Ridge katsayıları
DenseVector([ 0.001, 0.137, -0.395, -0.822, -0.450, -0.582, -0.806, 0.008,  0.029, 0.001])
# Doğrusal Regresyon katsayıları
DenseVector([-0.012, 0.174, -0.897, -1.445, -0.985, -1.071, -1.335, 0.189, -0.780, 1.160])
PySpark ile Machine Learning

Düzenlileştirme → basit model

PySpark ile Machine Learning

Preparing Video For Download...