RandomForestClassifier/Regressor

article/2025/10/1 17:32:23

1.集成算法(ensemble )

        1.集成评估器

                       

        

bagging多个相互独立的评估器,对其预测进行平均或多数表决原则来决定评估器的结果
boosting基评估器相关,按顺序一一构建,结合若评估器构成强评估器

 2.RandomForestClasifier

        1.决策树思想

        2.基评估器参数 

 

         3.n_estimators

        控制树木的数量,对模型精确度影响是单调增的,但有决策边界,过大会影响训练时间

super=[]
for i in range(200):rfc = RandomForestClassifier(n_estimators=i+1,n_jobs=-1)rfc_score = cross_val_score(rfc,wine.data,wine.target,cv=10).mean()super.append(rfc)
print(max(super),super.index(max(super)))
plt.figure(figsize=[20,5])
plt.plot(range(1,201),superpa)
plt.show()

        结果显示到一定极限不再单增

        4.决策树和随机森林的关系

        

rfc_l = []
clf_l = []for i in range(10):clf = DecisonTreeClassifier()clf_score = cross_val_score(clf,wine.data,wine.target,cv=10).mean()clf_l.append(clf_score)rfc = RandomForestClassifier(n_estimator=10)rfc_score = cross_val_score(rfc,wine.data,wine_target,cv=10).mean()rfc_l.append(rfc_score)plt.plot(range(1,11),rfc_l,label="Random Forest")
plt.plot(range(1,11),clf_l,label="Decision Tree")
plt.legend()
plt.show()

            结果显示单个决策树的准确率越高,随机森林的准确率也越高

        5.random_state

        

rfc = RandomForestClassifier(n_estimators=20,random_state=2)
rfc = rfc.fit(Xtrain, Ytrain)
#随机森林的重要属性之一:estimators,查看森林中树的状况
rfc.estimators_[0].random_state
for i in range(len(rfc.estimators_)):print(rfc.estimators_[i].random_state)

           生成不同的决策树的random_state,使每棵树不一样,如果没有随机性的话将会和

           决策树相同,但仍然有局限性

        6.bootstrap&oob_score

                     bootstrap可以在采取不同的训练集使每棵树使不同的,增强随机性

bootstrap采用有放回的随机抽样方法,默认值为True
oob_score有放回的抽样技术,当n过大会使约37%的数据无法被采集到,所以避免浪费使用这些数据用作测试集,但需将参数设置为True,此时无需划分训练集测试集

         

rfc = RandomForestClassifier(n_estimators=25,oob_score=True)
rfc = rfc.fit(wine.data,wine.target)#重要属性oob_score_ 用于查看始终未被抽取到掉落在袋外的被当作测试集的测试结果
rfc.oob_score_

                7.其他重要属性和接口

rfc.estimators_
rfc.estimators_[i] #用于查看随机随林中树的random_staterfc.oob_score_    #查看袋口外测试集的结果rfc.feature_importances_        #查看每一特征的权重
rfc.apply(Xtest)                #输入测试集查看每个样本所在叶子节点的索引
rfc.predict(Xtest)                #输入测试集查看每个样本的标签
rfc.predict_proba(Xtest)    #(每一测试样本分到哪一结果的概率,根据这个给出相应的标签,如0.7--》1#.而在袋装法中,这一个数值来自于sklearn的平均概率)

3.RandomForestRegressor 

 与回归树原理相同,同样多出了n_estimators参数

4.用回归森林填补缺失值案例

