Menu
CoddyTech

Ôn tập: quyết định cho vay

Thuộc phần Học có giám sát trong hành trình Machine Learning của Coddy. Bài học 31 trên 58.

challenge icon

Thử thách

Trung bình

Còn nhớ khoản vay cho nông trại mà chương này đã nhắc đến không? Một quỹ cho vay vi mô muốn có một cây quyết định mà quỹ có thể giải thích cho nông dân. Đoạn code khởi đầu chia dữ liệu các khoản vay trước đây.

  1. Huấn luyện cây quyết định từ độ sâu 1 trở lên (random_state=0), in độ chính xác trên tập kiểm tra ở mỗi độ sâu. Dừng ở độ sâu đầu tiên không cho kết quả tốt hơn độ sâu trước đó.
  2. Giữ lại độ sâu cuối cùng có cải thiện: in độ sâu đó và các câu hỏi của cây tương ứng.
  3. In hai đặc trưng quan trọng nhất của cây, như bên dưới.

Với một quỹ khác:

Depth 1: test accuracy 0.650
Depth 2: test accuracy 0.850
Depth 3: test accuracy 0.833
Keep depth 2
|--- savings_usd <= 154.50
|   |--- earlier_loans <= 0.50
|   |   |--- class: 0
|   |--- earlier_loans >  0.50
|   |   |--- class: 1
|--- savings_usd >  154.50
|   |--- earlier_loans <= 0.50
|   |   |--- class: 1
|   |--- earlier_loans >  0.50
|   |   |--- class: 1

Most important: savings_usd (0.563)
Next: earlier_loans (0.437)

Tự làm thử

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text

# Các khoản vay nhỏ trước đây dành cho nông trại nhỏ: 1 trong repaid nghĩa là khoản vay đã được trả hết
loans = pd.read_csv("loans.csv")
features = ["amount_usd", "income_usd", "years_farming", "earlier_loans", "savings_usd", "group_size"]
X_train, X_test, y_train, y_test = train_test_split(loans[features], loans["repaid"], test_size=0.25, random_state=0)

# Viết code bên dưới

Tất cả bài học trong Học có giám sát

Tự luyện tập: Trình biên dịch Python online