- 博客(58)
- 收藏
- 关注
原创 nfs网络文件系统
本文介绍了在Linux系统中安装和配置NFS服务的步骤。首先通过apt-get安装nfs-kernel-server,然后编辑/etc/exports文件配置共享目录权限,创建并设置挂载点目录。每次修改配置文件后需重启NFS服务。测试时可通过本地挂载验证,使用mount命令将NFS共享目录挂载到本地/mnt目录,检查测试文件是否存在以确认配置成功,最后用umount卸载目录。整个过程包括安装、配置、重启服务和测试验证等关键步骤。
2025-06-01 16:34:52
83
原创 gcc相关内容
GCC是GNU项目开发的编译器集合,最初专为C语言设计,现支持多种语言并具备交叉编译能力。作为Linux系统的核心编译工具,它曾是该系统唯一的编译器选择。Mingw则是Windows平台的GNU工具精简版本,常用于Windows下的C语言编译。两者均体现GNU创建完全开源操作系统的理念。
2025-05-31 23:09:30
188
原创 makefile学习笔记
本文简要介绍了Makefile的基本概念和使用方法。Makefile主要用于定义C/C++工程的编译规则,指定文件编译顺序和依赖关系。核心内容包括:1)基本规则格式(目标:依赖+带tab缩进的命令);2)常用变量赋值方式;3)make的自动推导功能;4)特殊标记如.PHONY的用法;5)make和make clean等常用命令。文章同时指出在实际项目中更常用CMake来自动生成Makefile,并建议在build目录中执行cmake命令。该摘要概括了Makefile的核心知识点和使用场景,适合快速了解Mak
2025-05-28 17:05:45
469
原创 降维,流行学习,度量学习
多维缩放(MDS)算法旨在保持高维与低维空间中样本距离的相似性,允许降至任意维数,涉及内积矩阵和特征值分解。主成分分析(PCA)基于最近重构性和最大可分性,通过特征值分解实现线性降维,使样本点到超平面的距离最小化。核化线性降维(KPCA)先通过核函数升维再应用PCA。等度量映射(Isomap)通过构建近邻连接图计算最短路径来保持样本间的距离。局部线性嵌入(LLE)则保持近邻样本间的线性关系,确保高维空间的局部线性在低维中得以维持。这些算法均涉及特征值分解和特定距离或关系的保持。
2025-05-17 16:17:33
85
原创 sklearn决策树 待更新
注意:sklearn中所有的决策树模型包括回归决策树实现的是CART决策树算法,在官方文档中有介绍。sklearn中的决策树模型最终得到的树结构都是二叉树,因为CART算法生成的就是二叉树。
2025-04-13 12:06:25
793
1
原创 决策树模型
注意2:选择最优划分属性的方法有很多,但是有实验表明这些划分方法对决策树泛化性能的影响很有限,也有文献说信息增益和基尼指数仅在2%的情况下会有所不同。注意1:决策树有很多种算法,比如:ID3算法,C4.5算法,CART算法,这三个算法的区别是选择最优划分属性的方法不同,第一个是根据信息增益来选;涉及的知识:选择最优划分属性的方法,信息熵,信息增益,增益率,基尼指数,预剪枝,后剪枝,二分法,连续值处理,缺失值处理,ID3算法,C4.5算法,CART算法。单变量决策树是在节点处根据最优划分属性来进行划分。
2025-04-09 16:04:29
140
原创 与熵有关的知识
熵是一个物理学、信息论等多个领域有着重要应用的概念。在物理学中的熵是用来衡量系统混乱程度的量,越混乱熵越大。在信息论中,熵是用来衡量信息的不确定性的量,如果发生一个事件的概率很低,那么它包含的信息量就很大,信息熵也就越高。
2025-04-08 15:50:02
138
原创 最近邻模型 待更新
思想:它们都能做分类和回归。无论分类还是回归,基本思想是一样的,一种是根据距离它最近的k个样本点进行预测,一般有投票法、平均法、加权平均、加权投票。另一种是指定半径,根据半径内的样本点进行预测,同样的也有投票法、平均法、加权平均、加权投票。其中投票法和加权投票法是用在分类任务中的,平均法和加权平均法是用在回归任务中的。我将上面的这两种近邻分别称作k近邻和半径近邻。注意加权平均法在乘完权重然后求和后要除以权重的和。可以认为投票法是加权投票法的特例,平均法是加权平均法的特例。
2025-04-06 21:53:56
70
原创 sklearn的Pipeline
变换器用于对数据进行预处理,如特征缩放、特征选择等;估计器用于进行模型训练和预测,如分类器、回归器等。将多个步骤封装成一个对象,减少了代码的复杂度,使代码更加简洁易读。可以将多个数据处理步骤和机器学习模型组合成一个序列,其中每个步骤都是一个变换器(进行参数调优,而不需要分别对每个步骤进行调参。
2025-04-06 10:36:05
98
原创 kd树和球树
kd树是一种二叉树形数据结构和一种查找算法的结合,kd树有好几种,但是思想相同实际应用起来的差异不大,可以只了解其中一种即可。它常用于解决最近邻搜索问题,它能提升k近邻的效率。暂时不需要知道它的详细步骤,会应用即可。kd树的构建:它的大致流程是依次选择方差大的维度进行划分,为了使构建的树比较平衡会选择中位数进行划分(有的kd树不用中位数进行划分),让中位数作为每一维的节点(它是非叶子节点),这样就形成了二叉树形结构。
2025-04-05 16:11:16
42
原创 latex笔记
LaTeX 默认每个章节第一段首行顶格,之后的段落首行缩进。如果想要段落顶格,在要顶格的段落前加 \noindent 命令即可。如果希望全局所有段落都顶格,在文档的某一位置使用 \setlength{\parindent}{0pt} 命令,之后的所有段落都会顶格。\hspace{100em}用来产生空格效果,其中em是单位,1em表示当前字体下大写M的宽度。LaTeX 支持两种类型的列表:有序列表(enumerate)和无序列表(itemize)。会使用一个杠作为标志,你甚至可以使用一个单词,比如。
2025-03-29 20:14:55
257
原创 sklearn绘图 待更新
sklearn绘图很方便,它将不同种类的图由不同的类来实现,并统一类的方法,即不同种类的图需要用不同的类,但是这些类的使用却是基本一样的。
2025-03-27 21:31:48
165
原创 sklearn特征提取
这里只介绍"filename"和"content",一般使用是都配合它的fit_transform方法使用,使用方法见下面代码。去除口音,默认不做任何操作。
2025-03-21 10:11:37
26
原创 数据集获取
sklearn有四部分数据。其中sklearn的数据集有两部分真实的数据,一部分嵌入到了sklearn库中,即安装好sklearn后就自带了一部分数据,这些数据的规模比较小称为small toy datasets ,还有一部分数据是需要在网上下载的,sklearn提供了下载的api接口,这些数据规模比较大。
2025-03-20 23:03:34
112
原创 稀疏矩阵的存储
稀疏矩阵的存储主要有三种格式:coo、crc、csr。知道有这三种格式就行,其实不需要了解这个具体的内容,下面的内容可以不用看,因为对于稀疏矩阵的储存有scipy中有现成的函数。以后遇到这种问题可以直接去学习如何使用scipy库调用相关接口。
2025-03-20 22:14:09
95
原创 矩阵分解和线性方程组求解算法介绍
介绍:主要用来求最小二乘解。优点:1、适用于大规模问题。尤其是矩阵为稀疏矩阵时,lsqr算法能有效减少计算量和储存空间。2、无需矩阵求逆,lsqr巧妙的避开了矩阵求逆,避免了矩阵求逆过程中可能出现的数值不稳定问题以及高昂的计算成本,特别是大型矩阵求逆计算量和难度都非常大。缺点:1、依赖初始值。2、解的精度取决于迭代次数和收敛条件。
2025-03-17 22:29:07
120
原创 正则化介绍
正则化是用于控制模型的复杂度,防止模型在训练数据上过度拟合(overfitting)。正则化通过在模型的损失函数中引入额外的惩罚项,来对模型的参数进行约束,从而降低模型的复杂度。这个额外的惩罚通常与模型参数的大小或者数量相关,旨在鼓励模型学习简单的规律,而不是过度拟合训练数据。正则化的作用有:防止模型过拟合,减少模型复杂程度,提高模型鲁棒性。简单来说,正则化就是让对模型影响小的权重趋向零。使用L1正则化的模型叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)方法:在损失函数后面加上倍的权重
2025-03-16 13:22:55
60
原创 有不等式约束的拉格朗日乘子法
凸优化中对偶问题可以分为强对偶和弱对偶,强对偶表示原问题的最优解是对偶问题的最优解,弱对偶表示原问题的最优解大于对偶问题的最优解。如果原问题满足slater条件,那么原问题的对偶问题一定是一个强对偶的。slater条件内容:若原问题为凸优化问题,即和为凸函数,为仿射函数,且其可行域中至少有一点使不等式约束严格成立。严格成立就是小于号成立。
2025-03-16 11:45:47
38
原创 git常用指令
git add . 将工作区添加到缓冲区git commit -m "注释" 将缓冲区提交到本地仓库git status 查看状态git-log 查看git提交到本地仓库的日志,使用之前要用命令进行配置,其实就是其了个别名,需要下面的命令配置。
2025-03-09 22:41:34
275
原创 esp32 arduino开发常用函数(需要和乐鑫的arduino文档配合使用)
说明:1、由于写函数参数浪费时间并且没有说明只有参数意义不大,所以在此函数一般只以函数名出现。2、esp32有两个核心,编号为0和1,如果启动了wifi和蓝牙,则会默认将wifi和蓝牙运行在编号为0的核心上。3、esp32adc2的引脚尽量不使用,因为wifi会用到。esp32引脚图和硬件资源如下所示。硬件资源如下,其中I2C、I2S、UART等外设可以被定义到任意管脚上。• 34 个 GPIO 口• 12-bit SAR ADC,多达 18 个通道• 2 个 8-bit D/A 转换器。
2025-03-07 20:13:41
1023
1
原创 esp32开发环境搭建(arduino作为idf组件)
idf接口复杂偏向底层,但是api丰富,灵活性高;esp32-arduino的api少,灵活性不够,但是接口却简单易用,能大幅提高开发效率。那么通过让esp32-arduino作为idf的组件,这样既能使用esp32-arduino的接口又能使用idf的接口,同时兼顾各自优点于一身。
2025-03-02 15:28:14
491
原创 获取系统启动以来的微秒数
定时器加一需要的时间配置为(17+1)/72us,即0.25us,arr配置为3,则定时器每1us触发一次update中断(要在cubemx中开启update中断),即定时器中的计数器从0变到0需要1us,每1us计数器就会重新计数。
2024-12-22 20:56:59
355
原创 定时器实现pwm波
在上方的模式中有4个频道,以1频道举例,选择pwm generation ch1或pwm generation ch1 ch1N,这里的ch1 ch1N表示正常输出和互补输出,可以实现led灯的交替点亮,其实频道中的选项(选项后面的no output表示两种输出都禁止,chx表示只使能正常输出,chxn表示只使能互补输出,chx chxn表示两种输出都使能 )都能输出pwm方波,它们分别对应上图,只不过前面带有pwm的是我们常用的,下方pwm配置中有pwm mode 1和pwm mode 2。
2024-12-22 19:42:07
389
原创 驱动外设总结
4、内部储存器地址:首先说明一点内部储存器地址长度是由容量决定的,首地址从0开始,然后依次递增,也就是说地址可以是0可以是1可以是2,但是最大是由位数决定的。AT24C01、AT24C02地址长度为8位。3、设备地址:地址位数为8,前四位固定为1010,后四位中的前三位由3个引脚决定,最后一位是R/W位,即最后一位由写或读决定,写是0,读是1。但不是每个器件的设备地址都全由A0、A1和A2来控制,有的有其中两个来控制有的有一个甚至有的不由A0、A1和A2来控制,这是由于剩下的位用来做内部存储器地址。
2024-11-29 10:26:47
380
原创 定时器延时公式
在cubemx中配置定时器:点击internal clock,下面参数部分填写prescaler,把auto-reload preload的值设为enable,其他的值一般不需要改变。注意最大延迟是65535x定时器加一需要的时间,其中65535储存在一个16位的寄存器中。公式:定时器加一需要的时间=(prescaler+1)/这个定时器的频率。根据这个公式可知stm32f103c8t6的最小延时是1/72微秒。
2024-11-28 14:56:20
202
原创 stlink utility烧录stm32f103c8t6配置
如果意外发生了,你发现你的单片机没有按你的想法运行,你怀疑没有正确的烧录进程序,那么你可以这样来印证自己的想法,点击target下的erase chip就是清空芯片程序的意思,然后connect一下看看读出来的flash数据是否都是ffffffff,如果是的话说明我们清空了芯片,然后再烧录一下程序,再connect一下,如果读出的flash数据还是一堆ffff那么说明我们的程序并没有烧录进去,这一般是步骤2没有成功,你可以再安步骤2配置一下。1、确保电脑、stlink和单片机接好线。
2024-11-23 13:39:20
1317
原创 GitHub上传项目
2、首先,确认你是否在使用VPN。VPN的使用可能会改变本机的系统端口号,从而影响到Git的正常连接。也就是开了vpn你将会在git push -u origin main 行代码报连接不上的错误,但是如果不开vpn则你上传文件会很慢。如果开了vpn代理则需要做一些配置。注意代码中的127.0.0.1:<你的端口号>需要跟据你的电脑填写,在设置》网络和internet》代理》手动设置代理》编辑,点击编辑就可以看到ip和端口了。以上命令可以在仓库中看到,只不过替换了一些参数而已,。
2024-11-22 20:21:10
314
原创 clion配置stm32开发环境
1、 clion,注意clion默认带有cmake,每个版本 的clion都支持一个范围的cmake,比如2021版的clion最高支持3.19的cmake,而有个版本的cubemx生成代码后要求cmake至少3.22,这是个大坑,所以一定要确定自己的clion和cubemx的cmake要求能对应上。我就遇到了这个问题,曾经我的clion能正常编译之前生成的cubemx,但是后来更新了cubemx后就不行了。我最终的解决了,这里我测试好的clion是2024版,cubemx是 win-v6.11.1版。
2024-11-22 16:56:35
590
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人