Tập hợp mô hình

Machine Learning với PySpark

Andrew Collier

Data Scientist, Fathom Data

Tập hợp là gì?

Đó là một tập hợp mô hình.

Một tập hợp các mô hình tương tự

Sự thông thái của đám đông — ý kiến tập thể thường tốt hơn ý kiến của một chuyên gia đơn lẻ.

Machine Learning với PySpark

Đa dạng trong tập hợp

 

 

 

Đa dạngđộc lập rất quan trọng vì quyết định tập thể tốt nhất là sản phẩm của bất đồng và tranh luận, không phải đồng thuận hay thỏa hiệp.

― James Surowiecki, The Wisdom of Crowds

Machine Learning với PySpark

Rừng ngẫu nhiên

Random Forest — một tập hợp các Cây quyết định

Tạo đa dạng mô hình:

  • mỗi cây huấn luyện trên tập con ngẫu nhiên của dữ liệu
  • tập con ngẫu nhiên đặc trưng dùng để chia tại mỗi nút

Không cây nào trong rừng giống hệt nhau.

Một tập hợp cây

Machine Learning với PySpark

Tạo một rừng cây

Quay lại dữ liệu ô tô: sản xuất tại Mỹ (0.0) hay không (1.0).

Tạo bộ phân loại Rừng ngẫu nhiên.

from pyspark.ml.classification import RandomForestClassifier

forest = RandomForestClassifier(numTrees=5)

Huấn luyện trên dữ liệu train.

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

Xem các cây

Cách truy cập các cây trong rừng?

forest.trees
[DecisionTreeClassificationModel (uid=dtc_aa66702a4ce9) of depth 5 with 17 nodes,
 DecisionTreeClassificationModel (uid=dtc_99f7efedafe9) of depth 5 with 31 nodes,
 DecisionTreeClassificationModel (uid=dtc_9306e4a5fa1d) of depth 5 with 21 nodes,
 DecisionTreeClassificationModel (uid=dtc_d643bd48a8dd) of depth 5 with 23 nodes,
 DecisionTreeClassificationModel (uid=dtc_a2d5abd67969) of depth 5 with 27 nodes]

Mỗi cây có thể dùng để dự đoán riêng lẻ.

Machine Learning với PySpark

Dự đoán từ từng cây

Mỗi cây tạo ra dự đoán gì?

+------+------+------+------+------+-----+
|tree 0|tree 1|tree 2|tree 3|tree 4|label|
+------+------+------+------+------+-----+
|   0.0|   0.0|   0.0|   0.0|   0.0|  0.0| <- hoàn toàn đồng thuận
|   1.0|   1.0|   0.0|   1.0|   0.0|  0.0|
|   0.0|   0.0|   0.0|   1.0|   1.0|  1.0|
|   0.0|   0.0|   0.0|   1.0|   0.0|  0.0|
|   0.0|   1.0|   1.0|   1.0|   0.0|  1.0|
|   1.0|   1.0|   0.0|   1.0|   1.0|  1.0|
|   1.0|   1.0|   1.0|   1.0|   1.0|  1.0| <- hoàn toàn đồng thuận
+------+------+------+------+------+-----+
Machine Learning với PySpark

Dự đoán đồng thuận

Dùng phương thức .transform() để tạo dự đoán đồng thuận.

+-----+----------------------------------------+----------+
|label|probability                             |prediction|
+-----+----------------------------------------+----------+
|0.0  |[0.8,0.2]                               |0.0       |
|0.0  |[0.4,0.6]                               |1.0       |
|1.0  |[0.5333333333333333,0.4666666666666666] |0.0       |
|0.0  |[0.7177777777777778,0.28222222222222226]|0.0       |
|1.0  |[0.39396825396825397,0.606031746031746] |1.0       |
|1.0  |[0.17660818713450294,0.823391812865497] |1.0       |
|1.0  |[0.053968253968253964,0.946031746031746]|1.0       |
+-----+----------------------------------------+----------+
Machine Learning với PySpark

Độ quan trọng của đặc trưng

Mô hình dùng các đặc trưng: cyl, size, mass, length, rpmconsumption.

Đặc trưng nào quan trọng nhất/ít nhất?

forest.featureImportances
SparseVector(6, {0: 0.0205, 1: 0.2701, 2: 0.108, 3: 0.1895, 4: 0.2939, 5: 0.1181})

Trông như:

  • rpm quan trọng nhất
  • cyl ít quan trọng nhất.
Machine Learning với PySpark

Cây tăng cường độ dốc (GBT)

Thuật toán boosting lặp:

  1. Xây cây quyết định và thêm vào tập hợp.
  2. Dự đoán nhãn cho từng mẫu huấn luyện bằng tập hợp.
  3. So sánh dự đoán với nhãn đã biết.
  4. Nhấn mạnh các mẫu dự đoán sai.
  5. Quay lại bước 1.

Mô hình cải thiện qua mỗi vòng lặp.

Machine Learning với PySpark

Boosting cây

Tạo bộ phân loại Gradient-Boosted Tree.

from pyspark.ml.classification import GBTClassifier

gbt = GBTClassifier(maxIter=10)

Huấn luyện trên dữ liệu train.

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

So sánh các cây

Hãy so sánh ba loại mô hình cây trên dữ liệu kiểm tra.

# AUC cho Cây quyết định
0.5875

# AUC cho Rừng ngẫu nhiên
0.65

# AUC cho Cây tăng cường độ dốc
0.65

Cả hai phương pháp tập hợp đều tốt hơn Cây quyết định đơn lẻ.

Machine Learning với PySpark

Tập hợp tất cả mô hình!

Machine Learning với PySpark

Preparing Video For Download...