当前位置: 首页 > news >正文

机器学习特征选择

一、特征选择概述

在实际的数据集中,往往包含了大量的特征,但并非所有特征都对我们要预测的目标变量(如分类任务中的类别标签,回归任务中的数值目标)有积极作用。有些特征可能携带的信息量极少,甚至会引入噪声,干扰模型的学习和预测。特征选择就是要解决如何从这些繁杂的特征里挑出 “精华” 的问题。

二、过滤式选择(Filter Methods)

(一)基本原理

过滤式选择相对独立且计算效率较高,它依据数据本身的固有特性,像变量之间的相关性、数据的统计特征等,不依赖具体的机器学习算法模型,来对特征进行评估和筛选。就好比先用一个 “过滤器” 把明显不重要的特征筛除掉,其评估指标通常基于统计学原理、距离度量、信息论等相关概念,用以衡量每个特征与目标变量之间的相关性或者区分度。

(二)常用的评估指标及示例

  1. 方差阈值(Variance Threshold):主要用于去除那些方差极低的特征。例如在一个包含多个传感器采集的数据集中,如果某个传感器在长时间内采集到的数据始终近乎恒定,也就是方差趋近于 0,意味着它携带的信息量极少,很难对目标变量的预测起到作用,那么这个传感器对应的特征就可以通过方差阈值法筛选掉。
  2. 相关系数(Correlation Coefficient):比如皮尔逊相关系数(Pearson correlation coefficient)常用于衡量特征与目标变量之间的线性相关程度,取值范围在 -1 到 1 之间,绝对值越接近 1,表示相关性越强,若接近 0 则表示相关性很弱。以分析房屋价格(目标变量)与多个特征(如房屋面积、房龄、周边学校数量等)的关系为例,可以计算各特征与房价的皮尔逊相关系数,剔除相关性极低的特征。
  3. 互信息(Mutual Information):基于信息论,它衡量的是两个随机变量之间的相互依赖程度,在特征选择中,可用来评估特征与目标变量共享的信息量。比如在文本分类任务中,计算某个词语特征与文档所属类别之间的互信息,筛选出对分类有较高价值的词语作为有效特征。

(三)Python 代码示例

以下是使用皮尔逊相关系数进行特征筛选的 Python 代码示例,假设我们有一个数据集,目标是预测房屋价格(price),特征包含房屋面积(area)、房龄(age)等多个变量。

import pandas as pd
import numpy as np
from sklearn.datasets import load_boston
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_regression# 加载波士顿房价数据集(示例数据集,有多个特征用于预测房价)
data = load_boston()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = data.target# 使用SelectKBest结合f_regression(基于F检验的回归问题特征选择,这里与皮尔逊相关系数类似思路)
# 选择与目标变量(房价)相关性最强的5个特征
selector = SelectKBest(score_func=f_regression, k=5)
X_new = selector.fit_transform(X, y)# 获取被选中的特征名称
selected_feature_names = X.columns[selector.get_support()]
print("Selected features:", selected_feature_names)

在上述代码中:

  • 首先导入所需的库,加载了经典的波士顿房价数据集,其中包含多个可用于预测房价的特征以及对应的房价目标值。
  • 然后使用 SelectKBest 类(sklearn 中实现过滤式特征选择的工具),通过 f_regression 函数(适用于回归场景下基于相关性的特征选择)来评估每个特征与目标变量(房价 y)的相关性,这里设定选择相关性最强的 k = 5 个特征。
  • 最后输出被选中的特征名称,这些特征就是经过过滤式选择后认为对预测房价较有价值的部分。

(四)优点与缺点

  • 优点
    • 计算效率高:不需要反复训练机器学习模型,直接基于数据的统计等特性进行计算,能快速筛选特征,尤其适用于大规模数据集的初步特征筛选。
    • 通用性强:不依赖特定的模型,可应用于多种机器学习任务,如分类、回归等不同场景。
  • 缺点
    • 缺乏对模型的针对性:仅从数据自身角度考虑特征重要性,没有结合后续要使用的具体机器学习算法进行综合评估,可能会筛掉一些虽然单独看与目标相关性不强,但结合模型后能发挥重要作用的特征。

三、包裹式选择(Wrapper Methods)

(一)基本原理

