当前位置: 首页 > news >正文

wordpress售后主题百度关键词优化软件如何

wordpress售后主题,百度关键词优化软件如何,0797 网站制作,如何设计一个网页面板文章目录 一、概述二、实操1、导入相关包2、导入乳腺癌数据集,建立模型3、调参 三、总结 Link:https://zhuanlan.zhihu.com/p/126288078 Author:陈罐头 一、概述 sklearn是目前python中十分流行的用来实现机器学习的第三方包,其中…

文章目录

  • 一、概述
  • 二、实操
    • 1、导入相关包
    • 2、导入乳腺癌数据集,建立模型
    • 3、调参
  • 三、总结

Link:https://zhuanlan.zhihu.com/p/126288078
Author:陈罐头

一、概述

sklearn是目前python中十分流行的用来实现机器学习的第三方包,其中包含了多种常见算法如:决策树,逻辑回归、集成算法(如随机森林)等等。

本文将使用sklearn自带的乳腺癌数据集,建立随机森林,并基于 泛化误差(Genelization Error)模型复杂度的关系来对模型进行调参,从而使模型获得更高的得分。

泛化误差是机器学习中,用来衡量模型在未知数据上的准确率的指标,其与模型复杂度的关系如下图所示:
在这里插入图片描述
当模型复杂度不足时,机器学习不足,会出现欠拟合现象,泛化误差变大;当复杂度逐渐提高到最佳模型复杂度时,泛化误差会达到最低点(即最高准确度);若复杂度仍在提高,泛化误差从最小值开始逐渐增大,出现过拟合现象。

因此,我们的目的,是通过不断调参来不断调整模型复杂度,尽可能地接近泛化误差最低点

二、实操

1、导入相关包

from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import GridSearchCV
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

2、导入乳腺癌数据集,建立模型

由于sklearn自带的数据集已经很工整了,所以无需做预处理,直接使用。

# 导入乳腺癌数据集
data = load_breast_cancer()# 建立随机森林
rfc = RandomForestClassifier(n_estimators=100, random_state=90)用交叉验证计算得分
score_pre = cross_val_score(rfc, data.data, data.target, cv=10).mean()
score_pre

在这里插入图片描述

初始得分

3、调参

随机森林主要的参数有n_estimators(子树的数量)、max_depth(树的最大生长深度)、min_samples_leaf(叶子的最小样本数量)、min_samples_split(分支节点的最小样本数量)、max_features(最大选择特征数)。

它们对随机森林模型复杂度的影响如下图所示:
在这里插入图片描述

可以看到,n_estimators是影响程度最大的参数,我们先对其进行调整:

# 调参,绘制学习曲线来调参n_estimators(对随机森林影响最大)
score_lt = []
# 每隔10步建立一个随机森林,获得不同n_estimators的得分
for i in range(0,200,10):rfc = RandomForestClassifier(n_estimators=i+1, random_state=90)score = cross_val_score(rfc, data.data, data.target, cv=10).mean()score_lt.append(score)
score_max = max(score_lt)
print('最大得分:{}'.format(score_max),'子树数量为:{}'.format(score_lt.index(score_max)*10+1))
# 绘制学习曲线
x = np.arange(1,201,10)
plt.subplot(111)
plt.plot(x, score_lt, 'r-')
plt.show()

在这里插入图片描述
如图所示,当n_estimators从0开始增大至21时,模型准确度有肉眼可见的提升。这也符合随机森林的特点:在一定范围内,子树数量越多,模型效果越好。而当子树数量越来越大时,准确率会发生波动,当取值为41时,获得最大得分。

接下来,我们在将取值范围缩小至41左右,以获得更好的取值。

# 在41附近缩小n_estimators的范围为30-49
score_lt = []
for i in range(30,50):rfc = RandomForestClassifier(n_estimators=i,random_state=90)score = cross_val_score(rfc, data.data, data.target, cv=10).mean()score_lt.append(score)
score_max = max(score_lt)
print('最大得分:{}'.format(score_max),'子树数量为:{}'.format(score_lt.index(score_max)+30))# 绘制学习曲线
x = np.arange(30,50)
plt.subplot(111)
plt.plot(x, score_lt,'o-')
plt.show()

在这里插入图片描述

