Python热频随机森林分类器算法模型模拟

🎯要点

  1. 研究发射测量斜率和时滞热频率表征,使用外推法计算三维磁场并定性比较
  2. 使用基于焓的热演化环模型模拟每条线的热力学响应,测试低频、中频和高频热场景
  3. 使用光学薄、高温、低密度等离子体的单位体积辐射功率或发射率公式等建模计算
  4. 使用直方图显示发射测量斜率,计算互相关映射

🍪语言内容分比

在这里插入图片描述
在这里插入图片描述

🍇Python随机森林模型

引导聚合

在需要良好模型可解释性的应用中,决策树效果非常好,尤其是在深度较小的情况下。然而,具有真实世界数据集的决策树具有很大的深度,深度较高的决策树更容易过度拟合,从而导致模型的方差更大。随机森林模型探索了决策树的这一缺点。在随机森林模型中,原始训练数据是随机抽样并替换的,从而生成小的数据子集(见下图)。这些子集也称为引导样本。然后,这些引导样本作为训练数据输入到许多大深度的决策树中。每个决策树都基于这些引导样本单独训练。这种决策树的聚合称为随机森林集成。集成模型的最终结果通过计算所有决策树的多数票来确定。由于每个决策树都以不同的训练数据集作为输入,因此原始训练数据集中的偏差不会影响从决策树聚合中获得的最终结果。

生成有放回的引导样本:
在这里插入图片描述

随机森林算法

随机森林算法有三个主要超参数,需要在训练之前设置。这些包括节点大小、树的数量和采样的特征数量。从这里开始,随机森林分类器可用于解决回归或分类问题。随机森林算法由一组决策树组成,集合中的每棵树都由从有替换训练集中抽取的数据样本组成,称为引导样本。在该训练样本中,三分之一被留作测试数据,称为袋外样本。然后通过特征装袋注入另一个随机性实例,为数据集增加更多多样性并降低决策树之间的相关性。根据问题的类型,预测的确定会有所不同。对于回归任务,将对各个决策树进行平均,对于分类任务,多数投票(即最常见的分类变量)将产生预测类。最后,然后使用袋外样本进行交叉验证,最终确定该预测。
在这里插入图片描述
随机森林算法结合了 (1) 引导聚合和 (2) 特征随机性,使用同一数据集构建许多决策树。

  • 引导聚合是一种在给定迭代次数和变量(引导样本)内随机抽取数据子集的技术。通常对所有迭代和样本的预测进行平均,以获得最可能的结果。重要的是要理解,它不是将数据“分块”成小块并在其上训练单个树,而是仍然保持初始数据大小。这是一个应用集成模型的示例。
  • 特征随机性的主要作用是降低决策树模型之间的相关性。与可以利用所有特征来辨别最佳节点分割的决策树相比,随机森林算法将随机选择这些特征进行决策。最终,这也允许在不同的特征上进行训练。

Python分类器

import pandas as pd
import numpy as np
from umap import UMAP
import seaborn as sns
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.anchored_artists import AnchoredSizeBar
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.cluster import AgglomerativeClustering
from sklearn.neighbors import kneighbors_graph
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_samples, silhouette_score
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
mypath = '*insert file path/waveforms.csv'
data = pd.read_csv(mypath, index_col = 'uid')
print(f'{data.shape[0]} unique experiment identifiers (uid), recorded with a sampling frequency (KHz) of {((data.shape[1]-1)/5)}')
data.organoid.value_counts()

定义可视化颜色

mycolors = {'Data_D':     '#FFA500','Data_G':       '#4169E1', 'Data_F':       '#FF4500', 'Data_C':       '#9400D3', 'Data_A':       '#32CD32',  'Data_E':       '#228B22', 'Data_G_V2' :   '#006400',  'Data_H':       '#00BFFF',  'Data_E_V2':    '#DC143C', 'Data_F_V2':    '#0000FF', 'Data_B':       '#000000', }
data['color'] = data['organoid'].apply(lambda orgID: mycolors[orgID])

可视化唯一的实验标识符

