news 2026/5/14 22:24:09

随机森林算法(RF)学习笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
随机森林算法(RF)学习笔记

文章目录

  • 一、 算法基本原理
  • 二、 算法步骤
  • 三、参数调优
  • 四、分类与回归
    • 1. 分类
    • 2. 回归

一、 算法基本原理

随机森林通过有放回抽样的形式对样本和特征进行抽样,构建多颗决策树,形成决策树的森林。训练这些决策树后,基于每一个决策树的结果的投票或平均的方式预测。

二、 算法步骤

  1. 析数据,将数据抽象成特征向量的列表
  2. 训练模型,并分析训练成果
  3. 基于训练好的模型进行预测
  4. 根据自己的目标确定预测结果是否可接受
  5. 调整超参数,提高预测准确率

三、参数调优

  1. 网络搜索:适用与超参数选择范围较小的情况,且要求超参数分布离散
  2. 网络搜索:适用于超参数范围较大的情况,可以做初步寻优,且允许超参数分布连续
  3. 贝叶斯优化:智能化搜索,一般结果固定

代码示例

# 贝叶斯优化search_space={"n_estimators":Integer(10,500),"max_depth":Integer(5,30),"min_samples_leaf":Integer(1,10),"min_samples_split":Integer(2,20),"max_features":Real(0.0000000001,0.99),'bootstrap':Categorical([True,False])}bayes_search=BayesSearchCV(estimator=rf_model,search_spaces=search_space,n_iter=30,cv=5,n_jobs=-1,scoring="accuracy",random_state=42,verbose=1)bayes_search.fit(X_train,y_train)print(bayes_search.best_params_)# 随机搜索random_param_dist={"n_estimators":randint(10,500),"max_depth":[None]+list(randint(1,100).rvs(5)),"min_samples_split":randint(2,20),"max_features":uniform(0.1,0.9),"min_samples_leaf":randint(1,10)}random_search=RandomizedSearchCV(estimator=rf_model,param_distributions=random_param_dist,n_iter=100,cv=5,scoring="accuracy",n_jobs=-1)random_search.fit(X_train,y_train)best_params=random_search.best_params_print(best_params)# 网络搜索param_grid={"n_estimators":[20,40,100,200,500],"max_depth":[5,10,15,None],"min_samples_split":[2,5,10],"min_samples_leaf":[1,2,4]}grid_search=GridSearchCV(estimator=rf_model,param_grid=param_grid,cv=5,scoring="accuracy",n_jobs=-1)grid_search.fit(X_train,y_train)print(grid_search.best_params_)

注意导入相关库

四、分类与回归

p y t h o n pythonpythonsklearn 库来进行随机森林预测。

1. 分类

基于投票决定预测结果,要求结果分布离散。如胜负、高低等可以用分类器做预测:胜为1,负为0。

2. 回归

基于平均决定预测结果,要求结果分布连续。如电影评分。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 8:25:46

提示词调用语法详解:ora:my_style_lora:0.8背后的机制

提示词调用语法详解:ora:my_style_lora:0.8背后的机制 在当前AI生成内容爆发的时代,我们早已不再满足于“画得像”或“写得通顺”的通用模型输出。无论是设计师想复现独特的插画风格,还是企业需要定制专属品牌语调的对话机器人,个…

作者头像 李华
网站建设 2026/5/13 8:50:21

conda环境创建指令汇总:确保依赖隔离与稳定

Conda环境构建实战:为LoRA训练打造稳定、可复现的AI开发底座 在如今快速迭代的AI研发环境中,一个常见的尴尬场景是:某个LoRA微调脚本在同事的机器上跑得飞起,换到自己电脑却报出一连串“ModuleNotFoundError”或CUDA版本不兼容的错…

作者头像 李华
网站建设 2026/5/11 9:28:47

删除指定字符.c

#include <stdio.h> #define MAXN 20void delchar( char *str, char c ); void ReadString( char s[] ); /* 由裁判实现&#xff0c;略去不表 */int main() {char str[MAXN], c;scanf("%c\n", &c);ReadString(str);delchar(str, c);printf("%s\n"…

作者头像 李华
网站建设 2026/5/13 6:01:09

std::execution内存模型来了,你还在用旧方式处理并发?

第一章&#xff1a;std::execution内存模型来了&#xff0c;你还在用旧方式处理并发&#xff1f;现代C并发编程正经历一场深刻的变革。随着C17引入std::memory_order的细化控制&#xff0c;以及C20对并行算法的支持不断深化&#xff0c;std::execution策略与底层内存模型的协同…

作者头像 李华
网站建设 2026/5/10 9:53:02

打造专属客服话术AI:利用lora-scripts微调LLM生成业务文本

打造专属客服话术AI&#xff1a;利用lora-scripts微调LLM生成业务文本 在智能客服系统日益普及的今天&#xff0c;企业越来越意识到——“说同样的话”比“做同样的事”更难。一个能自动回复用户问题的机器人不稀奇&#xff0c;但真正棘手的是让它用品牌的语气说话&#xff1a…

作者头像 李华
网站建设 2026/4/17 19:12:05

Java小白面试实录:从Spring Boot到微服务架构的技术深度探讨

文章简述 本文记录了一场互联网大厂面试&#xff0c;面试官通过一系列围绕Spring Boot、微服务架构和安全框架的提问&#xff0c;考察了一位Java小白程序员的技术能力。文章详细描述了每个问题的解答&#xff0c;以及相关技术在实际业务场景中的应用&#xff0c;帮助初学者更好…

作者头像 李华