如图所示,当n_estimators=45时,获得最大得分score_max=0.9719,相较于score_pre提升0.005
在这里插入图片描述

由此我们发现:当n_estimators100减小至45时(模型复杂度由大到小),模型准确度提升了(泛化误差减小),说明在泛化误差图中,模型往左移动了!

因此,接下来的调参方向是使模型复杂度减小的方向,从而接近泛化误差最低点。我们使用能使模型复杂度减小,并且影响程度排第二的max_depth

# 建立n_estimators为45的随机森林
rfc = RandomForestClassifier(n_estimators=45, random_state=90)# 用网格搜索调整max_depth
param_grid = {'max_depth':np.arange(1,20)}
GS = GridSearchCV(rfc, param_grid, cv=10)
GS.fit(data.data, data.target)best_param = GS.best_params_
best_score = GS.best_score_
print(best_param, best_score)

在这里插入图片描述

如图所示,最佳深度为11,最大得分为0.9718,竟然比不调整深度的得分0.9719还低,难道我们刚才就已经十分接近最低泛化误差了吗?

本着严谨的态度,我们再进行调整。调整max_depth使模型复杂度减小,却获得了更低的得分,因此接下来我们需要朝着复杂度增大的方向调整。我们在n_estimators=45max_depth=11的情况下,对唯一能够增加模型复杂度的参数max_features进行调整:
在这里插入图片描述

查看数据集大小,发现一共有30列特征,由于max_features默认取值特征数量的开平方值,因此我们从5开始调整:

# 用网格搜索调整max_features
param_grid = {'max_features':np.arange(5,31)}rfc = RandomForestClassifier(n_estimators=45,random_state=90,max_depth=11)
GS = GridSearchCV(rfc, param_grid, cv=10)
GS.fit(data.data, data.target)
best_param = GS.best_params_
best_score = GS.best_score_
print(best_param, best_score)     

在这里插入图片描述

输出结果为5,和默认值一样。得分为0.9718,仍然小于0.9719。因此,仅需n_estimators=45就能使模型的准确率达到最高0.9719,相较于初始得分0.9667,提升0.005,最接近最小泛化误差,调参工作到此结束。

三、总结

总结一下在sklearn中调参的思路:

① 基于泛化误差模型复杂度的关系来进行调参;

② 根据对模型的影响程度,由大到小对参数排序,并确定哪些参数会使模型复杂度减小,哪些会增大;

③ 依次选择合适的参数,通过绘制学习曲线或网格搜索的方法调参,直到找到最大准确得分。

http://www.yidumall.com/news/59533.html

相关文章:

  • 东莞网站建设网络推广竞价推广托管公司价格
  • 秦皇岛网站建设公司制作网站需要多少费用
  • 找客户资源的软件谷歌搜索优化
  • 网站建设销售发展前景品牌推广方案模板
  • 平面设计网站排行榜站长工具关键词
  • 清河做网站哪家便宜seo技术306
  • 高端网站建设设宁德市疫情最新消息
  • 做网站深紫色搭配什么颜色seo工具是什么意思
  • 高端网站建设设计公司网络推广平台公司
  • bitget wallet官方网站下载厦门seo关键词
  • 哪些网站做财金的好百度识图找原图
  • 网站后台编辑技巧上海百度分公司电话
  • jsp网站建设美食百度搜索引擎优化的养成良好心态
  • 网站开发 先做前端吗福州seo推广公司
  • 中文wordpress主题深圳seo顾问
  • 贵阳优化网站建设怀化网络推广
  • 网站运行速度优化视频号广告推广
  • 佛山企业网站自助建站百度一下免费下载
  • 河南城乡建设厅网站证书查询网站快速有排名
  • 一个ip怎么做多个网站深圳百度国际大厦
  • 做营销网站建设挣钱吗网络推广外包联系方式
  • 代客做网站网站建设优化
  • 成都h5网站建设营销战略
  • 新闻类网站如何做量化统计沧州网站建设推广
  • 电子商务网站建设的工具seo关键词
  • 湖南省做网站的seo搜索引擎优化试题及答案
  • 服务器如何架设网站推广网站哪个好
  • 成都有做网站劫持的吗网络公司是做什么的
  • 哪个网站卖自己做的手工艺品中国十大电商培训机构
  • 毕业设计网站建设软件项目推广方式