
172
|
第
6
章
6.10 练习题
1. 如果训练集有 100 万个实例,训练决策树(无约束)大致的深度是多少?
2. 通常来说,子节点的基尼不纯度是高于还是低于其父节点?是通常更高 / 更低?还
是永远更高 / 更低?
3. 如果决策树过拟合训练集,减少 max_depth 是否为一个好主意?
4. 如果决策树对训练集欠拟合,尝试缩放输入特征是否为一个好主意?
5. 如果在包含 100 万个实例的训练集上训练决策树需要一个小时,那么在包含 1000 万
个实例的训练集上训练决策树,大概需要多长时间?
6. 如果训练集包含 10 万个实例,设置 presort=True 可以加快训练吗?
7. 为卫星数据集训练并微调一个决策树。
a. 使用 make_moons(n_samples=10000,noise=0.4) 生成一个卫星数据集。
b. 使用 train_test_split() 拆分训练集和测试集。
c. 使用交叉验证的网格搜索(在 GridSearchCV 的帮助下)为 DecisionTree-
Classifier 找到适合的超参数。提示:尝试 max_leaf_nodes 的多种值。
d. 使用超参数对整个训练集进行训练,并测量模型在测试集上的性能。你应该得
到约 85%
~
87% 的准确率。
8. 按照以下步骤种植森林。
a. 继续之前的练习,生产 1000 个训练集子集,每个子集包含随机挑选的 100 个实
例。提示:使用 Scikit-Learn 的 ShuffleSplit 来实现。
b.