Hồi quy logistic

Machine Learning với PySpark

Andrew Collier

Data Scientist, Fathom Data

Đường cong logistic

Một đường cong logistic.

Machine Learning với PySpark

Đường cong logistic

Một đường logistic với vùng tô phía trên ngưỡng

Machine Learning với PySpark

Đường cong logistic

Một đường logistic với vùng tô phía dưới ngưỡng

Machine Learning với PySpark

Đường cong logistic

Một đường logistic tịnh tiến sang phải

Machine Learning với PySpark

Đường cong logistic

Một đường logistic tịnh tiến sang trái

Machine Learning với PySpark

Đường cong logistic

Một đường logistic với chuyển tiếp dần

Machine Learning với PySpark

Đường cong logistic

Một đường logistic với chuyển tiếp nhanh

Machine Learning với PySpark

Xe hơi: xem lại

Chuẩn bị mô hình:

  • gộp các biến dự đoán vào một cột (features) và
  • chia dữ liệu thành tập huấn luyện và kiểm tra.
+---+----+------+------+----+-----------+----------------------------------+-----+
|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  |
+---+----+------+------+----+-----------+----------------------------------+-----+
Machine Learning với PySpark

Xây mô hình Hồi quy Logistic

from pyspark.ml.classification import LogisticRegression

Tạo bộ phân loại Hồi quy Logistic.

logistic = LogisticRegression()

Học từ dữ liệu huấn luyện.

logistic = logistic.fit(cars_train)
Machine Learning với PySpark

Dự đoán

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]|
+-----+----------+---------------------------------------+
Machine Learning với PySpark

Độ chính xác và độ bao phủ

Mô hình hoạt động thế nào trên dữ liệu kiểm tra?

Xem ma trận nhầm lẫn.

+-----+----------+-----+
|label|prediction|count|
+-----+----------+-----+
|  1.0|       1.0|    8| - TP (dương tính đúng)
|  0.0|       1.0|    4| - FP (dương tính sai)
|  1.0|       0.0|    2| - FN (âm tính sai)
|  0.0|       0.0|   10| - TN (âm tính đúng)
+-----+----------+-----+
# Precision (positive)
TP / (TP + FP)
0.6666666666666666
# Recall (positive)
TP / (TP + FN)
0.8
Machine Learning với PySpark

Chỉ số có trọng số

from pyspark.ml.evaluation import MulticlassClassificationEvaluator

evaluator = MulticlassClassificationEvaluator()

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

Chỉ số khác:

  • weightedRecall
  • accuracy
  • f1
Machine Learning với PySpark

ROC và AUC

Một đường cong ROC

ROC = "Receiver Operating Characteristic"

  • TP so với FP
  • ngưỡng = 0 (góc trên phải)
  • ngưỡng = 1 (góc dưới trái)

AUC = "Diện tích dưới đường cong"

  • lý tưởng AUC = 1
Machine Learning với PySpark

Thực hành Hồi quy Logistic!

Machine Learning với PySpark

Preparing Video For Download...