随机森林小记

这里采用的随机森林的库选择sklearn库

1.首先是导入数据:

path = "D:/Epileptic Seizure Classification.csv"
# 针对csv文件
rawdata = pd.read_csv(path)
# 针对xlsx文件
rawdata = pd.read_excel(path)

2.根据数据分布,选出样本的标签和数据,使用函数将他们分开:

使用iloc函数,提出相应的数据
iloc[]函数,属于pandas库,全称为index location,即对数据进行位置索引,从而在数据表中提取出相应的数据。


了解了相关函数的用法,就可以将数据进行分开。这里用到的数据为,第一列是对应天数,后面的所有数据时高光谱的数据,所以x为数据,y是对应的天数。

# 得到分类后的数据和标签
X = rawdata.iloc[:,1:]
Y = rawdata.iloc[:,0]

3.得到数据和标签后,就可以将其分为训练集和验证集,套用train_test_split函数


将训练集和验证集按9:1的比例分开:

x_train, x_test, y_train, y_test = train_test_split(X, Y, random_state=1, train_size=0.9,stratify=Y)

4.随机森林主体部分

整个流程是,将分类好的训练集和验证集进行随机森林训练,选择不同的树的个数,输出最后的结果。

def rf_model(k):return RandomForestClassifier(n_estimators=k*10, criterion="gini",max_features='sqrt')def svc_model(model):model.fit(x_train, y_train)acu_train = model.score(x_train, y_train)acu_test = model.score(x_test, y_test)y_pred = model.predict(x_test)recall = recall_score(y_test, y_pred, average="macro")return acu_train, acu_test, recalldef run_rf(kmax):result = {"k": [],"acu_train": [],"acu_test": [],"recall": [],"time":[]}for i in range(1, kmax + 1):start_time = time.time()acu_train, acu_test, recall = svc_model(rf_model(i))end_time = time.time()result["k"].append(i)result["acu_train"].append(acu_train)result["acu_test"].append(acu_test)result["recall"].append(recall)result["time"].append(end_time-start_time)print(i,result["acu_test"][-1])return pd.DataFrame(result)

其中RandomForestClassifier函数为随机森林函数主体:

随机森林的简单学习记录相关推荐

  1. 《scikit-learn》随机森林之深入学习

    本文探究一些关于随机森林细节的东西 一:随机森林效果比单个决策树要好的原因是? 百家言胜过一言堂 在bagging中,多个分类器的随机森林为什么要比单个基本分类器要好呢? 我们从数学的角度来简单分析下 ...

  2. HTML简单学习记录

    文章目录 HTML简单学习记录 简介 HTML基本结构 网页基本标签 图像标签 链接标签 超链接 锚链接 功能性链接 行内元素和块元素 列表 表格 视频和音频 视频 音频 页面的简单布局 iframe ...

  3. 脑电信号(EEG)处理中的机器学习方法总结——回归模型,SVM、K近邻、人工神经网络、朴素贝叶斯、决策树和随机森林、集成学习、模糊逻辑、LDA线性判别分析、K-means聚类、强化学习、迁移学习

    本文归纳总结了机器学习在脑电分析中的应用,并详细介绍回归模型,SVM.K近邻.人工神经网络.朴素贝叶斯.决策树和随机森林.集成学习.模糊逻辑.LDA线性判别分析.K-means聚类.强化学习.迁移学习 ...

  4. 机器学习分类算法之随机森林(集成学习算法)

    目录 什么是集成学习? 随机森林 随机森林的生成算法 随机森林的随机性

  5. 在envi做随机森林_简单粗暴 |土地利用遥感影像处理(从数据下载到ENVI与ArcGIS结合)...

    1数据获取 打开任何一个浏览器搜"地理空间数据云"或者在网页地址处输入网址: http://www.gscloud.cn ,注册账号登录进去,点击高级搜索,设定下载区域范围以及传感 ...

  6. python在范围内随机偏移_偏移随机森林分类器scikit学习

    我用python编写了一个程序,使用机器学习算法对数据进行预测.我使用Scikit Learn的函数RandomForestClassifier创建一个随机林来进行预测.在 这个程序的目的是预测未知的 ...

  7. java rgb yuv_RGB和YUV简单学习记录

    RGB和YUV是一种颜色编码格式. 这里简单介绍一下RGB.YUV和HSV. 出处:一文读懂 YUV 的采样与格式 https://glumes.com/post/ffmpeg/understand- ...

  8. python gmpy2模块、yafu的简单学习记录(RSA向)

    最近刷reverse经常碰到偏密码学的题,其中最典型的就是RSA,简单科普一下RSA. RSA属于非对称密钥的一种,由公钥和私钥这一对密钥组成.假设小红想传输一段信息给小白,她只需要用公钥对信息进行加 ...

  9. python随机森林模型简单股票涨跌预测

    前言: 学了差不多10多天的入门机器学习,突然发现学好数学是多么的重要,以前上学时还觉得数学只要学会加减乘除就可以了,什么导数,回归方程都没什么用,这段时间真后悔死,看了好多模型原理推导,有好多的数学 ...

最新文章

  1. 通过打印学习Linux内核之sysfs(0)
  2. Windows xp/2003 中安装虚拟网卡 Microsoft Loopback Adapter
  3. sd卡 写卡阻塞_Sony a7r4写卡速度测试
  4. docker 二进制安装
  5. Ability的基本概念(1)
  6. mysql索引背后的数据结构及算法
  7. 这篇Redis文章,图灵看了都说好
  8. 1095. 山脉数组中查找目标值
  9. Java学习笔记_身份验证机制
  10. threejs 用 ExtrudeGeometry 画管线
  11. rust全息要啥才能做_在 Rust 中不能做什么
  12. VSTO项目的MSB3482错误
  13. 1008 数组元素循环右移问题(C语言)
  14. win10切换桌面_学废了Win10的这些骚操作,我不信你拽不起来
  15. jquery中的尺寸函数width(),height(),innerWidth(),outerWidth()等的用法
  16. 一起谈.NET技术,ASP.NET的状态管理
  17. Axure RP 8.0 Mac中文破解版链接
  18. 如何在Chrome39添加360抢票王插件
  19. js重点基础学习笔记
  20. android恢复出厂设置

热门文章

  1. Thinkpad E431 加 ssd
  2. 智能家居-基于香橙派zreo2——手把手搭建、继电器控制灯(一)
  3. 综合布线缆线的敷设要求
  4. 程序员工具网站(比较有意思)
  5. 什么是工单流程的真正闭环
  6. FlexSlider修改样式
  7. Flink实战(三) - 编程范式及核心概念
  8. Android NDK之Strip裁减so库
  9. 2020年海思所有芯片合集参考说明
  10. 生成树协议STP、RSTP和MSTP原理的理解