随机森林(2)——代码简单实现

更新时间:2023-05-20 09:34:48 阅读: 评论:0

随机森林(2)——代码简单实现
随机森林
Ba Estimator,⼦模型是决策树集成起来,其实就是所谓的随机森林。
最开始想学的是这个,但是决策树看完,集成学习看完,好像这个就⽔到渠成了…找了视频发现讲的和之前看得差不多…所以个⼈这⾥直接看的代码,可看完代码,感觉也就这些东西啊…
代码
随机森林算法的主体,这个相对来说算是⼀个简单的随机森林算法实现,但其实逻辑就基本如下,如我开头所说,学会决策树和集成学习,随机森林真的没啥,难的应该是调参…⽽不是原理理解。
trees =list()
# n_trees 表⽰决策树的数量
for i in range(n_trees):
# 随机抽样的训练样本,随机采样保证了每棵决策树训练集的差异性
stephen moyer
sample = subsample(train, sample_size)
# 创建⼀个决策树
tree = build_tree(sample, max_depth, min_size, n_features)
trees.append(tree)
# 每⼀⾏的预测结果,bagging 预测最后的分类结果
predictions =[bagging_predict(trees, row)for row in test]
当然,⽐起单纯的构建决策树,这⾥显然增加了⼀些构建决策树的限制参数,但思想不变。
北京西点培训说⼏点关于本代码想说的:
1. 详细代码解析直接看源码吧。(后⾯给出)
2. 代码⾥的决策树是⼆分类树/ CART。
3. 代码⾥没有减枝操作,⽽是以最⼤深度和叶⼦节点最少样本树来约束决策树的构建(防⽌过拟和)
chmm
4. 随机森林代码中:每个⼦树输⼊的样本以及特征都为:有放回的随机抽取(bootstrap/bagging)
5. 划分特征时,其代码只考虑了连续数值形式。
if row[index]< value:
left.append(row)
el:
right.append(row)
6.其原本代码运⾏报错,经过定位,是载⼊数据的语句出现了莫名奇妙的问题…恰好返过来了
if str_f.isdigit():# 判断是否是数字
# 将数据集的第column列转换成float形式搭档英文怎么说
print("digit",str_f)
lineArr.append(eval(str_f))
el:
# 添加分类标签
print("label", str_f)
lineArr.append(str_f)
7.⾃⼰进⾏了不正规的改写:
# 导⼊csv⽂件
def loadDataSet(filename):
datat =[]
with open(filename,'r')as fr:
for line adlines():
什么是j2eeif not line:
continue
lineArr =[]
line_data = line.split(',')
留学生创业featrue =[float(i)for i in line_data[:-1]]
杂志社英文
lineArr.append(line_data[-1])
datat.append(lineArr)
return datat托尔斯泰简介
8.最后交叉验证,分别构建1/10/20颗树的运⾏结果:
9.这当然只是理论看完了,关于调参部分的经验学习,以及如何调参肯定也要学的。代码内⽐较奇妙的⽤法
参数太多,直接⽤ *args接受后⾯的
evaluate_algorithm(datat, algorithm, n_folds,*args)
关于爱情的英文诗
合并list的⽤法,⼈⽣第⼀次见。
# 将多个 fold 列表组合成⼀个 train_t 列表, 类似 union all """
In [20]: l1=[[1, 2, 'a'], [11, 22, 'b']]
In [21]: l2=[[3, 4, 'c'], [33, 44, 'd']]
In [22]: l=[]
In [23]: l.append(l1)
In [24]: l.append(l2)
In [25]: l四级总分多少
Out[25]: [[[1, 2, 'a'], [11, 22, 'b']], [[3, 4, 'c'], [33, 44, 'd']]]        In [26]: sum(l, [])
Out[26]: [[1, 2, 'a'], [11, 22, 'b'], [3, 4, 'c'], [33, 44, 'd']]
"""
train_t =sum(train_t,[])
代码连接

本文发布于:2023-05-20 09:34:48,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/115643.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:决策树   代码   构建   集成   学习
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图