目录
7. 按照参数对准确率的影响程度进行调参,首先调max_depth
4 机器学习中调参的基本思想
调参思路:
第一步找准目标
对于随机森林,我们想要提升模型在未知数据上的准确率;
而机器学习中,衡量模型在位置数据上的准确率的指标,叫做泛化误差(Genelization error)
泛化误差
泛化误差受到模型的结构(复杂度)影响;
模型过于复杂,容易过拟合,泛化能力不够,泛化误差大;
模型太简单,容易欠拟合,拟合程度不够,泛化误差也会大;
模型的复杂度与参数有什么关系呢:
对于树模型来说,树越多,深度越深,枝叶越多,模型越复杂;
随机森林是天生复杂度高的模型;
随机森林调参,都向着减少模型复杂度的目标;
参数 | 对模型在未知数据上的评估性能的影响 | 影响程度 |
n_estimators | 将准确率提升至平稳,它上升不影响单个模型的复杂度 | ⭐⭐⭐⭐⭐ |
max_depth | 默认最大深度,即最高复杂度,下降模型更简单 | ⭐⭐ |
min_samples_leaf | 默认最小限制1,即最高复杂度,上升模型更简单 | ⭐⭐ |
min_samples_split | 默认最小限制2,即最高复杂度,上升模型更简单 | ⭐⭐ |
max_features | 默认auto,是特征总数的开平方,下降模型更简单,上升模型更复杂; 它是唯一既能让模型更简单也能让模型更复杂的参数 |
⭐ |
criterion | 一般使用gini | 看具体情况 |
5 实例:随机森林在乳腺癌数据上的调参
1. 导入需要的库
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
2. 导入数据集,探索数据
data = load_breast_cancer()
data
data.data.shape
data.target