包裹式选择将特征选择看作是一个搜索问题,它把具体的机器学习算法(如决策树、支持向量机等)以及要评估的特征子集作为一个整体进行考虑。通过不断改变特征子集(比如添加或移除某些特征),利用选定的机器学习模型在验证集或交叉验证等方式下的性能表现(如准确率、均方误差等指标)来评价该特征子集的优劣,最终找到使模型性能最优的特征子集。也就是说,它用具体的模型 “包裹” 住特征选择的过程,模型的性能成为判断特征好坏的关键依据。

(二)常用的搜索策略及示例

  1. 完全搜索(Exhaustive Search):理论上会遍历所有可能的特征子集组合,但在实际应用中,除非特征数量极少,否则计算成本过高,几乎难以实现。例如只有 3 个特征时,其所有子集组合共有 8 种情况(包括空集和全集),可以全部尝试并比较模型在各子集下的性能,但当特征数量达到几十甚至更多时,计算量会呈指数级增长。
  2. 启发式搜索(Heuristic Search):像顺序向前选择(Sequential Forward Selection,SFS),开始时特征子集为空,每次从剩余的特征中选择一个加入子集,选择的标准是加入该特征后能最大程度提升模型性能;与之对应的顺序向后选择(Sequential Backward Selection,SBS)则是从所有特征开始,每次移除一个特征,移除后使模型性能下降最少的那个特征被确定移除,如此反复,直到达到某个停止条件(比如达到预设的特征数量或者模型性能不再有明显提升等)。例如在一个有 10 个特征的数据集用于构建分类模型时,使用 SFS 逐步增加特征构建子集,每次都在验证集上看分类准确率的变化来决定添加哪个特征。

(三)Python 代码示例

以下是一个简单的基于顺序向前选择(Sequential Forward Selection,SFS)的包裹式特征选择示例,用于分类任务(假设是一个简单的鸢尾花分类数据集),这里为了简化,没有采用复杂的模型训练评估框架,仅示意基本思路。

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier# 加载鸢尾花数据集
data = load_iris()
X = data.data
y = data.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 特征数量
n_features = X.shape[1]
selected_features = []
best_accuracy = 0# 顺序向前选择
for _ in range(n_features):temp_best_accuracy = 0temp_best_feature = Nonefor feature in range(n_features):if feature not in selected_features:current_selected = selected_features + [feature]X_train_subset = X_train[:, current_selected]X_test_subset = X_test[:, current_selected]model = DecisionTreeClassifier()model.fit(X_train_subset, y_train)accuracy = model.score(X_test_subset, y_test)if accuracy > temp_best_accuracy:temp_best_accuracy = accuracytemp_best_feature = featureselected_features.append(temp_best_feature)best_accuracy = temp_best_accuracyprint(f"Selected features: {selected_features}, Accuracy: {best_accuracy}")

在上述代码中:

  • 同样先导入相关库并加载鸢尾花分类数据集,然后划分出训练集和测试集。
  • 设定初始的空特征子集 selected_features,开始循环添加特征。每次循环遍历所有未被选中的特征,将其加入当前特征子集构建新的训练集和测试集子集,用决策树分类器(这里仅作为示例模型)进行训练并在测试集上评估准确率。选择能使准确率提升最高的那个特征加入到已选特征子集中,并更新最佳准确率等信息。不断重复这个过程,直到达到特征数量上限或者准确率不再有明显提升等停止条件(这里简单示例只是按特征数量全部遍历完)。

(四)优点与缺点

  • 优点
    • 针对性强:紧密结合具体的机器学习模型来选择特征,所选出来的特征子集能够很好地契合该模型,往往能使模型达到比较好的性能表现。
  • 缺点
    • 计算成本高:由于需要多次训练不同特征子集对应的机器学习模型,并在验证集等进行性能评估,尤其是在特征数量较多或者采用复杂的搜索策略时,计算开销非常大,耗时较长。
    • 容易过拟合:过于依赖特定模型在有限验证数据上的性能表现,所选的特征子集可能在训练数据对应的模型上表现好,但泛化能力不一定强,容易出现过拟合问题。

四、嵌入式选择(Embedded Methods)

(一)基本原理