x_missing = x_full.copy()
y_missing = y_full.copy()x_missing_reg = x_missing.copy()    #得到填充值的桥梁,用数据上处理的话填完0就找不到缺失值了
sortindex = np.argsort(x_missing_reg.isnull().sum(axis=0)).values   #按列求空值数量,排序并取出对应索引,values变成数组形式for i in sortindex:    #先取多的进行填补#构建新矩阵df = x_missing_regfillc = df.iloc[:,i]        #矩阵1 需填补的列df = pd.concat([df.iloc[:,df.columns != i],pd.DataFrame(y_full),axis=1)#在新矩阵中进行填补    矩阵二无缺失值的无填补的列df_0 = SimpleImputer(missing_values = np.nan,strategy = 'constant',fill_values=0).fit_transform(df)#训练集和测试集X_train = df_0[fillc.notnull(),:]Y_train = fillc[fillc.notnull()]X_test = df_0[fiilc.isnull(),:]Y_test = fillc[fillc.isnull()]# 填补缺失值rfc = RandomForestRegressor(n_estimators = 100)rfc = rfc.fit(X_train,Y_train)Ypredict = rfc.predict(Xtest)#补回原始矩阵x_missing_reg.loc[x_missing_reg.iloc[:,i].isnull(),i] = Ypredict

5.调参中的泛化误差思想

       模型的复杂度和泛化误差的关系

         偏差、方差

 6.bagging        vs        boosting

 


http://chatgpt.dhexx.cn/article/6BYdngJJ.shtml

相关文章

Regression 回归

李宏毅老师机器学习课程笔记——Regression 回归 一、理论 问题:已知一批宝可梦样本进化前的特征值x_cp, x_s, x_np, x_w, x_n,预测宝可梦升级后的CP值。模型的目标就是找到一个最合适的函数F(X)Y: 特征条件X包括{x_cp, x_s, x_np, x_w, x_…

线性回归正则化 regularized linear regression

线性回归正则化regularized linear regression 在前几篇博客中介绍了一元线性回归http://blog.csdn.net/u012328159/article/details/50994095和多元线性回归http://blog.csdn.net/u012328159/article/details/51029695等线性回归的知识,具体请参见本人其他博客。但…

# Logistics Regression

目录 一 logistics regression 1 一点介绍 2 评价 3 一点应用 4 代码流程 5 上代码!!! 一 logistics regression 1 一点介绍 逻辑回归是一个分类模型,其突出特点即 模型简单、可解释性强 2 评价 优点 实现简单&#xff0…

Python-Regression

本文归纳整理了线性回归(LinearRegression)、岭回归(Ridge)、Lasso回归(Lasso)、弹性网(ElasticNet)、K近邻、SVM等10多种机器学习模块sklearn中回归算法调用及实现过程,…

大数据挖掘永恒的定律?符号回归(Symbolic Regressor)

大数据挖掘永恒的定律?符号回归(Symbolic Regressor) 符号回归简介 符号回归是一种机器学习技术,旨在识别一个潜在的数学表达式。它首先建立一个朴素随机公式的总体来表示已知自变量和它们的因变量目标之间的关系,以预测新数据。每一个连续的…

Regression

//李宏毅视频官网:http://speech.ee.ntu.edu.tw/~tlkagk/courses.html 点击此处返回总目录 //邱锡鹏《神经网络与深度学习》官网:https://nndl.github.io 今天主要讲的是Regression。会通过一…

从零接入微信公众号(Java实现 附源码)

目录 从零接入微信公众号 一、微信测试号的申请与关注 1.申请 2.访问域名配置 3.关注 二、测试号快速生成底部导航栏 1.获取 access_token 2.自定义菜单 三、微信公众号网页授权 1.网页授权原理 2.代码实现 1)NetUtil.java 2)Oauth2Token.java 3)WxUserDO.java…

前后端分别部署教程 ---- 第三部分项目部署和挂载到微信公众号

3. 前端 这里介绍的是idea开发工具下的项目打包 3.1 项目打包 一定要在指定项目路径下打开 Terminal,不然会打错项目的包. 右击项目名称,然后点击 Open in Terminal: 在下面的 Terminal窗口中, 输入打包命令: npm …

springboot+h5页面+微信公众号获取微信用户信息

springboot项目,h5页面通过微信公众号获取微信用户信息 最近本人有一个项目需求,微信公众号里点击一个菜单进入一个商城购物系统。 对于在微信公众号还是小白的我来说难度有点大,但是做完后发现也就这样,用多了就熟悉了。下面记录…

