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

R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化...

全文链接:https://tecdat.cn/?p=33760

众所周知,心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用,尤其在医疗行业中越来越受欢迎。机器学习可以在预测关键疾病(例如心脏病)的存在或不存在方面发挥重要作用点击文末“阅读原文”获取完整代码数据)。

相关视频

如果能提前准确预测这些信息,可以为医生提供重要见解,从而能够相应并有效地进行患者治疗。以下演示了对流行的心脏疾病数据库进行的探索性数据分析。除此之外,还使用不同方法(如逻辑回归、随机森林和神经网络)进行心脏病预测。

数据集:数据集包含76个属性,但建议我们只使用其中的14个进行分析。在本文中,使用一个合并的数据集构建分类器,并使用交叉验证技术进行性能评估。

特征:

  1. Age:年龄(以年为单位)。

  2. Gender:性别,1表示男性,0表示女性。

  3. Cp:胸痛类型,取值1:典型心绞痛,取值2:非典型心绞痛,取值3:非心绞痛疼痛,取值4:无症状。

  4. Trestbps:静息血压(以毫米汞柱为单位)。

  5. Chol:血清胆固醇(以毫克/分升为单位)。

  6. Fbs:空腹血糖 > 120 mg/dl,1表示真,0表示假。

  7. Restecg:静息心电图结果,取值0:正常,取值1:ST-T波异常,取值2:根据Estes标准显示可能或明确的左室肥厚。

  8. Thalach:达到的最高心率(每分钟心跳数)。

  9. Exang:运动诱发心绞痛,1表示是,0表示否。

  10. Oldpeak:相对于休息引起的ST段压低。

  11. Slope:峰值运动ST段的斜率,取值1:上坡,取值2:平坦,取值3:下坡。

  12. Ca:血管数量(0-3)。

  13. Thal:3 = 正常;6 = 固定缺陷;7 = 可逆性缺陷。

  14. Target:两个类别,因此是一个二分类问题。

目标:预测一个人是否患有心脏疾病。

读取数据集并检查是否有缺失值

head(heartDiseaseData)

02332570e88dea6c4dc8c57fc75bd742.png

sum(is.na(heartDiseaseData))
## [1] 0
colnames(heartDiseaseData)[1]<-"age"
str(heartDiseaseData)

382c0c10ac3b2a5f1bb78426134895f7.png

数据预处理

heartDiseaseData$cp<-as.factor(heartDiseaseData$cp)
levels(heartDiseaseData$cp)[levels(heartDiseaseData$cp)==0] <- "Chest Pain Type 0"
levels(heartDiseaseData$cp)[levels(heartDiseaseData$cp)==1] <- "Chest Pain Type 1"
levels(heartDiseaseData$cp)[levels(heartDiseaseData$cp)==2] <- "Chest Pain Type 2"
levels(heartDiseaseData$cp)[levels(heartDiseaseData$cp)==3] <- "Chest Pain Type 3"
...

06d085cccc88288d641e91e0272b1cba.png

检查缺失值

sum(is.na(heartDiseaseData))
## [1] 0

数据摘要

summary(heartDiseaseData)

ad5050ac56ec66dafbdecf62c74457a9.png

健康人和心脏病患者的观测总数。