嵌入式选择把特征选择过程融入到机器学习模型的构建过程之中。在模型训练的同时,模型自身的算法机制会自动根据一定的规则确定特征的重要性程度,进而进行特征的筛选或者权重分配等操作。不同的机器学习算法有不同的嵌入式特征选择实现方式,例如正则化方法在训练过程中通过添加惩罚项来抑制不重要特征的权重,决策树类算法通过计算特征在节点分裂过程中的重要性来衡量特征价值。

(二)常见的嵌入式选择实现示例

  1. 基于正则化的线性模型(如 Lasso 和 Ridge 回归):在普通的线性回归中添加正则化项,Lasso(Least Absolute Shrinkage and Selection Operator)回归使用 L1 正则化,它能够使得部分特征的系数收缩为 0,从而起到特征选择的作用,那些系数变为 0 的特征就相当于被筛除掉了;Ridge(岭)回归采用 L2 正则化,虽然不会使特征系数严格为 0,但会对特征的权重进行衰减,相对不重要的特征权重会变得很小,间接体现了特征的重要性差异。例如在预测房屋价格的回归模型中,运用 Lasso 回归可能会发现一些与房价关联不大的特征(如小区内某个很少使用的小型设施对应的特征)其系数变为 0 而被去除。
  2. 基于树模型的特征重要性评估(如决策树、随机森林等):在决策树生长过程中,每次选择分裂特征时,对分类或预测结果贡献越大的特征越有可能被选中,通过统计每个特征在整个树构建过程中被用作分裂节点的次数等指标来衡量特征的重要性。在随机森林中,综合多棵决策树对特征重要性的评估结果(通常是平均各树中特征的重要性得分),可以得到各个特征的重要性排序,进而选择重要的特征用于后续的分析或模型构建。

(三)Python 代码示例

以下是在回归任务中,利用 Lasso 回归(一种基于正则化实现嵌入式特征选择的方法)进行特征选择的 Python 代码示例,同样以波士顿房价数据集为例。

import pandas as pd
from sklearn.datasets import load_boston
from sklearn.linear_model import Lasso
from sklearn.model_selection import train_test_split# 加载波士顿房价数据集
data = load_boston()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = data.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 使用Lasso回归进行特征选择,设置正则化参数alpha(可根据实际调整)
lasso = Lasso(alpha=0.1)
lasso.fit(X_train, y_train)# 获取特征重要性(非零系数对应的特征视为重要特征)
selected_feature_names = X.columns[lasso.coef_!= 0]
print("Selected features:", selected_feature_names)

在上述代码中:

  • 导入库后加载波士顿房价数据集并划分训练集和测试集。
  • 创建 Lasso 回归模型实例,设置正则化参数 alpha(该参数控制对特征系数的惩罚程度,影响特征选择效果,需根据实际情况调整优化),然后使用训练集进行模型训练。
  • 通过查看模型系数 lasso.coef_,将系数不为 0 的特征对应的名称提取出来,这些就是通过 Lasso 回归嵌入式选择出来的、被认为对预测房价较重要的特征。

(四)优点与缺点

  • 优点
    • 结合了计算效率和模型针对性:一方面,不像包裹式选择那样需要大量额外的模型训练和搜索过程,计算成本相对可控;另一方面,又考虑到了模型自身的特点,所选特征与模型训练紧密结合,对提升模型性能有较好的帮助。
  • 缺点
    • 依赖特定模型结构:特征选择的效果受限于所采用的特定嵌入式模型,不同模型对特征重要性的衡量方式和结果可能存在差异,并且对于一些复杂、非线性关系的挖掘可能不如某些专门的包裹式或其他灵活的方法全面。

五、总结

过滤式选择、包裹式选择和嵌入式选择这三种特征选择方法各有优劣,在实际的数据分析和机器学习项目中,需要根据数据特点、任务要求以及计算资源等多方面因素综合考虑来选用合适的特征选择方式。希望通过本文的详细介绍以及代码示例,能帮助大家更好地理解和运用这些特征选择方法,提升机器学习模型的性能和效果。

相关文章:

机器学习特征选择

一、特征选择概述 在实际的数据集中,往往包含了大量的特征,但并非所有特征都对我们要预测的目标变量(如分类任务中的类别标签,回归任务中的数值目标)有积极作用。有些特征可能携带的信息量极少,甚至会引入…...

