随机森林的简单学习记录

2023-05-16

随机森林小记

这里采用的随机森林的库选择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, recall

def 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函数为随机森林函数主体:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

随机森林的简单学习记录 的相关文章

随机推荐

  • Apache IoTDB Query is time out (-1ms)

    现象 查询超时 xff0c 服务器出现一下日志 2022 01 05 15 57 05 724 pool 12 IoTDB query time manager 1 WARN o a i d q c QueryTimeManager 71
  • 解读事务的ACID!

    事务的ACID特性大学数据库课程基本都学过 xff0c 但是学完也就大概知道是干嘛的 xff0c 后来也没仔细想这个东西了 xff0c 后来接触了NoSQL系统的一致性 xff0c 于是重新学习 ACID xff0c 发现还有很多误区 今天
  • 欢迎加入 Apache IoTDB !

    官方网站 xff1a http iotdb apache org zh IoTDB 是清华自研时间序列数据库 xff0c 2014年项目启动 xff0c 2018年11月18号 IoTDB 正式进入 Apache 孵化器 xff0c 成为中
  • Xavier(2):Xavier NX刷机步骤及报错解决

    1 下载和安装NVIDIA SDK Manager 官方网站 xff1a https developer nvidia com embedded jetpac 选择sdk manager xff0c sdk manager版本没有要求 安装
  • 模型评估与优化1--基本概念与最优化问题

    模型评估与优化1 基本概念与最优化问题 首先先看一下基本术语和概念 1 数据集的划分 xff08 1 xff09 数据集 dataset xff1a 在机器学习任务中使用的一组数据 数据集中每一个数据称为一个样本 反映样本在某方面的表现或性
  • windows中vscode编译运行c++程序

    1 vscode 安装 c 43 43 扩展 在vscode中创建一个后缀为 01 cpp 的程序 xff0c 程序文件如下 xff0c vscode会自动提示安装 c 43 43 扩展 xff0c 点击进行安装 01 cpp includ
  • leetcode 刷题指南 & 刷题顺序

    1 刷题方法 amp 顺序 xff1a 按类型刷 xff0c 这样能总结出每种类型题目的规律 优先树 链表 二分查找 DFS BFS 动态规划数目 xff1a 常见类型刷10道 43 顺序 xff1a 先做2 4道简单题 xff0c 然后做
  • 北邮计算机学院2017届复试经验分享

    北邮计算机学院2017届复试经验分享 建议初试完了再来担心复试 xff0c 有看复试经验的时间还不如多做两道数学题 xff01 导师 xff1a 了解导师的情况 xff0c 最差也不要找一个人不好的老师 xff0c 其次尽量选自己喜欢的方向
  • STM32 Cube BMP180 获取温度、气压、海拔

    一 介绍 BMP180中内置有E2PROM xff0c 所以要获取数据 xff0c 就要使用I2C读写E2PROM来实现获取数据 xff01 BMP180的整个流程 xff1a 1 首先要初始化 xff0c 读取几个E2PROM地址上的值共
  • int 类型究竟多少字节?

    今天发现NEON技术中 int类型的字节数是2 xff0c 感觉很奇怪 xff0c 最早写51单片机时也是2 xff0c 后来到了观念转变成了4 xff0c 现在有遇到了2 一 转自 http www tuicool com article
  • python实现K均值聚类算法

    之前做大作业的时候本来想用聚类法给点集分类的 xff0c 但是太复杂了 xff0c 于是最后没有采用这个方案 现在把之前做的一些工作整理出来写个小博客 K means聚类法原理 xff1a 聚类是一个将数据集中在某些方面相似的数据成员进行分
  • 复合型自适应步长的Gauss型求积(附代码)

    复合型自适应步长的Gauss型求积 先前在做数值分析实验时 xff0c 把高斯型求积公式和复合型 自适应步长的求积融合到了一起 xff0c 但是后来发现题目没有这个要求 现在就把这个思路分享一下 上题目 xff1a 实验目的 xff1a 学
  • pid摄像头循迹(opencv和openmv)

    pid摄像头循迹 xff08 opencv和openmv xff09 用摄像头进行循迹的方法参考硬件选型方面软件思路一 图像预处理 xff1a 代码部分二 线性拟合opencv线性拟合 xff1a 实际在树莓派上运行时 xff0c 帧率也比
  • 通过云端自动生成openmv的神经网络模型,进行目标检测

    通过云端自动生成openmv的神经网络模型 xff0c 进行目标检测 OpenMV训练神经网络模型 xff08 目标识别 xff09 一 准备材料 xff1a 二 软件下载三 准备数据集 xff1a 四 数据集的上传与训练 OpenMV训练
  • opencv学习(9):cv::Scalar、cv::Mat::zeros

    1 cv Scalar cv Scalar是opencv的一个结构体 xff0c 其定义如下 xff1a xff08 c 43 43 中的结构体如下 xff0c 可以存放1 4个数值 xff09 various constructors S
  • 德国大陆ARS408系列毫米波雷达数据解析

    本人已完成对该型号系列毫米波雷达的解析工作 xff0c 有需求请私信联系
  • nmap使用详解

    nmap介绍 nmap xff08 Network Mapper xff09 是一款开源免费的针对大型网络的端口扫描工具 xff0c nmap可以检测目标主机是否在线 主机端口开放情况 检测主机运行的服务类型及版本信息 检测操作系统与设备类
  • OLED屏幕花屏的原因(I2C+DMA)

    OLED屏幕在通电后花屏 xff0c 呈雪花状 在网上查询原因 xff0c 开始了尝试 xff1a 1 可能是由于杜邦线的问题 xff0c 可能接触不良导致 xff0c 但更换了杜邦线依然花屏 2 可能是OLED屏幕问题 因为经常在工作 x
  • 竞赛保研(自动化专业)

    一 感谢 从大三的五月份一直到9 28号推免结束 xff0c 最终也是保研到了梦校 xff0c 还好我坚持到了最后一刻 感谢父母 xff0c 感谢远方的她 xff0c 感谢老师 xff0c 感谢实验室的平台 xff0c 也要感谢每一位一起拼
  • 随机森林的简单学习记录

    随机森林小记 这里采用的随机森林的库选择sklearn库 1 首先是导入数据 xff1a path span class token operator 61 span span class token string 34 D Epilept