回顾:贷款决策
本课属于 Coddy Machine Learning 学习旅程的“监督学习”单元。第 31 课,共 58 课。
挑战
中等还记得本章提到的农场贷款吗?一个小额贷款基金想要一棵能向农民解释清楚的树。起始代码会拆分过去的贷款数据。
- 从深度 1 开始逐步加深树(
random_state=0),并打印每次测试的准确率。遇到准确率不高于前一次的深度时就停止。 - 保留最后一个准确率有所提升的深度:打印这个深度和该树的问题。
- 按下面的格式打印最重要的两个特征。
另一个基金的结果:
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)亲手试试
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text
# 向小型农场发放的历史小额贷款:repaid 中的 1 表示贷款已全额还清
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)
# 在下方编写你的代码
监督学习中的所有课
自己练习: Python 在线编译器