Lojistik Regresyon

PySpark ile Machine Learning

Andrew Collier

Data Scientist, Fathom Data

Lojistik Eğri

Bir lojistik eğri.

PySpark ile Machine Learning

Lojistik Eğri

Eşik üzeri gölgeli bir lojistik eğri

PySpark ile Machine Learning

Lojistik Eğri

Eşik altı gölgeli bir lojistik eğri

PySpark ile Machine Learning

Lojistik Eğri

Sağa kaydırılmış bir lojistik eğri

PySpark ile Machine Learning

Lojistik Eğri

Sola kaydırılmış bir lojistik eğri

PySpark ile Machine Learning

Lojistik Eğri

Kademeli geçişli bir lojistik eğri

PySpark ile Machine Learning

Lojistik Eğri

Hızlı geçişli bir lojistik eğri

PySpark ile Machine Learning

Arabalar: tekrar

Modellemeye hazırlık:

  • yordayıcıları tek bir sütunda toplayın (features) ve
  • veriyi eğitim ve test olarak ayırın.
+---+----+------+------+----+-----------+----------------------------------+-----+
|cyl|size|mass  |length|rpm |consumption|features                          |label|
+---+----+------+------+----+-----------+----------------------------------+-----+
|6  |3.0 |1451.0|4.775 |5200|9.05       |[6.0,3.0,1451.0,4.775,5200.0,9.05]|1.0  |
|4  |2.2 |1129.0|4.623 |5200|6.53       |[4.0,2.2,1129.0,4.623,5200.0,6.53]|0.0  |
|4  |2.2 |1399.0|4.547 |5600|7.84       |[4.0,2.2,1399.0,4.547,5600.0,7.84]|1.0  |
|4  |1.8 |1147.0|4.343 |6500|7.84       |[4.0,1.8,1147.0,4.343,6500.0,7.84]|0.0  |
|4  |1.6 |1111.0|4.216 |5750|9.05       |[4.0,1.6,1111.0,4.216,5750.0,9.05]|0.0  |
+---+----+------+------+----+-----------+----------------------------------+-----+
PySpark ile Machine Learning

Lojistik Regresyon modeli kurma

from pyspark.ml.classification import LogisticRegression

Bir Lojistik Regresyon sınıflandırıcısı oluşturun.

logistic = LogisticRegression()

Eğitim verisinden öğrenin.

logistic = logistic.fit(cars_train)
PySpark ile Machine Learning

Tahminler

prediction = logistic.transform(cars_test)
+-----+----------+---------------------------------------+
|label|prediction|probability                            |
+-----+----------+---------------------------------------+
|0.0  |0.0       |[0.8683802216422138,0.1316197783577862]|
|0.0  |1.0       |[0.1343792056399585,0.8656207943600416]|
|0.0  |0.0       |[0.9773546766387631,0.0226453233612368]|
|1.0  |1.0       |[0.0170508265586195,0.9829491734413806]|
|1.0  |0.0       |[0.6122241729292978,0.3877758270707023]|
+-----+----------+---------------------------------------+
PySpark ile Machine Learning

Kesinlik ve duyarlılık

Model test verisinde ne kadar iyi?

Karmaşıklık matrisine bakın.

+-----+----------+-----+
|label|prediction|count|
+-----+----------+-----+
|  1.0|       1.0|    8| - TP (true positive)
|  0.0|       1.0|    4| - FP (false positive)
|  1.0|       0.0|    2| - FN (false negative)
|  0.0|       0.0|   10| - TN (true negative)
+-----+----------+-----+
# Kesinlik (pozitif)
TP / (TP + FP)
0.6666666666666666
# Duyarlılık (pozitif)
TP / (TP + FN)
0.8
PySpark ile Machine Learning

Ağırlıklı metrikler

from pyspark.ml.evaluation import MulticlassClassificationEvaluator

evaluator = MulticlassClassificationEvaluator()

evaluator.evaluate(prediction, {evaluator.metricName: 'weightedPrecision'})
0.7638888888888888

Diğer metrikler:

  • weightedRecall
  • accuracy
  • f1
PySpark ile Machine Learning

ROC ve AUC

Bir ROC eğrisi

ROC = "Receiver Operating Characteristic"

  • TP'ye karşı FP
  • eşik = 0 (sağ üst)
  • eşik = 1 (sol alt)

AUC = "Eğri altındaki alan"

  • idealde AUC = 1
PySpark ile Machine Learning

Hadi Lojistik Regresyon yapalım!

PySpark ile Machine Learning

Preparing Video For Download...