- 博客(30)
- 收藏
- 关注
原创 数据降维——PCA与LDA
特征选择和特征提取的使用没有先后顺序,而是取决于具体任务需求、数据特点和算法设计。可以设计好的算法同时实现特征的选择和提取。:Filter(方差阈值、卡方检验)、Wrapper(递归特征消除)、Embedded(Lasso回归、决策树)。:通过变换(如投影、编码)将原始高维特征映射到新的低维空间,新特征是原始特征的组合(线性或非线性)。:从原始特征中直接筛选出最相关的子集,不改变特征本身的值。:生成的新特征可能无直接物理意义,但能保留关键信息。:保留特征的原始含义,适合可解释性要求高的场景。
2025-03-26 19:37:50
393
原创 k近邻图(knn-graph)和局部线性嵌入图(LLE-graph)的相似性和区别
knn-graph:基于样本之间的距离关系构建图,边权重表示距离。LLE-graph:基于样本之间的线性表示关系构建图,边权重表示表示能力或贡献。两者的共同点是都使用距离度量来捕捉数据的局部几何结构,但它们在表示样本之间关系的方式上有所不同。
2025-03-21 19:14:52
435
原创 聚类中的相似矩阵和拉普拉斯矩阵
前言(可以略过)最近在看的是关于聚类的论文,之前对聚类的步骤和相关内容不太了解,为了读懂论文就去学习了一下,这里将自己的理解记录下来。学习的不全面,主要是为了看懂论文,后续如果有涉及到聚类的,会再补充的,题目就先这样写喽。
2025-03-12 22:55:58
392
原创 Python编程题
用列表保存等差数列前n项,将下标为7的倍数的元素存储到新的move列表中,从等差数列列表中删除move列表中的元素。用列表存储n个数字,找出6的倍数将他们存储到新列表中,并在原列表中删除这些元素,返回原列表和新列表。方法一:正序遍历和反序遍历同时进行,判断是否相同,第0个字符和第l-1个字符比较,依次往后。回文字符串:正读反读都相同的字符串,正序遍历和反序遍历的结果相同。方法二:将字符串逆序,然后与原字符串进行比较,如果相同就是回文串,否则不是。使用列表保存一个首项为2,公差为3的前n项,计算前n项和。
2025-03-05 19:19:00
242
原创 深度学习笔记14-卷积神经网络2
卷积神经网络,是包含卷积运算且具有深度结构的前馈神经网络。在卷积神经网络中,包含卷积层、池化层和全连接层三种重要的结构。相比前馈神经网络,卷积层和池化层是新增的网络结构,在提取特征时,卷积神经网络使用卷积层代替了全连接层,可以通过增加卷积层和池化层的数量,得到更深的卷积神经网络。
2024-11-14 17:34:54
786
原创 深度学习笔记13-卷积神经网络1
卷积神经网络(CNN),它是由多个卷积层、池化层和全连接层构成的前馈神经网络。在卷积神经网络中,包含了可训练的卷积核,这使得卷积神经网络具有强大的表征学习能力。卷积神经网络通过卷积层和池化层进行特征提取,通过全连接层和输出层进行分类。因此卷积神经网络是一种端到端的机器学习模型。
2024-11-12 21:42:01
1272
原创 深度学习笔记12
神经网络可同时用于解决分类问题和回归问题,对于不同的问题会在输出层后,加上不同的变换函数。一般来说,回归问题使用恒等函数,分类问题使用sigmoid或softmax函数。而不同的变换函数,也对应不同的代价函数。
2024-11-11 14:53:08
945
原创 深度学习笔记11-神经网络
逻辑回归用于解决二分类问题,softmax回归用于解决多分类问题,它们都是线性分类器。模型的决策边界都是直线。而神经网络既可以解决分类问题,也可以解决回归问题,不同的问题会选用不同的损失函数。在使用神经网络解决分类问题时,可以通过调整输出层神经元的数量来适应二分类或多分类任务,实际上三种模型并没有本质区别,逻辑回归和softmax回归完全可以看作是神经网络的简化版本三种模型的结构设计。
2024-11-08 17:31:10
1063
原创 深度学习笔记10-多分类
多分类和softmax回归在多分类问题中,一个样本会被划分到三个或更多的类别中,可以使用多个二分类模型或一个多分类模型,这两种方式解决多分类问题。
2024-11-07 16:59:30
1246
原创 深度学习笔记9-实现逻辑回归
在逻辑回归中,决策边界是通过将模型的假设函数(sigmoid 函数的输出)设置为 0.5 来确定的。对于线性模型,决策边界可以表示为一个线性方程。假设函数等于 0.5,根据 sigmoid 函数的定义,当 h(x)=0.5 时,z=0。:这是一个包含样本特征的数组,通常是一个二维数组,其中每一行代表一个样本,每一列代表一个特征。:这是一个包含样本标签的数组,通常是一个一维数组,标签值为0或1,分别代表负类和正类。函数中的一个参数,用于控制随机数生成器的种子。设计成功后,设置测试,打印模型结构和参数。
2024-11-03 11:00:00
1110
原创 深度学习笔记8-逻辑回归
逻辑回归是应用广泛的二分类模型。线性回归模型解决的是回归问题,输出值是连续的实数范围。逻辑回归模型解决的是分类问题,值输出是0或1的离散值。线性回归假设函数:逻辑回归假设函数:逻辑回归在线性回归的基础上增加了sigmoid函数,它也被称为Logistic函数,,sigmoid函数可以将线性计算结果压缩到0-1之间。sigmiod函数,当自变量z趋于负无穷时,函数值趋近于0,当自变量趋于正无穷时,函数值趋近于1。并且sigmoid函数在z=0的位置左右对称。
2024-11-02 19:12:55
703
原创 深度学习笔记7-最小二乘法
运行结果: 矩阵表示线性回归 基于迭代的梯度下降算法会通过一轮轮的迭代,解决线性回归问题,求出取得最小值时,中的值。 关于线性回归的另外的求解思路,是基于多元函数求极值的数学方法,求解参数,在这个过程中,需要求解出关于的偏导数,然后令所有偏导数等于0,然后求出参数的值。这个方法最终会推导出一个关于的公式: 求出取得最小值时,参数的值为最优解,用表示 最小二乘法的公式:推到过程: 移项化简后即可得到 : 调用nu
2024-10-31 23:00:00
614
原创 深度学习6-多元线性回归
一元线性回归:多元线性回归:对于多元线性回归,需要同时考虑多个自变量特征对因变量进行预测,多元线性回归问题会同时使用多个特征进行回归预测。他会在多维空间中找出特征x与真实值y的超平面。
2024-10-30 08:45:00
1020
原创 深度学习5-梯度下降法求解一元线性回归
是一个关于的二元函数,它的图像为凸函数,在全局有唯一的最优解,因此可以随机的初始化一组,使用梯度下降算法求出最小值时,的值。梯度下降算法步骤:求出的梯度向量:设置n轮的循环迭代,每次迭代同时修改的值:使他们分别以的学习速率沿着偏导数的反方向移动随着迭代进行,目标函数逐渐减小,最终到达取得最小值的位置,此时的值就是迭代结果。这里前面提到过,目前没有学到正则化项,目标函数即为损失函式。
2024-10-28 10:00:00
264
原创 深度学习笔记4-一元线性回归
线性回归(Linear Regression)是一种 用于对一个或者多个自变量和因变量之间的关系进行建模的统计方法。线性回归会寻找一条最佳的拟合直线,来描述自变量和因变量之间的关系。有了这个直线,可以根据自变量对因变量进行预测,线性回归中,模型包含几个自变量就是几元线性回归。模型的输入:自变量模型的输出(预测):因变量模型的参数:对于一元线性回归,用一条直线描述自变量与因变量的关系,在描述的时候尽量使数据点均匀分布在直线两侧。
2024-10-27 17:20:10
651
原创 深度学习笔记3-优化器
非凸的Rosenbrock函数,他是一种用于测试 优化算法性能的非凸函数,数学表达式为:观察函数可以看到一个抛物线形成的谷,由于谷的形状会使寻找最小值的过程非常缓慢,普通的梯度下降需要将步长设置的非常小,并且迭代较多的轮数,才能找到函数的最优解。因此需要使用优化器寻找Rosenbrock函数取得最小值时,自变量的值。
2024-10-25 20:12:39
481
原创 深度学习笔记2
在梯度下降算法中,我们需要让函数的自变量沿函数梯度的反方向运动,使函数值以最快的速度减小,从而找到目标函数的极小值。梯度(gradient),是多元函数全部偏导数所构成的向量。使用表示某个函数的梯度。函数上某个点沿着梯度的方向运动,函数增加的速度最快,沿着梯度的反方向运动,函数减小的最快。梯度向量是在函数的输入空间中定义的,函数f(x,y)输入空间在平面x-O-y上。
2024-10-24 21:28:35
713
原创 深度学习1-函数绘制和张量
直接使用Mat-plot-lib默认画板绘制数学函数,绘制的函数可能会不协调美观,为了绘制美观的数学坐标轴,需要使用专门的坐标轴库axis-artist库,这里创建一个专门的函数draw clear_board,用于绘制坐标系。
2024-10-23 15:32:31
1028
原创 中文分词与jieba分词器
在建立文本检索系统的过程中,需要进行分词的处理,中文分词是中文文本挖掘中的一个基础步骤,也是中文自然语言处理中的基础模块。中文不同于英文,由于中文句子的词与词之间没有任何空格之类的显示标志来指示词的边界,因此在中文进行自然语言处理时,需要使用专门的算法进行分词。分词的效果将直接影响词性、句法树、特征值提取等后续算法的处理效果。当前有两类比较常用的分词算法:1.基于词典的分词算法:基于词典的分词算法,也被称为字符串匹配分词算法。
2024-10-22 20:05:17
423
原创 Python笔记9
面向过程编程的重点在于数据结构的设计和一步步实现算法,我们需要考虑的是如何通过一个过程对输入进行运算处理并得到输出。python是面向对象的语言,现实世界中存在的任何事物都可以称为对象,每个对象都有自己独特的特性,面向对象就是以对象为核心,将对象作为基本的结构单元进行设计。类是用来描述具有相同的属性和方法的的对象的合集,它定义了特定集合中的每个对象所共有的属性和方法,而对象被称为是类的实例。类的关键字是class,使用class加类的名称声明一个类。
2024-10-20 10:00:00
683
原创 Python-链表类的实现
链表类的实现#定义链表节点类#构造函数将val赋值为x,next赋为空self.val = x#保存数据,赋值xself.next = None#保存下一个节点的地址class List(object):#带头结点的链表类#初始化函数#创建头节点head,不保存任何有效数据#设置last变量,保存最后一个节点的地址,初始时last保存head的地址。
2024-10-19 15:44:44
388
原创 Python学习笔记8
在程序开发中为了使程序易于升级、开发、测试和维护,会将具有独立功能的程序代码组织成一个个小模块,这些小模块会通过函数来实现,从而实现程序整体工作。如果经常使用某段代码功能,使用函数封装代码后,通过调用函数可以大大减少代码的数量。定义和使用函数需要注意:1.函数名称,它的命名规则与变量规则相同,在名称后是一对圆括号,最后以冒号结尾。2.函数的参数,圆括号中定义函数的参数,参数之间使用逗号分隔,函数可以没有参数,也可以没有返回值,参数的作用是将函数外的必要信息传递给被调用的函数。
2024-10-18 09:00:00
363
原创 Python学习笔记7
字符串是由一个或多个连续字符组成的,可以用单引号、双引号或者三引号来声明,引号中间的内容是字符串数据,引号标记了字符串的起始与结束。字符串是一种不可变的字符序列,它不具备添加、删除、修改等操作,字符串创建后就无法修改其中的数据了,强行修改其中的字符数据,会出现错误提示。但可以修改指向字符串的变量。因此字符串可以作为字典的key来使用。在使用字符串时,可以使用索引的方式,使用方括号访问字符串中的字符。可以使用这两种方式遍历。
2024-10-16 01:44:43
334
原创 python学习笔记6
列表是包含0个或多个元素的有序序列,列表中的元素有顺序之分,可以存储重复的元素。python中使用中括号表示列表,列表可以保存整数、浮点数、字符串等不同的数据类型,不同类型的数据可以存储在同一个列表中:列表名=[value1,value2……] a=[12,67.34,'chst']创建一个空列表,可以使用变量名等于中括号或者变量名等于list两种方法:a=[] 或者b=list()
2024-10-13 02:37:36
1061
原创 Python学习笔记5
条件分支包括单分支if语句、双分支if-else语句、多分支if-elif-else语句,它们之间可以互相嵌套,形成条件分支的嵌套if 条件表达式: if 条件表达式: if 条件表达式1:代码 代码x 代码1。
2024-10-10 00:38:16
525
原创 Python学习笔记3
余数=被除数-除数*商a%b=a-(⌊a/b⌋*b 注意a/b要向下取整 -2.5356....向下取整为-3例如:-17%10=3 17%-10=-3 -17%-10=-7 -2%3=1 2%-3=-1。
2024-10-08 00:55:23
336
原创 Python学习笔记2
制表符:\t换行符:\n如果待表示的字符串中需要包含反斜杠(\)、单引号(')、双引号("),需要使用反斜杠对这些字符进行转义结果:若某些字符串内只表示原始字符含义,使全部的转义字符都不起作用,可以直接在字符串之前加上字母r2.变量的定义和使用变量:数据的名字,存放数据的“地方”标识符(identifier):标识某个实体的符号,用于给常量、变量、函数、语句块等命名,从而建立起名称与使用之间的关系。命名规则:标识符只能由大小写字母下划线和数字组成,并且区分大小写首字母第一个字符不能时数字。
2024-10-07 21:12:39
344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人