第R5周:天气预测

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 任务说明:该数据集提供了来自澳大利亚许多地点的大约 10 年的每日天气观测数据。你需要做的是根据这些数据对RainTomorrow进行一个预测&#xff0c…...

【每日学点鸿蒙知识】ets匿名类、获取控件坐标、Web显示iframe标签、软键盘导致上移、改变Text的背景色

1、HarmonyOS ets不支持匿名类吗? 不支持,需要显式标注对象字面量的类型,可以参考以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/typescript-to-arkts-migration-guide-V5#%E9%9C%80%E8%A6%81%E6%…...

【Vim Masterclass 笔记02】第3章:Vim 核心知识 + L08:Vim 核心浏览命令 + L09:Vim 核心浏览命令同步练习

文章目录 Section 3:Vim Essentials(Vim 核心知识)S03L08 Essential Navigation Commands1 光标的上下左右移动2 上 / 下翻页3 基于单词前移4 基于单词后移5 重新定位视图中的文本(页面重绘)6 定位到所在行的行首7 光标…...

Spring Boot教程之四十:使用 Jasypt 加密 Spring Boot 项目中的密码

如何使用 Jasypt 加密 Spring Boot 项目中的密码 在本文中,我们将学习如何加密 Spring Boot 应用程序配置文件(如 application.properties 或 application.yml)中的数据。在这些文件中,我们可以加密用户名、密码等。 您经常会遇到…...

unity 按钮发送数据到服务器端

1. canvas 明显大于 main camera显示范围 按钮设置 reset 2 设置场景背景图片 2. 如何设置 sense 与背景图大小一致 stretch 没有生效 手动拖拽到 camera 大小 3 将button 按钮拖拽到背景image 中...

【TG\SE二次开发】天工CAD二次开发-c++模板介绍

VS的安装的环境: 1. Visual Studio EnterPrise 2022版本 2. 涉及到的工作负荷: 使用C的桌面开发、通用Windows平台开发 3. 特别要求的单个组件: 适用于最新的v143生成工具的CATL(x86和x64)组件、适用于最新的v143生…...

C语言预处理

预处理 C语言的编译步骤 预处理编译汇编链接 C语言的预处理 预处理就是在源文件编译之前,所进行的一部分预备操作,这部分操作是由预处理程序自动完成;当源文件在编译时,编译器会自动调用预处理程序来完成预处理操作执行的解析…...

DPIN基金会在曼谷发布全球去中心化GPU算力网络计划

12月12日,DPIN基金会在泰国曼谷举行的“DPIN—AIDePIN全球共识发布会”上,展示了其构建全球去中心化GPU算力网络的宏伟蓝图与愿景。DPIN基金会致力于开发一个基于人工智能与去中心化物理基础设施网络(DePIN)的高性能计算平台&…...

ONNX Runtime gpu版本安装

ONNX Runtime版本与cudatoolkit版本对应关系:NVIDIA - CUDA | onnxruntime onnx runtime发的版本:Releases microsoft/onnxruntime onnx runtime 官网:ONNX Runtime | Home onnx和onnx runtime版本对应关系:Compatibility | o…...

深入理解 MVCC 与 BufferPool 缓存机制

深入理解 MVCC 与 BufferPool 缓存机制 在 MySQL 数据库中,MVCC(Multi-Version Concurrency Control)多版本并发控制机制和 BufferPool 缓存机制是非常重要的概念,它们对于保证数据的一致性、并发性以及提升数据库性能起着关键作用…...

RockyLinux介绍及初始化

文章目录 一、背景二、下载 RockyLinux9 镜像三、环境初始化四、安装 Docker 环境 一、背景 这里讲一个小故事: 我们都知道Linux 内核是由芬兰计算机科学家林纳斯托瓦兹 (Linus Torvalds) 于 1991 年首次开发的,随后有一个非常重要的公司RetHat成立&am…...

Python中切片操作符

在Python中,切片是一种操作符,允许你获取序列(如列表、元组、字符串)的一部分。切片操作返回序列的一个子集,这个子集是一个新的对象,与原始序列是独立的。切片操作通常用于列表、元组、字符串等。 切片语…...

python -【es】基本使用

