- 博客(59)
- 收藏
- 关注
原创 数据结构与算法——深度优先搜索(DFS)和广度优先搜索(BFS)
深度优先搜索是一种用于遍历或搜索树或图的算法。它从根节点(或起始节点)开始,沿着树的深度遍历树的节点,尽可能深地搜索树的分支。当节点v的所在边都已被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这个过程一直进行到已发现从源节点可达的所有节点为止。深度优先搜索通常使用递归或栈来实现。
2024-08-29 17:12:20
340
原创 数据结构与算法——动态规划
动态规划的核心思想:将大问题分解为小问题,通过解决小问题来逐步解决大问题,并且存储已解决的小问题的答案,以避免重复计算。如果我们知道了找给顾客任意小于或等于30元金额的最少硬币数量(即所有子问题的最优解),那么我们就可以通过组合这些最优解来找到找给顾客30元的最少硬币数量(即原问题的最优解)。是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。一个问题的最优解包含其子问题的最优解,即可以通过组合子问题的最优解来构造原问题的最优解。
2024-08-25 14:52:26
909
原创 LeetCode笔记——链表
请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回。指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回。,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪。来表示链表尾连接到链表中的位置(索引从 0 开始)。,请你判断该链表是否为回文链表。,请你反转链表,并返回反转后的链表。给你两个单链表的头节点。给你一个单链表的头节点。给你一个链表的头节点。
2024-08-20 18:30:51
912
原创 数据结构与算法——滑动窗口
滑动窗口是指通过左右两个指针(或索引)来标记窗口的左右边界,随着指针的移动,窗口内的元素不断变化,从而实现对数组或字符串中连续子序列的操作。
2024-08-19 18:54:18
768
原创 理解C++引用名及变量传入
在C++中,引用允许一个变量名(我们称之为“引用名”)作为另一个变量(我们称之为“被引用的变量”或“原始变量”)的别名。这意味着通过引用名,我们可以直接访问和修改被引用变量的值,而不需要使用指针和解引用操作。:考虑一个大型对象(比如一个包含大量数据的结构体或类),当我们需要将其作为参数传递给函数时,如果直接传递对象本身,则会发生拷贝,这可能会非常耗时和占用大量内存。:在某些情况下,我们需要从函数中返回一个对象内部成员的引用,以便调用者能够直接访问或修改这些数据。非常量引用:适用于需要修改原始数据的情况。
2024-08-19 10:27:05
326
原创 上位机开发常用语言与平台对比
上位机通常通过串口、网络等通信方式与下位机(如嵌入式系统、PLC等)进行交互,实现对下位机的控制和监控。综上所述,上位机开发是一个涉及多个方面和技术的综合性工作,需要开发者具备扎实的编程基础、丰富的系统设计经验和良好的团队协作能力。同时,还需要进行硬件选型,如上位机主机、输入输出设备、传感器等的选择。数据处理可以包括数据的显示、存储、分析和报警等功能。:上位机需要根据操作员输入的指令或预设的程序,向下位机发送控制信号,实现对下位机的实时控制。这包括确定需要监控和控制的下位机类型、数量以及所需的通信协议等。
2024-08-15 21:50:35
602
原创 支持向量机(SVM)原理及应用实例
数据集是著名的鸢尾花(Iris)数据集,它常被用于分类算法的测试和教学。核函数是一种特殊的函数,它能够在不显式地计算高维空间中的非线性映射函数的情况下,通过计算输入空间中的点之间的某种相似度(或内积)来间接地实现这种映射。具体来说,如果存在一个从输入空间到特征空间的映射φ(x),使得对于所有的x和z,都有K(x, z) = φ(x) z),则称K(x, z)为核函数。这样我们就可以使 用原来的推导来进行计算,只是所有的 推导是在新的空间,而不是在原来的空 间中进行,即用核函数来替换当中的内积。
2024-08-14 10:38:20
914
原创 数据结构与算法——贪心算法
但是,每个孩子最多只能给一块饼干。贪心算法(Greedy Algorithm),又称贪婪算法,是一种在每一步选择中都采取当前状态下最优(即最有利)的选择,从而希望导致结果是全局最优的算法策略。这种算法并不保证在所有情况下都能找到全局最优解,但在许多实际问题中,它能够以较高的效率得到相当不错的解,甚至是最优解。它并不从整体最优的角度去考虑问题,而是通过在每个阶段选择当前状态下的最优解,来逐步逼近全局最优解。这种策略的关键在于贪心选择性质,即每一步的选择都是基于当前状态的最优解,而不考虑未来的状态或整体情况。
2024-08-11 21:13:51
486
原创 [matlab] 鲸鱼优化算法优化KNN分类器的特征选择
智能优化算法主要包括演化算法和群体智能算法两大类。演化算法如遗传算法(GA)通过模拟生物进化过程中的选择、交叉和变异等操作来寻找最优解。群体智能算法则通过观察社会生物群体的行为,如蚁群算法(ACO)、粒子群优化算法(PSO)等,来搜索最优解。
2024-08-08 17:21:39
1022
原创 SQLite 数据库安装及使用(Linux)
引言SQLite 是一种轻量级的数据库管理系统,它不需要配置、不需要服务器、不需要运行时的管理。SQLite 实际上是一个嵌入式 SQL 数据库引擎,它允许应用程序以数据库的形式存储、管理和查询数据,而且这一切都是在程序内部完成的,无需依赖外部数据库服务器。
2024-08-08 11:44:39
729
原创 数据结构与算法——矩阵
矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,它是一个二维的数据结构,由行和列组成,通常用来表示二维的数据集合。在数学中,矩阵最早来自于方程组的系数及常数所构成的方阵,这一概念由19世纪英国数学家凯利首先提出。在数据结构中,矩阵主要讨论如何在节省存储空间的前提下,正确高效地运算矩阵。
2024-08-02 11:17:36
1165
原创 计算机三级嵌入式笔记(四)——嵌入式系统软件
(1)嵌入式操作系统的特点和分类①嵌入式操作系统的特点嵌入式操作系统除具备任务调度、同步机制、内存管理、中断处理、文件处理等基本功能外,在下列方面具有较为突出的特点:a.代码固化存储,时空效率高嵌入式系统通常不配备像硬盘那样大容量的存储介质,故操作系统和应用软件的代码被固化在嵌入式系统的固态存储器中。因此,嵌入式操作系统必须结构紧凑,代码占用存储空间小,执行效率高。b.可裁剪性支持开放性和可伸缩性的体系结构,满足嵌入式系统的特定需求。c.实时性。
2024-08-02 11:02:44
681
原创 数据结构与算法——双指针
双指针是一种算法技巧,通常用于在数组或链表等数据结构上进行高效的遍历和查找。双指针技术利用两个指针(或索引)来遍历数据结构,这两个指针可以在数据结构上移动,以协助解决特定的问题。双指针技术的目的是通过减少不必要的遍历,降低算法的时间复杂度。移动到数组的末尾,同时保持非零元素的相对顺序不变。你必须在原地(不使用额外数组)修改输入数组并在使用 O(1) 额外空间的条件下完成。个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。轴共同构成的容器可以容纳最多的水。
2024-07-30 15:48:39
956
原创 数据结构与算法——哈希表
数组的索引位置由哈希函数确定,但由于哈希函数的输出范围可能远大于数组的实际大小,因此会出现多个键映射到同一个索引位置的情况,即冲突。:用于将键(Key)映射到数组的一个索引位置。理想的哈希函数能够将不同的键均匀地映射到数组的不同位置,以减少冲突(Collision)的发生。:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。:使用哈希表存储所有数字,然后遍历哈希表,对于每个数字,如果它减一不在哈希表中,则从它开始计算连续序列的长度。
2024-07-30 15:09:03
909
原创 数据结构与算法——二分查找
问题描述:在一个升序排列的数组中查找最后一个等于给定值的元素的索引,如果不存在则返回-1。// 继续向右查找看是否有更大的索引也等于target} else {
2024-07-23 10:27:13
359
原创 计算机三级嵌入式笔记(二)——嵌入式处理器
内核系列推出公司内核结构简单描述51IntelCISC哈佛结构8位字长,最早被称为单片机。其价格低,应用资料全,开发工具便宜,开发周期短,开发成本低,被广泛应用。AVRAtmelRISC哈佛结构8位、16位和32位三类字长的微控制器内核,主要特点是高性能、高速度、低功耗。PICMicrochipRISC哈佛结构8位、16位和32位三类不同字长的RISC微控制器内核。主要针对工业控制应用领域,应用最广的是电机控制、汽车电子等抗干扰要求比较高的场合。
2024-07-23 09:57:18
1096
原创 数据库笔记
数据库类型特点适用场景MySQLRDBMS高性能、可扩展性、易于使用Web应用、企业应用、电子商务等OracleRDBMS强大功能、高度可移植性、良好兼容性企业级应用,如银行、航空、电信等PostgreSQLRDBMS功能强大、开源软件、广泛兼容性企业级应用和开源软件项目MongoDBNoSQL(文档型)高可扩展性、灵活性、高性能Web应用、移动应用、大数据分析RedisNoSQL(内存数据库)高性能、多样性、持久化缓存、事件发布或订阅、高速队列等。
2024-07-20 22:43:40
387
原创 Linux中Vim常用指令的笔记
在Linux中,Vim是一个非常强大的文本编辑器,广泛应用于代码编写、文档编辑等多种场景。Vim提供了丰富的指令集,以下是一些常用的Vim指令笔记,涵盖了Vim的三种主要模式:命令模式(Normal模式)、编辑模式(Insert模式)和末行模式(Ex模式)。
2024-07-19 22:05:16
530
原创 【大数据】JSON文件解析,对其文本聚类/情感分析
K-means 聚类是一种非常流行的聚类算法,它属于无监督学习算法的一种。在图像处理中,K-means 算法可以用于图像分割,将图像中的像素点聚类成不同的区域,从而实现图像的简化或特征提取。函数通过加载停用词、读取JSON文件、解析评论内容、过滤停用词、重组文本以及进行情感分析,实现了对一系列评论的情感倾向评估,并将评估结果以分数的形式打印出来。微博评论数据weibo_comment.json,包含微博上的评论及其回复的详细信息,包括评论者和回复者的个人信息、评论和回复的内容、时间戳等。
2024-07-19 10:54:32
1267
原创 汇川EASY300实验——python作为上位机,PLC与传感器相连,实时显示传感器值并绘制曲线,保存到MYSQL数据库
其卓越的性能、易用的特性和广泛的应用场景使得它成为中小型自动化设备领域的热门选择。汇川EASY系列PLC是一款全场景紧凑型小型PLC,其设计理念来源于真实的使用场景和用户“痛点”,旨在为用户提供易用、高效、可靠的自动化解决方案。编程软件AutoShop是汇川小型PLC的专用上位机软件,它提供了友好的编程和调试环境,支持多种编程语言,并具备丰富、强大的通讯和控制功能。对于直接连接到PLC的IO模块或远程IO模块,需要在PLC程序中设置IO映射,以便将特定的物理IO端口映射到PLC内部的逻辑地址或寄存器上。
2024-07-18 22:15:30
1553
原创 【python】多种回归算法对比气温预测
目录引言决策树回归(Decision Tree Regression)线性回归(Linear Regression)随机森林回归(Random Forest Regression)气温预测对比实例数据集预测值与实际值对比图模型评价指标代码实现定义与原理:构建过程:优缺点:应用场景:决策树回归在金融、医疗、零售等领域都有广泛的应用,如预测股票价格、货币汇率、疾病风险、药物反应、销量预测等。定义:类型:方法:优缺点:应用场景:线性回归在金融、经济学、流行病学等领域有广泛应用,如预测消费支出、固定投资支出、股票价
2024-07-17 17:29:35
1106
原创 Kafka消息队列python开发环境搭建
Kafka 支持多个消费者群组(consumer group)同时消费同一个 topic,每个消费者群组内的消费者可以共同分担处理数据的任务。:Kafka 中的消息被分类存储在名为 topic 的容器中。:同一个消费者群组内的消费者可以并行地消费同一个 topic 的不同分区,但每个分区只能被一个消费者群组内的一个消费者消费,以确保消息的有序性。:Kafka 中的每条消息都有一个唯一的偏移量,用于标识消息在分区中的位置。每个分区可以分布在不同的 broker 上,同时每个分区内的消息都是有序的。
2024-07-17 15:54:04
987
原创 Logistic回归算法原理详解及应用
逻辑回归(Logistic Regression)是一种广泛用于分类问题的统计方法,尤其是二分类问题。逻辑回归通过逻辑函数(sigmoid函数)将线性回归模型的输出(通常是一个实数值)映射到(0,1)区间,从而得到属于某个类别的概率。:在二分类问题中,我们设定一个阈值(通常是0.5),如果Sigmoid函数的输出大于这个阈值,则认为样本属于正类(标签为1的类别),否则属于负类(标签为0的类别)总之,逻辑回归是一种简单而强大的分类算法,特别适用于处理二分类问题,并且其输出具有概率意义,便于理解和应用。
2024-07-16 21:43:08
663
原创 【python】基于随机森林和决策树的鸢尾花分类
决策树和随机森林都是强大的机器学习算法,它们在处理分类和回归问题时各有优势。决策树简单直观,但容易过拟合;随机森林通过集成多个决策树来提高模型的稳定性和准确性,是处理复杂数据集时的优选算法之一。
2024-07-15 21:55:26
863
原创 【matlab】智能优化算法优化BP神经网络
BP神经网络(Back Propagation Neural Network)是一种基于误差反向传播算法的人工神经网络,由输入层、隐层和输出层组成。它通过前向传播计算输出,然后通过反向传播调整权重和阈值,以最小化输出误差。BP神经网络广泛应用于分类、回归、模式识别等领域。智能优化算法是一类受到人类智能、生物群体社会性或自然现象规律启发的算法,用于解决复杂的优化问题。这些算法通常具有全局搜索能力,能够避免陷入局部最优解。
2024-07-15 21:35:25
1493
原创 【matlab】大数据基础与应用实例
独热编码使用N位状态寄存器来对N个状态进行编码,每个状态都有其独立的寄存器位,且在任意时刻,只有一位是有效的(即设置为1),其余位都是0。独热编码(One-Hot Encoding),又称一位有效编码,是数据预处理中常用的一种技术,主要用于处理分类数据。在机器学习和数据科学领域,独热编码是一种将分类变量(离散特征、无序特征)转换为数值型数据的方法,以便机器学习算法能够处理。线性回归模型是一种用于预测连续值输出(或称为因变量)的统计方法,它基于一个或多个自变量(或称为解释变量、特征)与因变量之间的线性关系。
2024-07-13 21:56:53
1119
原创 【python】基于决策树的语音识别
决策树模型呈树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,每个叶节点代表一种分类结果。决策树的构建主要基于贪心算法,它遵循“分而治之”的原则,通过不断地选择最优特征对数据集进行划分,直到满足某个停止条件(如:所有样本都属于同一类别,或者没有更多的特征可供选择等)。决策树被广泛应用于各种领域,包括金融、医疗、市场营销、生物信息学等。总的来说,决策树是一种简单而强大的机器学习算法,它能够以直观的方式展现数据的分类过程,并且具有良好的解释性和泛化能力。
2024-07-13 17:34:46
698
原创 【python】 对上市银行的年报信息进行语义挖掘,计算各银行年报中与金融科技有关的关键词的词向量的余弦相似性,衡量银行的金融科技发展程度。
Word2Vec 是一种广泛使用的词嵌入方法,它能够将词汇表中的单词或短语映射到高维向量空间中,使得语义上相似的单词在向量空间中的位置也相近。'云化', '数据模型', '智慧型', '网上支付', '数据仓库', '量子', 'B2C', '数据共享', '声纹识别','网银', '网上银行', '电商', '网上', '数据中心', '机器人', '分布式', '电子化', '5G',数字化', '智能', '互联网', '线上', '智能化', '供应链', '在线', '人工智能', '自动化',
2024-07-12 10:46:28
1485
原创 【python】随机森林预测汽车销售
独热编码(One-Hot Encoding)是一种常用的将类别型数据(Categorical Data)转换为数值型数据(Numerical Data)的方法,特别适用于机器学习算法中。在独热编码中,每个类别值都会被转换成一个新的二进制列(也称为哑变量),这些列中只有一个为1(表示该样本属于该类别),其余为0。在预测汽车销售方面,随机森林可以有效地处理包含多种特征(如车辆品牌、型号、年份、里程数、配置、价格等)的数据集,并预测销售数量、价格或顾客购买意向等。
2024-07-11 10:21:55
1428
原创 【matlab】随机森林客户流失预测
随机森林(Random Forest)是一种集成学习算法,它通过构建多个决策树并将它们的预测结果进行汇总来提高整体模型的预测准确率、稳定性和泛化能力。:在构建每棵决策树的过程中,不是使用数据集中的所有特征来寻找最佳划分,而是随机选择一部分特征(通常是总特征数的一个子集)来进行节点划分。:对于分类问题,随机森林中的每棵决策树都会给出一个预测结果(即类别的投票)。最终,随机森林的预测结果是所有决策树预测结果的众数(即出现次数最多的类别)。对于回归问题,则取所有决策树预测结果的平均值作为最终预测。
2024-07-11 09:47:19
918
原创 聚类方法K-means和DBSCAN,附matlab代码
K-means聚类算法是一种基于划分的聚类方法,由James MacQueen在1967年提出。该算法将数据分为K个簇,通过迭代的方式优化簇内数据点的平均距离,使得同一簇内的数据点尽可能相似,而不同簇间的数据点尽可能不同。
2024-07-10 19:57:10
1245
原创 【matlab】李雅普诺夫稳定性分析
随着研究的深入,李雅普诺夫第二方法被推广到研究一般系统的稳定性,如度量空间中不变集合的稳定性、大系统或多级系统的稳定性等。其中,输入矩阵P须为对称矩阵,ü输出sym_P为'positive', 'nonnegat','negative','nonposit'和'undifini'分别表示输入矩阵P为正定、非负定(半正定)、负定、非正定(半负定)与不定。总之,李雅普诺夫稳定性分析是一种重要的系统稳定性分析方法,它提供了从能量角度判断系统稳定性的新思路,并在实际应用中得到了广泛的验证和应用。
2024-07-08 17:40:17
1353
原创 线性系统理论及应用GUI设计及仿真
本文界面设计主要基于MATLAB GUI平台,结合控制系统基础理论和MATLAB控制系统工具箱,实现了用于线性系统理论及应用界面的设计。主要包括: 控制系统的状态空间模型,线性系统的时域分析,线性系统能控性和能观性,李雅普诺夫稳定性分析和线性系统综合。
2024-07-07 15:29:08
1021
原创 【matlab】状态空间模型与传递函数模型的建立与转换
在Matlab中,传递函数模型变量的数据结构为‘tf’类,可采用函数命令tf()来描述分子和分母多项式的数组组合,建立控制系统的传递函数模型。若输入的矩阵维数不匹配,ss()函数将显示出错信息,指出系统矩阵维数不匹配。其中,sys和sysT分别为变换前与变换后(输入与输出)的状态空间模型变量;式中,Ts为输入的采样周期,与建立离散系统传递函数的Matlab函数tf()的格式一致。连续系统: con_ss=canon (con_tf, 'modal')式中,A,B,C,D为已经赋值的适宜维数的数组(矩阵)。
2024-07-07 14:20:59
1131
原创 [matlab] 鲸鱼优化算法优化KNN分类器的特征选择
智能优化算法主要包括演化算法和群体智能算法两大类。演化算法如遗传算法(GA)通过模拟生物进化过程中的选择、交叉和变异等操作来寻找最优解。群体智能算法则通过观察社会生物群体的行为,如蚁群算法(ACO)、粒子群优化算法(PSO)等,来搜索最优解。
2024-07-06 11:24:20
22
原创 【matlab】分类回归——智能优化算法优化径向基神经网络
使用径向基函数(Radial Basis Function, RBF)神经网络来预测一组训练数据的输出,并通过交叉验证来评估模型的平均准确率,以此作为个体的适应度% 加载数据集和索引% 提取最优参数% 初始化准确率数组% 进行交叉验证% 创建 RBF 神经网络% 在测试集上进行预测% 数据反归一化% 计算预测准确率% 保存准确率end% 计算平均准确率作为适应度end。
2024-07-06 11:16:29
1734
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人