fig, ax = plt.subplots(figsize=(15, 8))
sns.barplot(x=data.organoid.value_counts().index, y=data.organoid.value_counts(), palette=mycolors)plt.xticks(rotation=30,fontsize=14)
plt.yticks(fontsize=14)
ax.set_xlabel('Class type', fontsize=16)
ax.set_ylabel('Number of waveforms', fontsize=16)
plt.rcParams["font.family"] = "Arial"right_side = ax.spines["right"]
right_side.set_visible(False)
top_side = ax.spines["top"]
top_side.set_visible(False)
plt.savefig('Figures/barplot.png', dpi = 300, bbox_inches="tight")
plt.show()

鉴于我们正在分析细胞外记录,我们将可视化每个数据集类别产生的平均波形。

class_names = data['organoid'].unique()
fig, ax = plt.subplots(1,9, figsize=(24,4.5))
for unique_class in class_names:    df_new = data[data['organoid'] == unique_class] df_new = df_new.iloc[:,:-2].to_numpy() data_mean_perclass = np.mean(df_new, axis=0)sampling_freq = np.linspace(0, 5, 150) 
for i in range(class_names.shape[0]): if unique_class == class_names[i]:for row_num in range(df_new.shape[0]): ax[i].plot(sampling_freq, df_new[row_num,:], color = 'lightgray')ax[i].plot(sampling_freq,data_mean_perclass, color=mycolors[unique_class], linewidth=3)ax[i].set_ylim([-1.8, 1.8])ax[i].grid()ax[i].axis('off')ax[i].title.set_text(unique_class)  plt.rcParams["font.family"] = "Arial"else: continuescalebar = AnchoredSizeBar(ax[8].transData, 1, "1 ms", 'lower right', frameon=False, size_vertical=0.02, pad=0.1)ax[8].add_artist(scalebar)plt.savefig('Figures/spikes.png', dpi = 300)

👉参阅、更新:计算思维 | 亚图跨际

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/142800.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

动手学深度学习(四)卷积神经网络-下

全连接层存在的问题:参数过大,计算成本过高。 一、网络中的网络(NiN) 1、NiN块 ①NiN块的结构 NiN串联多个由卷积层和“全连接”层构成的小网络来构建一个深层网络。这种由卷积层和“全连接”层构成的小网络就是NiN块。 &#…

SpringBoot框架之KOB项目 - 配置Mysql与注册登录模块(上)

框架模型 每一个客户端(client)都会和后端(SpringBoot)进行通信,例如如果一个用户进行登录,需要向后端发送username、password,SpringBoot可以理解为一个一直在跑的程序,不断对用户…

3.Java高级编程实用类介绍(一)

