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

news2024/11/13 9:37:14

🎯要点

  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: 
                continue
        
        scalebar = 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.coloradmin.cn/o/2142400.html

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

相关文章

GPU加速生物信息分析的尝试

GPU工具分类 实话实说,暂时只有英伟达的GPU才能实现比较方便的基因组分析集成化解决方案,其他卡还需要努力呀,或者需要商业公司或学术团体的努力开发呀!FPGA等这种专用卡的解决方案也是有的,比如某测序仪厂家&#xf…

基于stm32使用ucgui+GUIBuilder开发ui实例

1 项目需求 1.1 基于Tft 触摸屏实现一个自锁按键 1.2 按键在按下后背景色需要进行变化,以凸显当前按键状态(选中or 未选中) 1.3 按键选中时对某一gpio输出低电平,非选中时输出高电平 2 移植 ucgui UCGUI的文件数量很大&#x…

happens-before

happens-before 一、happens-before 规则的含义 happens-before 是 Java 内存模型(JMM)中用于定义多线程之间操作顺序的规则集合。它规定了如果一个操作 A happens-before 另一个操作 B,那么 A 的结果对 B 可见,并且在 B 执行之…

未来最好的程序开发语言:Rust - 安装rust

安装 Rust - Rust 程序设计语言一门帮助每个人构建可靠且高效软件的语言。https://www.rust-lang.org/zh-CN/tools/install 设置下载源:

开源 AI 智能名片链动 2+1 模式 S2B2C 商城小程序与社交电商的崛起

摘要:本文深入探讨了社交电商迅速发展壮大的原因,并分析了开源 AI 智能名片链动 21 模式 S2B2C 商城小程序在社交电商中的重要作用。通过对传统电商与社交电商的对比,以及对各发展因素的剖析,阐述了该小程序如何为社交电商提供新的…

【机器学习】6 ——最大熵模型

机器学习6——最大熵模型 目录 机器学习6——最大熵模型最大熵(maximum entropy)模型模型模型学习(估计参数)模型评价应用 最大熵(maximum entropy)模型 选择熵最大的概率模型 熵是衡量不确定性的&#xf…

7 递归——206. 反转链表 ★

7 递归 206. 反转链表 给你单链表的头节点head,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 算法设计 可以充分利用原有的存储空间,通过修改指针实现单链表的就地逆置。相当于将所有的箭头反向,头指针指向原链表的尾部。…

苏州科技大学、和数联合获得国家知识产权局颁发的3项发明专利证书

近日,基于“苏州科技大学-和数智能软件区块链技术工程实验室”的研究成果,国家知识产权局正式授权了苏州科技大学、苏州和数区块链应用研究院联合申报的3项发明专利证书。 分别为: 一种基于双账本的物联网数据存储与共享方法 一种面向物联网…

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

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

使用HTML和CSS制作网页的全面指南

目录 引言 一、理解HTML 1. 什么是HTML? 2. HTML文档的基本结构 3. 常用的HTML标签 4. 示例:创建一个简单的HTML页面 二、理解CSS 1. 什么是CSS? 2. CSS的使用方式 3. CSS选择器和属性 4. 常用的CSS属性 三、创建网页的步骤 1. 规…

蓝桥杯-基于STM32G432RBT6的LCD进阶(LCD界面切换以及高亮显示界面)

目录 一、页面切换内容详解 1.逻辑解释 2.代码详解 code.c(内含详细讲解) code.h main.c 3.效果图片展示 ​编辑 二、页面选项高亮内容详解 1.逻辑解释 2.读入数据 FIRST.第一种高亮类型 code.c(内含代码详解) code.…

说一说Zookeeper的应用场景及其原理

一 ZooKeeper简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名…

【C++】深入理解引用:从基础到进阶详解

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:C_小米里的大麦的博客-CSDN博客 🎁代码托管:C: 探索C编程精髓,打造高效代码仓库 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、前言 二、引用的概念 三、常引用&#x…

c++249多态

#include<iostream> using namespace std; class Parent { public:Parent(int a){this->a a;cout << " Parent" << a << endl;} public:virtual void print()//在子类里面可写可不写 {cout << "Parent" <<a<&l…

虚拟机centos_7 配置教程(镜像源、配置centos、静态ip地址、Finalshell远程操控使用)

文章目录 一、下载镜像源&#xff08;准备工作&#xff09;1、开源网站2、下载 二、VMware配置centos三、配置静态IP地址四、Finalshell使用1、下载Finalshell2、连接虚拟机 五、谢谢观看&#xff01; 一、下载镜像源&#xff08;准备工作&#xff09; 1、开源网站 有许多开源…

[Linux]:进程间通信(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 1. system V通信 前面我们所探究的通信方式都是基于管道文件的&#xff0c;而…

day22JS-npm中的部分插件使用方法

1. 静态资源目录 静态资源目录就是访问服务器的某些路劲时候&#xff0c;服务器可以吐出一个写好的指定页面。 实现思路&#xff1a; 1、先判断要找的路径是否是文件&#xff0c;如果是文件&#xff0c;就加载发给对方。 2、如果是文件夹&#xff0c;找到这个文件夹所在路径中…

STL相关简介

string 看到这个词&#xff0c;相信大家一定都很好奇什么是string&#xff0c;它有什么作用呢&#xff1f;今天&#xff0c;就让我们一起来了解一下关于string的简介吧~ 目录 string 1. 什么是STL 2. STL的版本 3. STL的六大组件 4. STL的重要性 5. 如何学习STL 6.STL的…

modbus调试助手/mqtt调试工具/超轻巧物联网组件/多线程实时采集/各种协议支持

一、前言说明 搞物联网开发很多年&#xff0c;用的最多的当属modbus协议&#xff0c;一个稳定好用的物联网组件是物联网平台持续运行多年的基石&#xff0c;所以这个物联网组件从一开始就定位于自研&#xff0c;为了满足各种场景的需求&#xff0c;当然最重要的一点就是大大提…

【题解】—— [CSP-J2019 江西] 面积

【题解】—— [CSP-J2019 江西] 面积 [CSP-J2019 江西] 面积题目描述输入格式输出格式输入输出样例输入 #1输出 #1输入 #2输出 #2 提示 1.思路解析2.AC代码 [CSP-J2019 江西] 面积 通往洛谷的传送门 题目描述 Alice 有一个边长为 a a a 的正方形&#xff0c;Bob 有一个长宽…