一. 前言 在Python中使用Elasticsearch(ES)通常涉及安装Elasticsearch的Python客户端库,然后通过该库与Elasticsearch集群进行交互。 二. 基本使用 1. 安装Elasticsearch Python客户端库 首先,你需要安装elasticsearch库。你可…...

JVM实战—5.G1垃圾回收器的原理和调优

大纲 1.G1垃圾回收器的工作原理 2.G1分代回收原理—性能为何比传统GC好 3.使用G1垃圾回收器时应如何设置参数 4.如何基于G1垃圾回收器优化性能 5.问题汇总 1.G1垃圾回收器的工作原理 (1)ParNew CMS的组合有哪些痛点 (2)G1垃圾回收器 (3)G1如何实现垃圾回收的停顿时间是…...

Python爬虫(selenium)从网站获取信息并存入数据库(mysql)

简介: 在本篇博客中,我们将介绍如何使用Python编写一个简单的网络爬虫,从指定网站上获取图书信息,并将这些信息存入数据库。这个项目涉及到Python编程、selenium爬虫技术以及数据库操作等内容,适合对这些领域感兴趣的初…...

spring中使用@Validated,什么是JSR 303数据校验,spring boot中怎么使用数据校验

文章目录 一、JSR 303后台数据校验1.1 什么是 JSR303?1.2 为什么使用 JSR 303? 二、Spring Boot 中使用数据校验2.1 基本注解校验2.1.1 使用步骤2.1.2 举例Valid注解全局统一异常处理 2.2 分组校验2.2.1 使用步骤2.2.2 举例Validated注解Validated和Vali…...

RabbitMQ中的异步Confirm模式:提升消息可靠性的利器

在现代分布式系统中,消息队列(Message Queue)扮演着至关重要的角色,它能够解耦系统组件、提高系统的可扩展性和可靠性。RabbitMQ作为一款广泛使用的消息队列中间件,提供了多种机制来确保消息的可靠传递。其中&#xff…...

C++ 设计模式:代理模式(Proxy Pattern)

链接:C 设计模式 链接:C 设计模式 - 门面模式 链接:C 设计模式 - 中介者 链接:C 设计模式 - 适配器 代理模式(Proxy Pattern)是一种结构型设计模式,它为其他对象提供一种代理以控制&#xff08…...

41.1 预聚合提速实战项目之需求分析和架构设计

本节重点介绍 : 需求分析架构设计 需求分析 使用预聚合提速查询并且降低高基数查询对后端的压力用户无需变更grafana上的查询语句,后端自动替换效果图 架构设计 架构图 解决方案说明 heavy_query对用户侧表现为查询速度慢在服务端会导致资源占用过多甚至打挂…...

学习路之VScode--自定义按键写注释(插件)

1. 安装 "KoroFileHeader" 插件 首先,在 VScode 中搜索并安装名为 "KoroFileHeader" 的插件。你可以通过在扩展商店中搜索插件名称来找到并安装它。 2. 进入 VScode 设置页面 点击 VScode 左下角的设置图标,然后选择 "设置&q…...

Web安全 - “Referrer Policy“ Security 头值不安全

文章目录 概述原因分析风险说明Referrer-Policy 头配置选项1. 不安全的策略no-referrer-when-downgradeunsafe-url 2. 安全的策略no-referreroriginorigin-when-cross-originsame-originstrict-originstrict-origin-when-cross-origin 推荐配置Nginx 配置示例 在 Nginx 中配置 …...

Milvus×EasyAi:如何用java从零搭建人脸识别应用

如何从零搭建一个人脸识别应用?不妨试试原生Java人工智能算法:EasyAi Milvus 的组合拳。 本文将使用到的软件和工具包括: EasyAi:人脸特征向量提取Milvus:向量数据库用于高效存储和检索数据。 01. EasyAi:…...

CGAL windows 安装教程

1.下载源代码 CGAL官网下载https://github.com/CGAL/cgal/releases 2.下载boost库 BOOST官网下载https://www.boost.org/ 3.下载 GMP and MPFR 4.配置VS2022 头文件: 库路径 做完以上步骤,可以使用CGAL了!...

低代码开源项目Joget的研究——Joget8社区版安装部署