ggplot(heartDiseaseData,aes(t...

555f19d56c119b7d158e929d49946049.png

女性心脏病的发病率高于男性

ggplot(heartDiseaseData,aes(target, fill=target)) +
...

a8addb1aae31dd5bb75440f1c069bc03.png

可以观察到,健康人和患有心脏病的人的 Rest ECG 分布没有明显差异。

ggplot(heartDiseaseData,aes(trestbps, fill=target)) + geom_histogram(aes(y=..density..),breaks=seq(90, 200, by=10), ...

44ed01af12c7322dcfb31325da70c15d.png

可以观察到心脏病在各个年龄段均匀分布。此外,患者的中位年龄为56岁,最年轻和最年长的患者分别为29岁和77岁。可以从图表中观察到,患有心脏病的人的中位年龄小于健康人。此外,患心脏病的患者的分布略微倾斜。因此,我们可以将年龄作为一个预测特征。

ggplot(heartDiseaseData,aes(age, fill=target)) + ...

8c74c3a3c79d3339a1651de857eecda5.png

ggplot(heartDiseaseData,aes(x=target, y=age, fill=target)) + 
...

b3ae7b702cd760215a559a2bf6bfc77e.png

此外,患有心脏病的人通常具有比健康人更高的最高心率。

ggplot(heartDiseaseData,aes(thalach, fill=target)) +
...ggtitle("Max Heart Rate Histogram")

e672b59e2b51cce4e58b452ca9bea482.png

此外,可以观察到大多数患有心脏病的人其血清胆固醇在200-300 mg/dl范围内。

ggplot(heartDiseaseData,aes(chol, fill=target)) +...

2f483c467264f2fef9c2d81fec567de8.png

大多数心脏病患者的ST段压低为0.1。


点击标题查阅往期内容

41bb0fc5004fe2c4931bdfb636e0bfe7.jpeg

R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析

outside_default.png

左右滑动查看更多

outside_default.png

01

5abd12a93d6679299cb1e75109fd0550.png

02

20ba08d5434edf475395efcdb20fada1.png

03

39794d3aea28dc7802e3e59dcf7efe16.png

04

bc81459bb2fb49a6fb62b8b3dcbaf5da.png

ggplot(heartDiseaseData,aes(oldpeak, fill=target)) +geom_histogram(aes(y=..density..),breaks=seq(0, 7, by=0.1), ...

9939bb4058524d7464d224205a9671d5.png

大多数拥有0个主要血管的人患有心脏病。

ggplot(heartDiseaseData,aes(ca, fill=target)) +geom_histogram(aes(y=..density..),breaks=seq(0, 5, by=1), ...

29ca23d0a937f01c0d2bc27f0a9950f7.png

大多数患有心脏病的人胸痛类型为1或2。

ggplot(heartDiseaseData,aes(target, fill=target)) +
...

f2ea07747b3cb8221713a24822742c73.png

空腹血糖没有明显差异。

ggplot(heartDiseaseData,aes(target, fill=target)) +
...

7781bfe2f703a21233a4e3454b429989.png

拥有静息心电图异常类型1的人患心脏病的可能性较高。

ggplot(heartDiseaseData,aes(target, fill=target)) +
...

315cfc4129f00adf808298f35486a4e4.png

没有运动诱发性心绞痛的人患心脏病的可能性较高。

ggplot(heartDiseaseData,aes(target, fill=target)) +
...scale_fill_manual(values=c("#97BE11","#DC1E0B"))

5e71890c3878e3d3462a9080cb68f56d.png

具有最高斜率2的人患心脏病的可能性更高

R
ggplot(heartDiseaseData, aes(target, fill=target)) +
...scale_fill_manual(values=c("#97BE11", "#DC1E0B"))

3ddc42c35452dfcb17b62e003a41132d.png

具有固定缺陷地中海贫血的人患心脏病的可能性更高

R
ggplot(heartDiseaseData,aes(target, fill=target)) +
...scale_fill_manual(values=c("#97BE11","#DC1E0B"))

95a97a16f9ba1899e7680b138ec331fb.png

可以观察到仅有少数参数,如胸痛类型、性别、运动诱发心绞痛、血管数量和ST段压低,对结果有显著影响。因此,可以舍弃其他参数。

R
log <- glm(...

76654f579075fbe2a27acf291895e6de.png

8d594055d7b527656616870573f5133b.png

显著特征的总结

R
d <- heartDiseaseDa...

896f0f1e199ce2870898a954cf5b54e9.png

逻辑回归

R
log <- glm(...=binomial)
summary(log)

5c1439ebb3ea9be31f17208d78663e3b.png

R
log.df <- tidy...

观察表明,如果个体患有2型或3型胸痛,患心脏病的可能性更高。随着血管数量、运动诱发心绞痛、ST段压低和男性性别数值的增加,患心脏病的可能性较低。

R
log.df %>%mutate(term=reorder(term,estimate)) %>%
...geom_hline(yintercept=0) +coord_flip()

dde8eb5c31e61e36d2b99d5341e5a2cc.png

随着ST段压低值的增加,患心脏病的可能性降低。随着血管数量的增加,女性患心脏病的可能性降低,而男性的可能性增加。

逻辑回归

R
data <- d
set.seed(1237)
train <- sample(nrow(data), .8*nrow(data), replace = FALSE)
...#调整参数
fitControl <- trainControl(method = "repeatedcv",...
TrainSet$target <- as.factor(TrainSet$target)
R
gbm.ada.1 <- caret::train(target ~ ., ...metric="ROC")gbm.ada.1

8e44bbdf5793286711949a4975229398.png

ST段压低是最重要的特征,其次是胸痛类型2等等。

varImp(gbm.ada.1)

4e3e6777d34c0f2a12b67d57435c4daa.png

pred <- predict(gbm.ada.1,ValidSet)
....
res<-caret::confusionMatrix(t...

47feb6b0dd10c4a85d9833d31b7d8c4e.png

混淆矩阵

ggplot(data = t.df, aes(x = Var2, y = pred, label=Freq)) +
...ggtitle("Logistic Regression")

276559ded73d8d3b2714bdda8dd74eea.png

随机森林

gbm.ada.1 <- caret::train(target ~ ., ...metric="ROC")gbm.ada.1

0676d67abe0a000cb1afb54b3665a05e.png

变量重要性

varImp(gbm.ada.1)

3a716567a241356dd4cfc21d136d6c17.png

pred <- predict(gbm.ada.1,ValidSet)
...
res<-caret::confusionMatrix(t, positive="Heart Disease")
res

30d2f12d7f7c29d08a3eb14c7b85156a.png

混淆矩阵

ggplot(data = t.df, aes(x = Var1, y = pred, label=Freq)) +...ggtitle("Random Forest")

e873afc4efada4882e36b7c97b8e6604.png

绘制决策树

gbmGrid <-  expand.grid(cp=c(0.01))
fitControl <- trainControl(method = "repeatedcv",...summaryFunction = twoClassSummary)
d$target<-make.names(d$target)
system.time(gbm.ada.1 <- caret::train(target ~ ., ...tuneGrid=gbmGrid))
gbm.ada.1

152743c1960ea2d2ae0bb13a288590bc.png

varImp(gbm.ada.1)

e34cbb5d1264ceee193d7cd916d78ee4.png

rpart.plot(gbm.ada.1$finalModel,   ...nn=TRUE)

da6c9a8d2ee0030c0ab806d3a83ccb33.png

神经网络

fitControl <- trainControl(method = "repeatedcv",...summaryFunction = twoClassSummary)
gbm.ada.1 <- caret::train(target ~ ., ...metric="ROC")

94c2c2ec2defec3dcfe91e89438e4d8b.png

gbm.ada.1

bc9848ce37f928cb1d2957bb3587482b.png

变量重要性

varImp(gbm.ada.1)

01bbec2c9435ff2ad46b92684037ef27.png

pred <- predict(gbm.ada.1,ValidSet)
...
res<-caret::confusionMa...

c77146fd82fca8b9e9580fb8a7b1a73a.png

混淆矩阵

混淆矩阵(Confusion Matrix)是用于评估分类模型性能的一种表格。它以四个不同的指标来总结模型对样本的分类结果:真阳性(True Positive, TP)、真阴性(True Negative, TN)、假阳性(False Positive, FP)和假阴性(False Negative, FN)。

ggplot(data = t.df, aes(x = Var1, y = pred, label=Freq)) +
...ggtitle("Neural Network")

a1523553d678227ebfae1b29a7c2df71.png


b9fce0b3f451698d18ce0ec9f89483dd.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化》。

9be5847b44f561d53dd6ef59bfe0e033.jpeg

91827ad0c3c7edc859a428684bc65934.png

点击标题查阅往期内容

数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC

MATLAB随机森林优化贝叶斯预测分析汽车燃油经济性

R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数

R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病

R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

Python贝叶斯回归分析住房负担能力数据集

R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析

Python用PyMC3实现贝叶斯线性回归模型

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析

R语言和STAN,JAGS:用RSTAN,RJAG建立贝叶斯多元线性回归预测选举数据

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言贝叶斯线性回归和多元线性回归构建工资预测模型

R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例

R语言stan进行基于贝叶斯推断的回归模型

R语言中RStan贝叶斯层次模型分析示例

R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化

R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较

R语言实现MCMC中的Metropolis–Hastings算法与吉布斯采样

R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例

R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化

视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型

R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析

R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者

R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化

6727e50170ec32236200e58de9032b2b.png

6bbfbe810279cd2633788b685afbdb95.jpeg

2780618a8c5464aa204ee4ed7294e093.png

相关文章:

R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化...

全文链接:https://tecdat.cn/?p33760 众所周知&#xff0c;心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用&#xff0c;尤其在医疗行业中越来越受欢迎。机器学习可…...

网站被劫持了怎么办

网站被劫持了怎么办 建议新建一个index.html文件&#xff0c;文件中只写几个数字&#xff0c;上传到网站根目录&#xff0c;然后访问网站域名&#xff0c;看看是不是正常&#xff0c;从而可以确定是程序问题还是域名被劫持的问题。 如果是域名被劫持&#xff0c;你可以登录你的…...

【面试题精讲】Java包装类缓存机制

有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址[1] 面试题手册[2] 系列文章地址[3] 1. 什么是 Java 包装类缓存机制? Java 中的包装类&#xff08;Wrapper Class&#xff09;是为了将…...

网络相关知识

0 socket SOCK_DGRAM #无连接UDP SOCK_STREAM #面向连接TCP 1 UDP 1.1 检测UDP yum install -y nc 使用netcat测试连通性 服务器端启动 UDP 30003 端口 ​ nc -l -u 30003 客户端连接服务器的30003端口&#xff08;假设服务的IP地址是119.23.67.12&#xff09; ​nc -u 119…...

商品冷启动推荐综述

About Me: LuckBoyPhd/Resume (github.com) (1)一种基于三部图网络的协同过滤算法 推荐系统是电子商务领域最重要的技术之一,而协同过滤算法又是推荐系统用得最广泛的.提出了一种基于加权三部图网络的协同过滤算法,用户、产品及标签都被考虑到算法中,并且研究了标签结点的度对…...

GEO生信数据挖掘(二)下载基因芯片平台文件及注释

检索到目标数据集后&#xff0c;开始数据挖掘&#xff0c;本文以阿尔兹海默症数据集GSE1297为例 目录 下载平台文件 1.AnnotGPL参数改为TRUE,联网下载芯片平台的soft文件。&#xff08;国内网速奇慢经常中断&#xff09; 2.手工去GEO官网下载 转换芯片探针ID为gene name 拓…...

淘宝电商必备的大数据应用

在日常生活中&#xff0c;大家总能听到“大数据”“人工智能”的说法。现在的大数据技术应用&#xff0c;从大到巨大科学研究、社会信息审查、搜索引擎&#xff0c;小到社交联结、餐厅推荐等等&#xff0c;已经渗透到我们生活中的方方面面。到底大数据在电商行业可以怎么用&…...

Docker版部署RocketMQ开启ACL验证

一、拉取镜像 docker pull apache/rocketmq:latest 二、准备挂载目录 mkdir /usr/local/rocketmq/data mkdir /usr/local/rocketmq/conf 三、运行 docker run \ -d \ -p 9876:9876 \ -v /usr/local/rocketmq/data/logs:/home/rocketmq/logs \ -v /usr/local/rocketmq/data…...

【RabbitMQ实战】04 RabbitMQ的基本概念:Exchange,Queue,Channel等

一、简介 Message Queue的需求由来已久&#xff0c;80年代最早在金融交易中&#xff0c;高盛等公司采用Teknekron公司的产品&#xff0c;当时的Message queuing软件叫做&#xff1a;the information bus&#xff08;TIB&#xff09;。 TIB被电信和通讯公司采用&#xff0c;路透…...

APACHE NIFI学习之—RouteOnAttribute

RouteOnAttribute 描述: 使用属性表达式语言根据其属性路由数据流,每个表达式必须返回Boolean类型的值(true或false)。 标签: attributes, routing, Attribute Expression Language, regexp, regex, Regular Expression, Expression Language, 属性, 路由, 表达式, 正则…...

防火墙网络接口下面多个外网地址,只有第一地址可以访问通其他不通

环境&#xff1a; 主备防火墙 8.0.75 AF-2000-FH2130B-SC 问题描述&#xff1a; 两台防火墙双击热备&#xff0c;高可用防火墙虚拟网络接口Eth4下面有多个外网地址&#xff0c;只有第一地址可以访问通其他不通 解决方案&#xff1a; 1.检查防火墙路由设置&#xff08;未解决…...

【HTTP】URL结构、HTTP请求和响应的报文格式、HTTP请求的方法、常见的状态码、GET和POST有什么区别、Cookie、Session等重点知识汇总

目录 URL格式 HTTP请求和响应报文的字段&#xff1f; HTTP请求方法 常见的状态码 GET 和 POST 的区别 Cookie 和 Session URL格式 &#xff1f;&#xff1a;是用来分割URL的主体部分&#xff08;通常是路径&#xff09;和查询字符串&#xff08;query string&#xff09;…...

苹果mac电脑显示内存不足如何解决?

忍痛删应用、删文档、删照片视频等等一系列操作都是众多Mac用户清理内存空间的方法之一&#xff0c;悲催的是一顿“猛如虎的操作”下&#xff0c;释放出来的内存空间却少的可怜&#xff0c;原因很简单&#xff0c;这样释放内存空间是无效的。如何合理有效的清理内存空间&#x…...

如何在Windows 10上安装Go并搭建本地编程环境

引言 Go是在谷歌的挫折中诞生的编程语言。开发人员不得不不断地选择一种执行效率高但需要长时间编译的语言&#xff0c;或者选择一种易于编程但在生产环境中运行效率低的语言。Go被设计为同时提供这三种功能:快速编译、易于编程和在生产中高效执行。 虽然Go是一种通用的编程语…...

[Realtek sdk-3.4.14b]RTL8197FH-VG 2.4G to WAN吞吐量低于60%的问题分析及解决方案

问题描述 RTL8197FH-VG 2.4G wifi to WAN吞吐量低于65%的标准,正常2T2R的wifi 300Mbps x 65% = 195Mbps,但是实际只能跑到160Mbps,这个时候CPU的idl已经为0,sirq占用率达到98%左右 网络拓扑 一台PC通过2.4G WiFi连接到RTL8197FH-VG,另外一台PC直接通过WAN口连接到RTL8197…...

软件设计模式系列之十八——迭代器模式

1 模式的定义 迭代器模式是一种行为型设计模式&#xff0c;它允许客户端逐个访问一个聚合对象中的元素&#xff0c;而不暴露该对象的内部表示。迭代器模式提供了一种统一的方式来遍历不同类型的集合&#xff0c;使客户端代码更加简洁和可复用。 2 举例说明 为了更好地理解迭…...

前端项目配置 prettier、eslint、lint-stages、husky、commitlint 、style-lint设置代码书写和提交规范

prettier中文网&#xff1a;Options Prettier 中文网 eslint中文网 &#xff1a;ESLint 中文网 github husky &#xff1a; https://github.com/typicode/husky commitlint.js 官网&#xff1a;commitlint - Lint commit messages 、github&#xff1a;GitHub - conventiona…...

如何开始着手一篇Meta分析 | Meta分析的流程及方法

Meta分析是针对某一科研问题&#xff0c;根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法&#xff0c;对来源不同的研究成果进行收集、合并及定量统计分析的方法&#xff0c;最早出现于“循证医学”&#xff0c;现已广泛应用于农林生态&#xff0c;资源环境等方面。…...

【PID控制技术】

PID控制技术 简介控制原理相关术语调参技巧相互作用 相似算法与PWM对比 应用范围优缺点硬件支持 简介 PID控制是一种在工业过程控制中广泛应用的控制策略&#xff0c;其全称是比例-积分-微分&#xff08;Proportional Integral Derivative&#xff09;控制。它的基本原理是根据…...

docker openjdk:8-jdk-alpine 修改时区、添加字体

新建Dockerfile文件&#xff0c;制作新镜像 FROM openjdk:8-jdk-alpine 1、解决字体问题 RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* 2、解决时差问题 # 解决时差8小时问题ENV TZAsia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TZ /et…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)

这是系统中断服务程序的默认处理汇编函数&#xff0c;如果我们没有定义实现某个中断函数&#xff0c;那么当stm32产生了该中断时&#xff0c;就会默认跑这里来了&#xff0c;所以我们打开了什么中断&#xff0c;一定要记得实现对应的系统中断函数&#xff0c;否则会进来一直循环…...

ubuntu清理垃圾

windows和ubuntu 双系统&#xff0c;ubuntu 150GB&#xff0c;开发用&#xff0c;基本不装太多软件。但是磁盘基本用完。 1、查看home目录 sudo du -h -d 1 $HOME | grep -v K 上面的命令查看$HOME一级目录大小&#xff0c;发现 .cache 有26GB&#xff0c;.local 有几个GB&am…...

项目研究:使用 LangGraph 构建智能客服代理

概述 本教程展示了如何使用 LangGraph 构建一个智能客服代理。LangGraph 是一个强大的工具&#xff0c;可用于构建复杂的语言模型工作流。该代理可以自动分类用户问题、分析情绪&#xff0c;并根据需要生成回应或升级处理。 背景动机 在当今节奏飞快的商业环境中&#xff0c…...