- 博客(34)
- 收藏
- 关注
原创 matplotlib绘图二
matplotlib版本:3.7.5numpy版本:1.24.3pandas版本:2.0.3本文主要记录matplotlib对pandas的绘图,matplotlib的绘图技巧参考这里。
2024-04-28 15:04:32 288 1
原创 Transformer架构实现一
三个辅助函数注意力机制、module拷贝函数、从0-1搭建Transformer架构。3)编码层的多头注意力机制。3)编码层的多头注意力机制。4)编码层的前馈全连接。2)输入层的位置编码。2)输入层的位置编码。
2024-04-15 17:55:33 206
原创 Spark记录
Spark记录未整理,请以较平静的心态阅读。目的: 根据user_id进行分组,同时将同一user_id看过的anime_id转化为一个字符串数组(anime_ids),将anime_ids转化为二维的list [[[20, 81, 170, 263…],[]…],最后构建一个关于anime_ids的邻接矩阵。
2024-04-08 23:53:42 769
原创 linux环境下vscode安装jupyter
1)pip install notebook -i https://mirrors.aliyun.com/pypi/simple/ # 下载依赖,最后使用临时镜像。2)jupyter notebook # 运行jupyter即可。
2024-03-31 23:49:20 142
原创 RNN实战二
相同实验条件下,LSTM确实会比RNN更有优势,但是LSTM的网络结构要比RNN复杂的多,我们只要明白他就是另一个RNN而已,只是他优化了RNN的梯度消失的问题。查阅文档发现LSTM层与层之间是没有内置规范化处理的,于是抱着试一试的态度,将LSTM最后一层隐藏状态的输出进行规范化后送入全连接层,验证一下这个所谓的规范化层的作用。在RNN中这个参数设置是不收敛的,可是在LSTM中确是收敛的,此参数下是没有发生梯度消失的,模型的权重也得到了更新,同等条件下,LSTM确实会比RNN要好很多。
2024-03-13 20:28:10 1145
原创 信息熵和交叉熵损失函数
是模型预测的各个类别的概率分布,两个向量的点乘求和(就是公式中里面那个求和计算)就是这个样本的一次交叉熵损失值了,这和信息熵几乎一样。可以看出torch实现的交叉熵损失函数F.cross_entropy 和我们实现的结果是一致的(注意两者的实现公式稍有不同)代码中cross_entropy函数对信息熵的计算和本文推导的公式稍有不同,本质一样,主要为了代码编写方便。信息熵较小,三个事件中倾向发生事件三,数据的确定性较高(等价数据的不确定性较低)。理解那个为1的类别其概率为100%,其他类别的概率都为0,
2024-02-28 15:19:10 910
原创 支撑向量机 SVM学习理解
支撑向量机(Support Vector Machine,简称svm) 是一种解决二分类问题的有监督的机器学习模型。核心思想就是寻找一个的决策边界(超平面)来区分两种不同类别的样本。
2024-02-17 23:32:38 1043 1
原创 K近邻算法
这样不一定是最好的,假设k=5,其中有两种类别的样本都是2票,此时产生平票的问题,当然我们可以随便选一个返回,这样做就过于简单直接了。实际使用knn时,往往需要根据业务场景对参数进行网格搜索,以便获取一组最佳的参数组合,本文只是knn算法学习理解,暂不涉及sklearn中网格搜索的内容。缓解上面平票情况,可以考虑距离的因素,离得近他的票就应该占比大,实际上这也是合理的,这种考虑距离的因素就是为前k个样本赋予了权重。k近邻算法是非常特殊的,可以被认为是没有模型的算法,仅统计当前样本中前k个样本的票数。
2024-02-05 14:34:59 869 1
原创 逻辑回归学习和理解
逻辑回归(Logistic Regression)解决二分类问题,改造算法可以实现多分类问题。本文主要从二分来推导分析逻辑回归算法。文章公式较多还请慢慢思考。我们来花费一些时间来推导逻辑回归的计算公式,主要是损失函数推导过程和梯度求解以及梯度的向量化,这是十分重要的,因为在使用RNN循环神经网络做分类的时候可能会和这里的推导有关系,这里的推导过程如果可以明白,那么我们完全可以使用numpy包实现一个简单的RNN的神经网络。强烈建议将这里的公式推导弄明白,再看RNN时,就不会被那么多公式劝退了。对于一个线
2024-01-20 17:35:50 855
原创 PCA 主成分分析法下
降维:PCA 算法通过选取较多信息量的前kkk个主成分来进行降维操作,这样原数据保留的信息最多。降噪:PCA降维后将数据返回到原本的高维空间过程中,可以实现”保证维度,但去掉方差很小的特征所带的信息。过拟合:PCA 保留了主要信息,但这个主要信息只是针对训练集的,而且这个主要信息未必是重要信息。有可能舍弃了一些看似无用的信息,但是这些看似无用的信息恰好是重要信息,只是在训练集上没有很大的表现,所以 PCA 也可能加剧了过拟合。特征独立:PCA 不仅将数据压缩到低维,它也使得降维之后的数据各特征相互独立。
2024-01-18 14:55:56 825 1
原创 PCA 主成分分析法上
我们用一个二维数据来看一下如何找一个轴(平面中的直线或方向向量)使得样本数据在这个轴的特征分布是最好的(最能代表原数据)假设有5个样本2个特征X5×2X5×2,分布在二维平面上,如果我们把样本数据映射到某一个直线上,使其特征分布尽量的和原始数据保持一致,该怎么处理,很自然的想法有2个。1)将原始数据向x轴做投影 2)将原始数据向y轴做投影。这样都可以把数据映射到直线上或者可以说是直线的方向向量上。但是这样做是不是做好的呢?还有没有其他方法了呢?
2024-01-16 20:25:05 960 1
原创 Python多线程和多进程
Python多线程适用于io密集型场景。Python多进程适用于cpu密集型场景。串行:一次只能执行一个任务,该任务阻塞时其他任务只能等待。并行:通过多进程/多线程的方式取得多个任务,同时执行这些任务。并发:一种cpu在多任务之间来回切换执行的现象,看起来像是多个任务同时在执行。这些任务可能是并行执行的,也可能是串行执行的,和cpu核心数无关,是操作系统进程调度和cpu上下文切换达到的结果。
2024-01-13 15:24:03 932 1
原创 线性变换(Linear Transformation)的理解
在深度学习当中,通过升维分离噪音和有用的信息,再通过网络学习各个维度的权重,从而将有用信息的权重提高,噪音权重降低,最终提取到样本有用的特征。可以看到数据本身在空间上的分布整体是不变的,相对于2维空间来说3维空间的数据有更好的区分度,神经网络就比较容易学习各个维度的权重。:升维是为了更好的挖掘样本的特征,使样本更具有区分度,从而更易于分类或者回归,将目标数据的特征维度放在了第一个维度,原始数据的特征维度放在了第二个维度。最近看到一个关于样本数据特征维度的回帖感觉讲的很好,分享一下。表示模型学习的权重,将。
2024-01-13 10:56:08 1009 1
原创 分类模型常用的评估指标
准确度 考虑所有样本,预测对的除以总的样本数,比较直接。精确度 允许模型犯点错误,针对某一类别预测对的除以总的预测数。召回率 严格模型尽量不犯错,针对某一类别预测对的除以该类别总测试数。F1 精确度和召回率调和平均值,两者都高的情况下F1才会高。混淆矩阵 分类组成的方阵 行是召回率分析,列是精确率分析。遗留混淆矩阵中的macro avg和weighted avg参数分析和PR曲线、ROC曲线,未完待续~
2024-01-12 20:54:11 934
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人