大纲 环境准备安装必要软件配置Java配置JAVA_HOME配置Java软链安装三方库 获取源码配置MySql数据库创建用户创建数据库导入初始数据 配置数据库连接配置sessionFactory(非必须,如果后续保存再配置)编译下载tomcat启动下载aspectjweaver移动jw…...

【Ubuntu 20.4安装截图软件 flameshot 】

步骤一: 安装命令: sudo apt-get install flameshot 步骤二: 设置快捷方式: Ubuntu20.4 设置菜单,点击 号 步骤三: 输入软件名称, 软件快捷命令(flameshot gui)&am…...

AUTOSAR 平台介绍 (R24-11新标准发布!)

AUTOSAR 平台介绍——R24-11 0引言 随着技术的不断进步和市场需求的变化,AUTOSAR在汽车行业中的重要性日益增强。R24-11版本作为AUTOSAR平台的重要更新,旨在提升系统性能、安全性和用户体验。本文将详细介绍R24-11版本的主要更新内容 1 AUTOSAR介绍 AUTOSAR汽车软件架构,旨…...

Framework开发入门(一)之源码下载

一、使用Linux操作系统的小伙伴可以跳转到官网链接按提示操作 官网源码地址:下载源代码 | Android Open Source Project 1.创建一个空目录来存放您的工作文件。为其指定一个您喜欢的任意名称: mkdir WORKING_DIRECTORYcdWORKING_DIRECTORY …...

CentOS7下的 OpenSSH 服务器和客户端