三、Java高级编程实用类介绍(一) 文章目录 三、Java高级编程实用类介绍(一)一、枚举类型二、包装类三、Math 一、枚举类型 使用enum进行定义 public enum 枚举名字{值1,值2.... }二、包装类 每个基本类型在java.lang包中都有一个相应的包装类 /** new包装类(字符…

上海儿童自闭症寄宿制学校,让孩子找到归属感

在探讨自闭症儿童教育的广阔图景中,上海作为一座充满人文关怀的城市,始终致力于为这些特殊的孩子提供更加全面、专业的支持体系。而当我们把这份关注与努力投射到具体实践上,广州的星贝育园自闭症儿童寄宿制学校便成为了这样一个温馨而有力的…

JVM OutOfMemoryError 与 StackOverflowError 异常

目录 前言 堆溢出 虚拟机栈和本地方法栈溢出 方法区溢出 前言 JVM规范中规定, 除了程序计数器之外, 其他的运行时数据区域, 例如堆栈, 方法区, 都会出现OutOfMemoryError异常. 那么到底是怎么样的代码, 才会引起堆溢出, 栈溢出, 或者是方法区的溢出呢? 如果遇到了又该如何…

鸿蒙next json解析 ArkUI 带你玩转 arkts json解析

前言导读 相信很多同学再开发过程中都会遇到json解析的处理,不管是跟服务端交互 或者是读取本地的json 都会遇到json解析 那么正好今天有空正好讲一下鸿蒙next里面的json解析 JSON解析与生成 本模块提供了将JSON文本转换为JSON对应对象或值,以及将对象…

Mac OS系统如何下载安装Python解释器

目录 Mac安装Python的教程 mac下载并安装python解释器 如何下载和安装最新的python解释器 访问python.org(受国内网速的影响,访问速度会比较慢,不过也可以去我博客的资源下载) 打开历史发布版本页面 进入下载页 鼠标拖到页面…

【经典文献】双边滤波

文章目录 ICCV 1998基本思路双边高斯滤波 ICCV 1998 1995年,Aurich和Weule提出一种非线性高斯滤波器,三年后,Tomasi和Manduchi将其用于图像平滑,并将其命名为双边滤波。 Aurich, V., & Weule, J. (1995). Non-linear Gaussi…

【C++】list常见用法

🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:C从小白到高手 🌹往期回顾🌹:[C]vector常见用法 🔖 流水不争,争的是滔滔不息。 文章目录 一、list的介绍li…

web安全测试入门

参考课程: 04-软件安全测试基础-网络协议基础-网络模型_哔哩哔哩_bilibili 1.软件安全测试概述 安全测试: 安全性测试指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程 导致软件出现安全问题的主要原因或根源是软件的安全漏洞 安全漏洞&#x…

Vue2源码解读

vue源码_哔哩哔哩_bilibili 1.Vue源码路径目录解读 Vue2源码的路径目录被设计得非常清晰,每个文件夹都承担着特定的职责和功能。以下是这些主要文件夹(compiler、core、platform、server、sfc、shared)的详细解读: 1. compiler …

变压器漏感对整流电路的影响

目录 1. 电压波形畸变 2. 输出电压波动 3. 电流纹波增加 4. 降低整流效率 5. 影响开关器件的性能 6. EMI(电磁干扰)增加 总结与应对措施 变压器漏感在整流电路中会产生一些影响,尤其在高频应用或电流变化较大的情况下,其影…

【Java】多线程:Thread类并行宇宙

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! 在现代编程中,多线程是提高程序性能和响应能力的一种重要手段。Java 通过 Thread 类和 Runnable 接口提供了丰富的线程管理功能。本文是对 Thread 类基本用法的总结。 线程创建 线程可以…

GEE 案例:利用2001-2024年的MODIS数据长时序ndvi指数归一化后的结果分析

目录 简介 指数 数据 代码 结果 简介 利用2001-2024年的MODIS数据长时序ndvi指数归一化后的结果分析,并加载时序图。 指数 NDVI指数(Normalized Difference Vegetation Index)是用来评估地表植被覆盖度和健康程度的指数。它通过计算红…

PMP--一模--解题--121-130

文章目录 12.采购管理--投标人会议(又称承包商会议、供应商会议或投标前会议)是在卖方提交建议书之前,在买方和潜在卖方之间召开的会议,其目的是确保所有潜在投标人对采购要求都有清楚且一致的理解,并确保没有任何投标…

【数据结构取经之路】图解AVL树

目录 AVL树的前世今生 走进AVL AVL树的实现 1、AVL树节点的定义 2、AVL树的插入 3、完整代码 AVL树的性能 AVL树的前世今生 我们知道,普通的二叉搜索树在不少场景下可以提高我们的查找效率。例如下面这种情况,我们要找22。从根开始,…

搭建一个基于角色的权限验证框架

说明:基于角色的权限验证(Role-Based Access Control,RBAC)框架,是目前大多数服务端的框架。本文介绍如何快速搭建一个这样的框架,不用Shiro、Spring Security、Sa-Token这样的“大框架”实现。 RBAC 基于…

[Meachines] [Medium] Bart Server Monitor+Internal Chat+UA投毒+Winlogon用户密码泄露权限提升

信息收集 IP AddressOpening Ports10.10.10.81TCP:80 $ nmap -p- 10.10.10.81 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 10.0 | http-methods: |_ Potentially risky methods: TRACE |_http-server-header: Micros…

在沉浸式翻译中使用SiliconCloud API:提升翻译体验

沉浸式翻译,作为广受好评的双语对照网页翻译插件,结合了硅基流动(SiliconFlow)的大语言模型,为用户提供了快速、准确的跨语言翻译服务。自2023年上线以来,这款AI双语对照网页翻译扩展已帮助超过100万用户跨…

【C++11 —— 异常】

C —— 异常 C语言传统的处理错误的方式C异常概念异常的使用异常的抛出和捕获异常的重新抛出异常安全异常规范 自定义异常体系自定义异常体系的目的 C标准库的异常体系异常的优缺点 C语言传统的处理错误的方式 在C语言中,错误处理通常依赖于返回值和全局变量的方式…