【公众号】微信进入公众号链接自动获取授权登陆

文章目录 前言一、准备二、开发2.1 搭建项目2.2 WeixinUtil 工具2.3 回调接口与登陆接口2.4 过滤器自动登陆2.4 其他类2.5 测试 三、总结 前言 最近项目上有一个需求,用户反映每次从微信打开链接都需要手动登陆,比较繁琐,想点开微信连接后自…

java向微信公众号---发送模板和图文消息

微信公众号初次开发 其他操作 项目搭建mavenapplication.ymlyml参数配置微信客户端配置 搭建完成 实现业务模板消息推送准备工作模板消息填写要求图文消息填写要求 推送模板消息推送模板消息结果——效果 推送图文消息推送图文消息工具类问题和结果 获取关注的用户openId既然有…

微信公众号接入天行机器人案例和方法

首先使用的是天行机器人: 1、接入基本原理: https://www.tianapi.com/apiview/47 申请完成后的结果如下 调用对应的接口的参数如下: http://api.tianapi.com/txapi/robot/index?keyae5e9a72c8d4cb1f5e096f7bb4daf1f3&questionrobot…

微信公众号的端口映射及服务开发

一. 开发准备 微信公众号申请---->实名认证---->服务器开发---->绑定服务器 PS: 这里有一点需要注意的就是, 微信开发必须是80端口或者443端口, 如果我们有云服务器主机一切都好办. 但是如果没有我们还有几个备选方案: 1. 花生壳 , net123 : 这两个都需要实名认证(…

[JAVA实现]微信公众号网页授权登录,java开发面试笔试题

我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。 扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群里探讨技术。 推荐文章:Java 面试知识点解析;Mysql优化技巧…

后端操作微信公众号

一、功能说明 员工端使用微信公众号完成审批操作,涉及到的功能包含:自定义菜单、授权登录、消息 1、微信公众号一级菜单为:审批列表、审批中心、我的 2、员工关注公众号,员工第一次登录微信公众号,通过微信授权登录进行…

Java基于微信公众号接口实现授权登录源码及原理分析

微信公众号授权登录操作前提必须注册微信公众平台账号,注意的是订阅号不支持授权登录操作,因此对于个人开发者注册的订阅号是无法实现的,必须注册企业号的微信平台账号而具体注册流程就不详细介绍了,有什么疑问可去微信公众号平台…

微信公众号多域名回调系统1.0发布

这是一款基于ThinkPHP6.0框架的微信公众号多域名回调系统。 微信公众号后台默认只能授权2个网页域名,用本系统可突破这个限制,用同一个公众号对接无限多个网站。网站后台支持回调域名白名单的管理,以及登录记录的查看。 本系统还有微信access…

PHP微信扫码关注公众号并授权登录源码

PHP微信扫码登录看起来简单,但做起来有点麻烦,开发起来就会浪费很多的时间。 PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像、openid和省市等信息源码。 演示体验地址: https://www.skpan.cn/user/login.html 网盘下载地址:…

2023最新微信公众号无限回调系统源码/已修复BUG亲测可用

正文: 测试环境: Nginx 1.20.2 MySQL 5.6.50 PHP-7.2 1.创建站点 2.到根目录上传源码 3.创建数据库并导入 4.修改数据库信息 根目录/config.php 第5,6,7行 5.后台地址域名/admin 账号admin 密码123456 6.修改域名 根目录下 api.php 第…

Java微信公众号开发登录

MySQL基础开发篇 这部分的内容应该更合适那些刚入坑的朋友们或者是对于基础部分掌握不牢固的朋友,因此有一定经验的或者基础不错的可以自动跳至下一章内容阅读,这部分我仅把目录内容截图展示。 MySQL的优化以及管理维护 MySQL作为一款关系型数据库,SQL语句的优化是尤其重要的…