目录 1. 在 IP 地址为 192.168.98.11 的 Linux 主机上安装 OpenSSH 服务器; 2. 激活 OpenSSH 服务,并设置开机启动; 3. 在 IP 地址为 192.168.98.22 的 Linux 主机上安装 OpenSSH 客户端,使用客户端命令(ssh、 scp、…...

rocketmq5--(三)--broker发送消息给消费者

202412/30回过头来记录一下:之前一直找不到在哪里把消息丢给消费者(2024/11/23),找了很久都没找到,就放弃了,然后发现,我靠原来是在poplongpollingservice里。。。。还是乱打断点,偶…...

QComboBox中使用树形控件进行选择

事情是这样的,要在一个ComboBox中通过树形结构进行内容的选择。 默认的QComboBox展开是下拉的列表。因此需要定制一下。 效果就是这样的 实现上面效果的核心代码就是下面这样的 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { treenew…...

单片机中运行多个定时器

在单片机的裸机编程环境中,同时运行多个定时器是完全可行的,但需要注意一些关键点以确保系统的稳定性和效率。以下是一些考虑因素和实现方法: 1. 硬件支持 定时器数量:首先确认您的单片机是否具备足够的定时器资源。大多数现代…...

go 模拟TCP粘包和拆包,及解决方法

1. 什么是 TCP 粘包与拆包? 粘包(Sticky Packet) 粘包是指在发送多个小的数据包时,接收端会将这些数据包合并成一个数据包接收。由于 TCP 是面向流的协议,它并不会在每次数据发送时附加边界信息。所以当多个数据包按顺…...

论文笔记PhotoReg: Photometrically Registering 3D Gaussian Splatting Models

1.abstract 最近推出的3D高斯飞溅(3DGS),它用多达数百万个原始椭球体来描述场景,可以实时渲染。3DGS迅速声名鹊起。然而,一个关键的悬而未决的问题仍然存在:我们如何将多个3DG融合到一个连贯的模型中?解决这个问题将使…...

宝塔服务器安装备份配置

1.服务器下载安装宝塔功能 if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec执行后选择y 等待下载完成会给出…...

ubuntu22 安装CUDA

在Ubuntu系统中,使用nvidia-smi命令可以看到当前GPU信息,在右上角可以看到CUDA Version,意思是最大支持的CUDA版本号。 安装下载 CUDA Toolkit 11.6 Downloads | NVIDIA Developer https://developer.nvidia.com/cuda-downloads?target_osL…...

LabVIEW故障诊断中的无故障数据怎么办

在使用LabVIEW进行故障诊断时,可能会面临“无故障数据”的情况。这种情况下,缺乏明确的故障参考,使得系统难以通过传统对比法进行故障识别。本文将介绍应对无故障数据的关键策略,包括数据模拟、特征提取和基于机器学习的方法&…...

开发模式选择与最佳实践指南20241230

开发模式选择与最佳实践指南 引言 在现代软件开发中,选择合适的开发模式直接影响项目的开发效率和质量。本文将帮助您: 🎯 了解三种主流开发模式的优缺点💡 根据项目特点选择最适合的开发模式🔧 掌握混合开发模式的…...

超详细!一文搞定PID!嵌入式STM32-PID位置环和速度环

本文目录 一、知识点1. PID是什么?2. 积分限幅--用于限制无限累加的积分项3. 输出值限幅--用于任何pid的输出4. PID工程 二、各类PID1. 位置式PID(用于位置环)(1)公式(2)代码使用代码 2. 增量式…...

Redhat7 PCS建立无共享存储浮动地址集群

更新记录 日期版本号内容9/22/2024Ver 1.0重新排版修正 0写在前面 0.1 简述 时间有限使用VMware6.7环境使用Centos7.8最小化安装方式(不用配置本地yum仓库)注意查看主机名(主机双机操作,部分单机操作) 序号HostIPAd…...

爱思唯尔word模板

爱思唯尔word模板 有时候并不一定非得latex https://download.csdn.net/download/qq_38998213/90199214 参考文献书签链接...

交换机Vlan中 tagged和untagged的区别

pvid,tagged与untagged pvid是交换机一个端口上的id,一个端口只能有一个pvid,多个端口可以有相同的pvid。 一:接收数据 Untagged:不管收到的数据帧是否已经有VLAN标记,将数据帧中的vlan标记修改为自己的pvi…...

软件需求分析期末知识点整理

前言:本文为wk学子量身打造,帮助大家少挂科。主要根据ls的会议进行整理。懂得都懂。 重点还是多看看课本 第2章 需求获取的方法 第3章 3.1.2 控制需求(案例*2) 第4章 4.3 范式 第5章 5.2.3 原子功能(案例) 5.2.4 划分功能(案例)5.3.3 工作流图(画图) 第…...

PyAudio使用手册

PyAudio 是一个功能强大的 Python 库,用于在 Python 中进行音频输入和输出操作 1. 安装 在使用 PyAudio 之前,需要先安装它。可以使用 pip 进行安装: pip install pyaudio在某些系统(如 Ubuntu)上,可能还需…...

总结TCP/IP四层模型

总结TCP/IP四层模型 阅读目录(Content) 一、TCP/IP参考模型概述 1.1、TCP/IP参考模型的层次结构二、TCP/IP四层功能概述 2.1、主机到网络层  2.2、网络互连层  2.3、传输层  2.3、应用层 三、TCP/IP报文格式 3.1、IP报文格式3.2、TCP数据段格式3.3、UDP数据段格式3.4、套…...

《深入挖掘Python加解密:自定义加密算法的设计与实现》

利用python实现加解密 在正式编写各种加解密前,我们先写个小案例,如下。 封面在文末呦! 基础加解密-源码 # 加密 def encode():source01 乐茵for c in source01:ascii01 ord(c)ascii01 1print(chr(ascii01), end)# 解密 def decode():…...

【前端,TypeScript】TypeScript速成(六):函数

函数 函数的定义 定义一个最简单的加法函数: function add(a: number, b: number): number {return a b }(可以看到 JavaScript/TypeScript 的语法与 Golang 也非常的相似) 调用该函数: console.log(add(2, 3)) // out [LOG…...

Python中元组(tuple)内置的数据类型

在Python中,元组(tuple)是一种内置的数据类型,用于存储不可变的有序元素集合。元组在很多方面与列表(list)相似,但它们之间存在一些关键的区别。以下是关于Python元组的详细解释: 定…...

AI安全的挑战:如何让人工智能变得更加可信

引言 随着人工智能(AI)技术在各个领域的广泛应用,尤其是在医疗、金融、自动驾驶和智能制造等行业,AI正在重塑我们的工作和生活方式。从提高生产效率到实现个性化服务,AI带来了前所未有的便利。然而,在享受这…...

redis用途都有哪些

Redis,作为一个开源的高性能键值对数据库,其用途广泛且功能强大。 1. 缓存(Caching): • Redis常被用作缓存层,存储那些频繁访问但不易改变的数据,如用户会话、商品详情等。 • 通过将这些数据存…...