[自用] 菜菜的sklearn 机器学习调参+实例

目录

4 机器学习中调参的基本思想

泛化误差

5 实例:随机森林在乳腺癌数据上的调参

1. 导入需要的库

2. 导入数据集,探索数据

3. 进行一次简单的建模,看看模型本身在数据集上的效果

4. 随机森林调整第一步:先调n_estimators

5. 在确定好的范围内,进一步细化学习曲线

6. 为网格搜索做准备,书写网格搜索的参数

7. 按照参数对准确率的影响程度进行调参,首先调max_depth

8. 调整max_features

9. 调整min_samples_leaf

10. 调整min_samples_split

11. 调整criterion

12. 调整完毕,总结模型的最佳参数


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
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值