使用SVM对心脏数据是否患病进行分类预测
作者简介
杜嘉宝,男,西安工程大学电子信息学院,2024级研究生
研究方向:变压器故障预警与检测
电子邮件:djb857497378@gmail.com
王子谦,男,西安工程大学电子信息学院,2024级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:1523018430@qq.com
在这篇文章中,我将分享如何使用支持向量机(SVM)算法对心脏病数据进行分类。整个流程包括数据加载、预处理、SMOTE过采样、PCA降维、超参数调优、灰狼优化算法的使用等。通过这篇文章,希望你能够了解如何通过集成不同技术实现更好的分类效果。
1. 安装包的准备
首先,你需要安装必要的Python库。以下是一些主要的库:
pip install numpy pandas scikit-learn imbalanced-learn matplotlib
这些库提供了SVM、SMOTE过采样、PCA降维以及其他常用的数据处理工具。
2. 数据集介绍
本次我们使用的是UCI心脏病数据集,包含多种与心脏病相关的特征,如年龄、性别、血压、胆固醇水平等。数据集中的目标变量target有五个不同的类别,表示不同程度的心脏病。
通过加载数据,我们将其分为特征集(X)和目标值(y),并进行清洗(将?替换为0)。
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data"
columns = ["age", "sex", "cp", "trestbps", "chol", "fbs", "restecg", "thalach", "exang", "oldpeak", "slope", "ca", "thal", "target"]
features, target = load_data(url, columns)
3. SVM算法介绍
支持向量机(SVM)是一种强大的分类算法,尤其适合处理高维数据。它的目标是寻找一个超平面,将不同类别的样本分开,并且最大化类别之间的间隔。在这篇文章中,我们使用SVC(支持向量分类)来实现心脏病数据的分类。
from sklearn.svm import SVC
svm_clf = SVC(kernel='rbf', C=1.0, gamma=0.1)
svm_clf.fit(X_train, y_train)
4. SMOTE算法介绍
在心脏病数据集中,类别不平衡问题较为严重。为了解决这个问题,我们使用了SMOTE(Synthetic Minority Over-sampling Technique)算法,通过生成合成样本来平衡各个类别。
from imblearn.over_sampling import SMOTE
X_resampled, y_resampled = smote(X_train, y_train, sampling_strategy={2: 55, 3: 55, 4: 55})
5. GridSearch算法
为了寻找SVM模型的最佳超参数,我们使用了GridSearchCV进行超参数搜索。通过在不同的C和gamma值之间进行网格搜索,找出最优的组合。
from sklearn.model_selection import GridSearchCV
gridsearch(X_train, y_train, X_test, y_test)
6. PCA算法介绍
主成分分析(PCA)是降维的常用方法,可以在保留数据大部分信息的情况下,减少数据的维度。在本次任务中,我们使用PCA将数据维度降到95%的信息量。
from sklearn.decomposition import PCA
X_train = pca.fit_transform(X_train)
X_test = pca.transform(X_test)
7. 灰狼优化算法介绍
灰狼优化算法(Grey Wolf Optimizer, GWO)是一种模拟灰狼捕猎行为的优化算法。在这里,我们使用灰狼优化算法来寻找SVM模型的最佳超参数C和gamma。
def grey_wolf_optimizer(...):# 代码实现见下文return alpha_pos, alpha_score
灰狼优化算法通过模拟灰狼群体的领导行为,帮助我们在搜索空间中找到最优解。
8. 实现流程
8.1 数据加载与预处理
首先,加载数据集,并进行数据清洗。然后,使用SMOTE算法处理类别不平衡问题。
(X_train, X_test, y_train, y_test) = train_test_split(features, target, test_size=0.3, random_state=1, stratify=target)
X_train, y_train = smote(X_train, y_train, sampling_strategy={2: 38, 3: 38, 4: 38})
8.2 数据标准化与PCA降维
使用StandardScaler对数据进行标准化处理,并使用PCA降维。
X_train, X_test = scaler(X_train, X_test)
pca = PCA(n_components=0.95)
X_train = pca.fit_transform(X_train)
X_test = pca.transform(X_test)
8.3 模型训练与优化
使用SVM进行训练,并通过灰狼优化算法调整超参数。
print(grey_wolf_optimizer(0, 100, 10000, 100, 2, X_train, y_train, X_test, y_test))
8.4 可视化
使用Matplotlib进行数据可视化,展示PCA降维后的数据分布。
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X_train[:, 0], X_train[:, 1], X_train[:, 2], c=y_train, cmap='viridis', alpha=0.7)
9. 源代码
Utils.py
import numpy as np
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import GridSearchCV
from sklearn.decomposition import PCAdef scaler(x_train, x_test):standard_transform = StandardScaler()return standard_transform.fit_transform(x_train), standard_transform.fit_transform(x_test)def gridsearch(x_train, y_train, x_test, y_test):C = np.linspace(0,100,100)gamma = np.linspace(0,100,100)param_grid = {'C' : C,'gamma':gamma,'kernel':['rbf','poly']}svm_clf = SVC()grid_search = GridSearchCV(estimator=svm_clf,param_grid=param_grid,n_jobs=-1,cv=5,scoring='accuracy')grid_search.fit(x_train,y_train)print('网格中最优参数:',grid_search.best_params_)print('测试集的准确率:',grid_search.score(x_test,y_test))def apply_pca(data, n_components):# 标准化数据,使其均值为0,方差为1pca_scaler = StandardScaler()scaled_data = pca_scaler.fit_transform(data)# 进行 PCA 降维pca = PCA(n_components=n_components)reduced_data = pca.fit_transform(scaled_data)# 获取解释方差比例explained_variance = pca.explained_variance_ratio_return reduced_data, explained_variancedef grey_wolf_optimizer(lb, ub, n_wolves, max_iter, dim, x_train, y_train, x_test, y_test):# 定义目标函数def objective_function(C, gamma):clf = SVC(kernel='rbf', C=C, gamma=gamma, random_state=1)clf.fit(x_train, y_train)return 1 - clf.score(x_test, y_test)# 初始化狼群wolves = np.random.uniform(lb, ub, (n_wolves, dim))# 初始化 alpha、beta、delta 位置及适应度值alpha_pos = np.zeros(dim)alpha_score = float('inf')beta_pos = np.zeros(dim)beta_score = float('inf')delta_pos = np.zeros(dim)delta_score = float('inf')# 迭代优化for t in range(max_iter):# 计算当前狼群的适应度for i in range(n_wolves):wolves[i, :] = np.clip(wolves[i, :], lb, ub) # 约束搜索范围C = max(float(wolves[i, 0]), 1e-3)gamma = max(float(wolves[i, 1]),1e-3)fitness = objective_function(C, gamma)# 更新 alpha、beta、deltaif fitness < alpha_score:delta_score, delta_pos = beta_score, beta_pos.copy()beta_score, beta_pos = alpha_score, alpha_pos.copy()alpha_score, alpha_pos = fitness, wolves[i, :].copy()elif fitness < beta_score:delta_score, delta_pos = beta_score, beta_pos.copy()beta_score, beta_pos = fitness, wolves[i, :].copy()elif fitness < delta_score:delta_score, delta_pos = fitness, wolves[i, :].copy()# 计算系数 aa = 2 - t * (2 / max_iter)# 更新狼群位置for i in range(n_wolves):r1, r2 = np.random.rand(dim), np.random.rand(dim)A1 = 2 * a * r1 - aC1 = 2 * r2D_alpha = abs(C1 * alpha_pos - wolves[i, :])X1 = alpha_pos - A1 * D_alphar1, r2 = np.random.rand(dim), np.random.rand(dim)A2 = 2 * a * r1 - aC2 = 2 * r2D_beta = abs(C2 * beta_pos - wolves[i, :])X2 = beta_pos - A2 * D_betar1, r2 = np.random.rand(dim), np.random.rand(dim)A3 = 2 * a * r1 - aC3 = 2 * r2D_delta = abs(C3 * delta_pos - wolves[i, :])X3 = delta_pos - A3 * D_delta# 计算新位置wolves[i, :] = (X1 + X2 + X3) / 3print(f"Iteration {t+1}: Best C={alpha_pos[0]}, Best gamma={alpha_pos[1]}, Best fitness={1-alpha_score}")return alpha_pos, alpha_score
load_data.pyimport pandas as pd
import numpy as np
from imblearn.over_sampling import SMOTEdef load_data(url, columns):# 读取数据df = pd.read_csv(url, names=columns)df_cleaned = df.replace('?', 0)X = df_cleaned.iloc[:, :-1] # 特征y = df_cleaned.iloc[:, -1] # 目标值return X, ydef smote(x, y, sampling_strategy, random_state=1, k_neighbors=1):smote = SMOTE(random_state=random_state, sampling_strategy=sampling_strategy, k_neighbors=k_neighbors)x_resampled, y_resampled = smote.fit_resample(x, y)return x_resampled, y_resampledif __name__ == '__main__':url = "https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data"columns = ["age", "sex", "cp", "trestbps", "chol", "fbs", "restecg", "thalach","exang", "oldpeak", "slope", "ca", "thal", "target"]features, target = load_data(url, columns)labels, count = np.unique(target, return_counts=True)print('labels', labels, ' ', 'count:', count)sampling_strategy = {2: 55, 3: 55, 4: 55}smote = SMOTE(random_state=42, sampling_strategy=sampling_strategy, k_neighbors=1)features_resampled, target_resampled = smote.fit_resample(features, target)labels, count = np.unique(target_resampled, return_counts=True)
print('labels', labels, ' ', 'count:', count)train.py
from sklearn.model_selection import train_test_split
from load_data import load_data, smote
from utils import scaler, gridsearch,grey_wolf_optimizer
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCAurl = "https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data"
columns = ["age", "sex", "cp", "trestbps", "chol", "fbs", "restecg", "thalach", "exang", "oldpeak", "slope", "ca", "thal", "target"]
features, target = load_data(url, columns)
(X_train,X_test,y_train,y_test) = train_test_split(features, target,test_size=0.3,random_state=1,stratify=target)
labels, count = np.unique(y_train, return_counts=True)
print('labels', labels, ' ', 'count:', count)
sampling_strategy = {2: 38, 3: 38, 4: 38}
X_train, y_train = smote(X_train, y_train,sampling_strategy)
labels, count = np.unique(y_train, return_counts=True)
print('labels', labels, ' ', 'count:', count)
X_train, X_test = scaler(X_train,X_test)
pca = PCA(n_components=0.95)
X_train = pca.fit_transform(X_train)
X_test = pca.transform(X_test)
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X_train[:, 0], X_train[:, 1], X_train[:, 2], c=y_train, cmap='viridis', alpha=0.7)ax.set_xlabel("Principal Component 1")
ax.set_ylabel("Principal Component 2")
ax.set_zlabel("Principal Component 3")
ax.set_title("PCA 3D Scatter Plot")
plt.show()
print(grey_wolf_optimizer(0,100,10000,100,2,X_train,y_train,X_test,y_test))
相关文章:
使用SVM对心脏数据是否患病进行分类预测
作者简介 杜嘉宝,男,西安工程大学电子信息学院,2024级研究生 研究方向:变压器故障预警与检测 电子邮件:djb857497378gmail.com 王子谦,男,西安工程大学电子信息学院,2024级研究生&a…...
作业帮前端面试题及参考答案 (100道面试题-上)
HTML5 的优势是什么? HTML5 作为 HTML 语言的新一代标准,具有众多显著优势,为现代网页开发带来了诸多便利与革新。 在语义化方面,HTML5 引入了大量具有明确语义的标签,如<header>、<nav>、<article>、<section>、<aside>、<footer>等…...
docker部署GPUStack【Nvidia版本】
以下是使用 Docker 部署 GPUStack 的步骤和注意事项 参考文章:https://docs.gpustack.ai/latest/installation/docker-installation/ 1. 前置条件 安装 Docker:确保已安装 Docker 引擎(建议最新稳定版)。NVIDIA 环境支持&#x…...
处理Long类型长度超长导致前端精度丢失问题
1,问题场景 后端返回的Long类型的数据,超10000000000000000,前端处理的时候,数据被截断了。比如tchId: 11073477511443988481, 前端根据tchId获取下一环节信息的时候,传的tchId变成了11073477511443988400&…...
突破亚马逊壁垒,Web Unlocker API 助您轻松获取数据
目录 一、Web Unlocker API简介二、开始使用Web Unlocker API1、首先进入控制台页面,点击左侧第一个tab键“代理 & 抓取基础设施”,找到“网页解锁器”,开始使用。2、进入网页解锁器页面后,填写通道名称,添加简短描…...
工业环境中的安全利器:如何挑选优质安全工具柜
工业生产的复杂环境里,安全工具柜可绝不是个简单的 “储物箱”,它是保障生产安全、提升工作效率的秘密武器。不管是电力维修车间里琳琅满目的绝缘工具,还是化工实验室里的精密仪器,安全工具柜都肩负着妥善收纳、保护的重任。那到底…...
UNITY 屏幕UI自适应
1.主要就是根据屏幕的选择根据尺寸 和UI的锚点和中心点来选择,也可以通过代码来动态修改 2.参考视频:Unity UGUI屏幕自适应看这个就够了_哔哩哔哩_bilibili...
【Linux】VIM 编辑器,编辑加速引擎
目录 vim中的五种常见模式介绍VIM的基本操作安装VIMVIM中的模式切换 VIM指令集命令模式指令集底行模式指令集视图模式指令集替换和插入模式 end vim中的五种常见模式介绍 正常/普通/命令模式【Normal mode】 控制屏幕光标的移动,字符、字或行的删除,移动…...
【vue】class和styles绑定
一、 用来控制样式是否展示 二、style 行内样式 三、自定义属性绑定...
route
1、 传统web应用vs单页面web应用 1.1、传统web应用 传统web应用,又叫做多页面web应用:核心是一个web站点由多个HTML页面组成,点击时完成页面的切换,因为是切换到新的HTML页面上,所以当前页面会全部刷新。 1.2、单页…...
设备监控---保障企业IT基础设施稳定运行
引言 在数字化转型的今天,企业的IT基础设施规模不断扩大,网络设备、服务器、存储系统、云资源等构成了复杂的IT环境。如何确保这些设备的高效运行,及时发现并解决潜在问题,成为IT运维团队的核心任务。设备监控---作为IT运维的基础…...
牙科CAD技术方案
本牙科CAD系统旨在打造一个数字化牙科设计的高性能CAD/CAM软件,提供从修复体设计(如牙冠、牙桥、贴面、活动义齿)到生产准备的全流程解决方案。系统整合多源数据(口内扫描、DICOM文件、颌骨运动数据等)实现精准设计&am…...
Shell编程之循环语句
目录 for循环语句 for语句的结构 for语句应用示例 根据姓名列表批量添加用户 根据IP地址列表检查主机状态 使用while循环语句 while语句的结构 while语句应用示例 批量添加规则编号的用户 猜价格游戏 until循环语句 until语句的结构 until语句应用示例 计算1-50的…...
ECMAScript 11 新特性
ECMAScript 11 新特性 ECMAScript 6 新特性(一) ECMAScript 6 新特性(二) ECMAScript 7~10 新特性 ECMAScript 11 新特性(本文) 1. 私有属性 在类的内部,通过在属性前添加 # 来表示私有属性。 …...
恶意外联情况监测-火绒、DNSLookupView(联网、禁用网卡、仅主机模式请求测试)
恶意外联情况监测-火绒、DNSLookupView(联网、断网、仅主机模式时的请求测试) 结论: 联网时: wireshark、火绒捕获 域名请求、IP请求 DNSLookupView捕获域名请求,无法捕获IP请求 禁用网卡时: 仅DNSLookupView捕获域名请求,无法捕获IP请求。…...
顺序表与Myarraylist
对于所有编程语言来说,数据结构都是精华 一个计算机程序数据结构算法; 我在之前的博客中写了关于集合框架与泛型,这就是数据结构的开始,我今天说的便是数据结构的第一个线性数据结构--顺序表 顺序表是一种线性数据结构…...
Redis 版本变更的变化
Redis 版本变更的变化 以下是 Redis 主要版本的清单及其核心功能变化的梳理,按时间顺序整理关键版本演进 8版本没有整理: Redis 1.0 (2009) 初始版本:发布首个稳定版本,支持基本键值存储。 核心特性: 支持字符串&…...
kubernetes》》k8s》》ConfigMap 、Secret
configmap官网 ConfigMap是一种 API 对象,使用时, Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap将配置和Pod解耦,更易于配置文件的更改和管理。ConfigMap 并不提供保密或者加密功能。 如果你想存储的数据是机密的…...
【React】基本语法
基本语法 通过jsx的语法可以在js中写html函数组件 / class组件的语法、父子组件传参、事件react 生命周期根据状态(数据)动态渲染组件 / 列表渲染 / 表单渲染class组件中的ref、ref回调函数 什么是react ? 用于构建用户界面的 JavaScript 库,主要用于构建…...
ubunut24.04 bash和zsh同时使用conda
文章目录 ubunut24.04 bash和zsh同时使用conda功能一、安装miniconda3二、bash中初始化conda以及安装命令补全1. bash中初始化conda2. bash中安装conda命令补全功能 三、zsh中初始化conda以及安装命令补全1. zsh中初始化conda2. zsh中安装conda命令补全功能3. 在~/.zshrc文件中…...
深度学习入门:神经网络
目录 1. 从感知机到神经网络1.1 神经网络的例子1.2 复习感知机1.3 激活函数登场 2 激活函数2.1 sigmoid函数2.2 阶跃函数的实现2.3 阶跃函数的图形2.4 sigmoid函数的实现2.5 sigmoid函数和阶跃函数的比较2.6 非线性函数2.7 ReLU函数 3 多维数组的运算3.1 多维数组 恒等函数soft…...
Unity有限制状态机FSM
我是标题 前言有限制状态机框架框架图:主要代码: 前言 一般的小型游戏的状态机会使用一个枚举类来枚举所有的状态,然后使用一个switch case来处理所有状态的行为逻辑,但是用这种方式会形成大量的冗余,因为所有的行为逻…...
bash的特性-命令和文件自动补全
在Linux或Unix操作系统中,Bash(Bourne Again SHell)是最常用的命令行解释器之一。它提供了丰富的功能来提升用户的交互体验,其中命令和文件名的自动补全是提高效率的一大利器。本文将详细介绍Bash中的自动补全功能,包括…...
聊聊价值投资
投资的必要性 如果手上现在有10w元,投资时间是50年,就算年化收益率只有15%,最终的财富值也会超过1亿元。而且通货膨胀会让你的存款购买力越来越少,如果你有无法及时花出去的钱,投资是必要的。05年的时候我家楼下的包子…...
ADI的BF561双核DSP怎么做开发,我来说一说(十六)触摸屏的设计
作者的话 ADI的双核DSP,最早的一颗是Blackfin系列的BF561,这颗DSP我用了很久,比较熟悉,且写过一些给新手的教程。 硬件准备 ADZS-BF561-EZKIT开发板:ADI原厂评估板 AD-ICE20000仿真器:ADI现阶段性能最好…...
基于labview的2PSK调制与解调
前面板如上图所示。 以上为产生随机序列的程序 以上为星座图程序 如需要源代码可联系我...
2021-11-01 C++输入十个数求最大最小和第二大第二小的值
缘由c语言输入十个数求最大最小和第二大第二小的值-编程语言-CSDN问答 这是个有意思的题目,考虑可扩展...如果是4个元素的数组,实现O(N)排序 void 输入十个数求最大最小和第二大第二小的值() {//缘由https://ask.csdn.net/ques…...
红人矩阵化运营策略:2025跨境电商如何高效布局海外红人营销
在全球社交媒体营销日益精细化的今天,跨境电商品牌正从单一红人合作转向系统化、团队化的“红人矩阵化运营”。尤其在TikTok、Instagram、YouTube等主流平台逐渐成熟的背景下,如何构建高效的海外红人营销矩阵,成为品牌实现全域曝光与精准转化…...
c# Kestrel
Kestrel 是 .NET 中用于 ASP.NET Core 应用程序的跨平台 Web 服务器。它是轻量级且高性能的,能够处理大量并发连接,常被用作 ASP.NET Core 应用的默认服务器。以下为你介绍 Kestrel 的基本使用和配置: 基本使用 创建一个简单的 ASP.NET Cor…...
算法训练之贪心
♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...
ThreeJs实现裸眼3D地球仪
一、实现效果 使用Three.js实现裸眼3D地球仪 二、实现代码 代码如下: <!DOCTYPE html> <html> <head><title>3D Earth</title><style>body { margin: 0; }canvas { display: block; }</style> </head> <body…...
0x07.Redis 的 hash 是什么?
回答重点: Redis 的 Hash 是一种键值对集合,允许将多个字段与其对应的值存储在同一个键中,从而方便管理和操作关联数据。它的主要特点包括: 高效存储:Hash 采用哈希表实现,能够在内存中高效地存储和操作小规模的数据集,非常适合存储对象的属性。快速操作:支持对字段的…...
今日一记:逆序打印字符、五人年龄计算、对N个数排序
今日进行三道题的练习 题目一:逆序打印字符 核心需求:将输入的n个字符以相反顺序输出。 算法分析: 递归思想: 递归函数先读取字符,直到输入结束(如换行符或EOF)。 在递归返回时打印字符&…...
【笔记】对抗训练-GAN
对抗训练-GAN 深度学习中 GAN 的对抗目标函数详解与最优解推导一、GAN 的基本对抗目标函数二、判别器与生成器的博弈目标三、判别器的最优解推导四、最优判别器的含义五、总结六、WGAN 的动机(为后续铺垫) 深度学习中 GAN 的对抗目标函数详解与最优解推导…...
Python六大数据类型与可变类型
数字类型包括整型(int),浮点型(float),布尔型(bool),复数型(complex)。整型只能存储整数,浮点型可以存储整数和小数,布尔型…...
回溯-day65
回溯 什莫事回溯 回溯法也可以叫做回溯搜索法,它是一种搜索的方式 回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本…...
(2)VTK C++开发示例 --- 绘制多面锥体
文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容👉内容导航 👈👉VTK开发 👈 1. 概述 VTK C开发示例程序; 使用C 和VTK绘制一个多面锥体。 环境说明系统ubuntu22.04、windows11cmake3.22、3.2…...
合同智能审核技术的发展与应用
一、背景与行业现状 合同审查作为企业合同管理的关键环节,其核心价值在于确保合同内容符合法律法规要求并契合企业内部政策。随着企业业务规模扩张带来的合同数量激增,传统人工审查方式在效率和成本方面的局限性日益凸显。这一现状为人工智能技术在合同…...
cryptozombies合约7
我们的合约几乎就要完成了!让我们加上一个事件. 事件 是合约和区块链通讯的一种机制。你的前端应用“监听”某些事件,并做出反应。 例子: // 这里建立事件 event IntegersAdded(uint x, uint y, uint result);function add(uint _x, uint _y) public…...
DeepSeek 接入 Word 完整教程
一、前期准备 1.1 注册并获取 API 密钥 访问 DeepSeek 平台: 打开浏览器,访问 DeepSeek 官方网站(或您使用的相应平台)。注册并登录您的账户。 创建 API 密钥: 在用户控制面板中,找到“API Keys”或“API…...
ARCGIS PRO DSK 利用两期地表DEM数据计算工程土方量
利用两期地表DEM数据计算工程土方量需要准许以下数据: 当前地图有3个图层,两个栅格图层和一个矢量图层 两个栅格图层:beforeDem为工程施工前的地表DEM模型 afterDem为工程施工后的地表DEM模型 一个矢量图层…...
大数据学习栈记——Redis安装及其使用
本文介绍NoSQL技术:Redis的安装及其使用。操作系统:Ubuntu24.04 Redis介绍 Redis是一个键值(key-value)存储系统,即键值对非关系型数据库,和Memcached类似,目前正在被越来越多的互联网公司采用…...
前端工程化之自动化构建
自动化构建 自动化构建的基本知识历史云构建 和 自动化构建 的区别:部署环境:构建:构建产物构建和打包的性能优化页面加载优化构建速度优化 DevOps原则反馈的技术实践 encode-bundlepackage.json解读src/cli-default.tssrc/cli-node.tssrc/cl…...
camx的xml解析
ls out/target/product/<product>/gen/STATIC_LIBRARIES/libcamxgenerated_intermediates/generated g_chromatix g_facedetection g_parser g_sensorg_chromatix/ tuning相关xml的解析codeg_facedetection/ 人脸检测相关xml的解析codeg_parser/ 主要的解析manager 流…...
虚幻引擎 Anim To Tex| RVT | RT
本文上篇分为4个部分:动画驱动材质,虚拟纹理,Rendertarget,以及其他杂项的地编ta干货整理。(其中RT部分基本为UOD重要截图摘录) 本文下篇为:skylight和directional light的区别,未完…...
计算机视觉与深度学习 | 钢筋捆数识别
===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 钢筋捆数 1、初始结果2、处理效果不佳时的改进方法1、预处理增强2、后…...
关于PHP开源CMS系统ModStart的详细介绍及使用指南
关于PHP开源CMS系统ModStart的详细介绍及使用指南: 🔍 ModStart是什么? 基于Laravel框架开发的模块化CMS系统采用Apache 2.0 开源协议,完全免费可商用特别适合需要快速搭建企业级网站/管理系统的开发者 🚀 核心优势…...
VMware vCenter Server 安全漏洞升级方案一则
一、安全漏洞情况 根据VMware提供的安全建议(VMSA-024-0012),VMware vCenter Server可能经受以下漏洞的威胁: 漏洞一为VMware vCenter Server堆溢出漏洞(CVE-2024-37079,CVE-2024-37080)&…...
Linux服务之网络共享
目录 一.存储类型 二.NFS 2.1定义 2.2工作原理 2.3优势 2.4NFS工具 2.4.1exportfs 2.4.2showmount 2.5NFS相关软件及命令 2.6模拟实现NFS 准备工作(服务端和客户端都需要) 服务端位置 客户端配置 测试 补充:设置自动挂载 一.存…...
接口幂等性问题
幂等性问题出现在创建和更新数据时: 一、创建 1、在创建数据时,数据库方面,创建有效的唯一索引,用来数据兜底,并在程序中做异常捕获。 2、在插入数据时可以创建一个防重表做过滤,如果防重数据比较小又需…...