自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 随机森林完成垃圾邮件分类

首先,我们需要导入所需的库,并加载数据集。数据集包含多个特征,如邮件的单词频率、字符频率等,以及一个目标变量“是否为垃圾邮件”。接下来,我们将数据集划分为训练集和测试集。这里我们使用80%的数据作为训练集,剩余的20%作为测试集。然后,我们将使用训练集来训练随机森林模型。我们设置随机森林的树的数量为100,每次随机选择80%的特征。训练完成后,我们将在训练集上进行预测,并计算混淆矩阵和分类报告来评估模型的性能。接下来,我们将分析特征的重要性。

2024-06-05 09:17:08 396

原创 决策树-电信用户流失预测

首先,我们需要导入所需的库,并加载数据集。数据集包含多个特征,如客户年龄、性别、收入等,以及一个目标变量“流失状态”。接下来,我们将数据集划分为训练集和测试集。这里我们使用80%的数据作为训练集,剩余的20%作为测试集。然后,我们将使用训练集来训练决策树模型。我们设置决策树的最大深度为6,并使用基尼指数作为划分标准。训练完成后,我们将在训练集和测试集上分别进行预测,并计算混淆矩阵和分类报告来评估模型的性能。最后,我们将决策树的可视化结果保存为图片,以便更好地理解模型的决策过程。

2024-06-05 09:13:24 174

原创 Transformer模型的整体实现

在这篇文章中,我们给出Transformer模型的整体代码实现,如果对每个模块代码不熟悉的同学可以查看专栏前面的文章。

2024-06-01 17:15:37 311

原创 Transformer生成器和整体结构

这个生成器的作用是将解码器的输出映射到词汇表的概率分布。生成器类继承自nn.Module,并包含一个线性层。在forward方法中,它将输入x通过线性层,并返回结果。我们定义一个函数make_model,用于创建Transformer模型。这个函数接收源词汇表大小src_vocab_size、目标词汇表大小tgt_vocab_size、模型维度d_model、注意力头数n_head、前馈网络维度d_ff、编码器和解码器层数N和dropout比例dropout。

2024-06-01 17:12:34 125

原创 Transformer解码器层实现

注:如果看不懂,建议从专栏第一篇文章开始看,每篇文章介绍一个模块。Transformer模型的解码器由多个相同的层(Layer)组成,每个层包括三个子层:掩码多头注意力机制、交叉多头注意力机制,和前馈神经网络。下面是这三个子层的具体实现方法。交叉多头注意力机制用于将编码器的输出与解码器的输入进行关联。它的实现方法与多头注意力机制类似,只不过它的查询(query)来自于解码器,而键(key)和值(value)来自于编码器。掩码多头注意力机制为了实现自回归地生成词。

2024-05-31 09:30:05 168

原创 Transformer编码器的实现

Transformer模型包括编码器(Encoder)和解码器(Decoder)两部分,其中编码器用于处理输入序列,将输入的词做Embeding,解码器用于生成输出序列。本文将详细介绍Transformer模型中的编码器部分。Transformer模型的编码器由多个相同的层(Layer)组成,每个层包括两个子层:多头注意力(Multi-Headed Attention)机制和前馈神经网络(Feed Forward Net)。下面是这两个子层的具体实现方法。

2024-05-31 09:12:09 304

原创 Transformer多头注意力层

多头注意力机制将输入序列分割成多个头,每个头使用不同的线性变换。具体来说,多头注意力机制包括以下几个步骤:将查询(query)、键(key)和值(value)矩阵分别通过三个线性变换WQ​、WK​和WV​,得到新的查询、键和值矩阵。将新的查询、键和值矩阵分割成多个头,每个头使用不同的线性变换。具体地,将每个矩阵的最后一个维度分割成n个部分,其中n是头的数量。对每个头分别计算注意力,得到输出矩阵。将所有头的输出矩阵拼接起来,通过另一个线性变换得到最终的输出。

2024-05-31 09:03:57 181

原创 注意力机制的代码实现

注意力机制的核心思想是,在处理一个序列时,模型应该关注序列中的哪些部分。在自然语言处理中,这通常意味着在生成一个词时,模型应该关注输入序列中的哪些词。注意力机制通过计算一个权重矩阵来实现这一点,这个权重矩阵表示输入序列中每个词对当前位置的重要性。注意力机制的输入包括三个矩阵:query、key和value。这三个矩阵通常是通过嵌入层和神经网络层得到的。注意力机制的输出是一个加权后的value矩阵,这个矩阵表示了输入序列中每个词对当前位置的重要性。

2024-05-30 16:32:13 184

原创 利用 PCA 降维和逻辑回归进行数据分类

主成分分析(PCA)是最常用的降维方法之一。本文将通过一个鸢尾花的数据集,展示如何使用 PCA 进行降维,并应用逻辑回归模型进行分类。

2024-05-30 14:36:11 202

原创 逻辑回归信用卡风险评估案例

这是一个二分类问题,0表示无风险用户,1表示有风险用户。显然数据集的0类别和1类别是不均衡的,后续建模我们会采用过采样或下采样处理。如下图,是没有做数据平衡得出的分类结果,有126个真实标签为1类别,但模型预测为0类别,所以模型倾向于把类别预测为0类别。

2024-05-30 09:44:28 215

原创 Pandas Series 数据结构的使用教程

我个人写博客不喜欢写太多理论,我希望更注重实践,所以很多能在代码里面体现尽量在代码里说明。

2024-05-30 09:24:27 115

原创 LangChain构建大语言模型应用8

我们在使用大模型做命名实体识别时,需要对大模型输出的内容格式化,转化为json格式,便于程序调用。下面的案例我们用大模型抽取医疗相关的实体,并对输出的内容格式化为json格式,后续将其存入图数据库。

2024-05-29 09:13:15 142

原创 Langchain构建大模型应用6

Agent一个很强大的点在于可以调用工具了,OpenAI的大模型可以根据问题情景自动选择调用哪个工具进行作答,目前国内的大模型暂时不具备该功能。

2024-05-29 08:45:00 166

原创 LangChain构建大语言模型应用7

需要说明,LLMRequestsChain、LLMChain在新版本中已经弃用,但新版本还不完善。

2024-05-29 08:45:00 506

原创 LangChain构建大语言模型应用5

【代码】LangChain构建大语言模型应用5。

2024-05-28 11:09:05 177

原创 LangChain构建大语言模型应用4

看不懂一定得看专栏往期的文章,代码一般都有注释,还不懂的话chat查一下就好。

2024-05-28 10:55:13 193

原创 LangChain构建大语言模型应用3

如下,我最后的提问是“吃什么药好的快”,没说什么症状,也没说得什么病,但是大模型的输出知道却病症,说明该类能结合历史的对话进行作答。

2024-05-28 10:31:31 201

原创 LangChain构建大语言模型应用2

如果想系统学习,这些看不懂最好按顺序把专栏看完,因为我是循序渐进的,一个代码就一两个知识点,不难。

2024-05-28 10:02:26 294

原创 LangChain构建大语言模型应用1

【代码】LangChain构建大语言模型应用1。

2024-05-28 09:14:12 225

原创 调用OpenAI大模型2

通过while循环实现与大模型交互调用,同时也可以保存历史的聊天记录,总结后传入大模型,这样就可以实现对话的连贯性。

2024-05-27 18:09:30 516

原创 调用OpenAI的大模型1

如果要调用API,则OpenAI的账号需要绑定,购买token数量,也可以通过一些第三方中转网站。

2024-05-27 17:48:36 212

原创 Numpy库的学习

NumPy是一个开源的Python库,用于科学计算。它提供了一个高性能的多维数组对象和用于处理这些数组的工具。NumPy是Python科学计算生态系统的基础库之一,被广泛应用于数据分析、机器学习、科学计算等领域。NumPy提供了一个强大的N维数组对象,可以用于表示向量、矩阵和张量。这些数组对象具有固定的大小,并且可以在整个数组上执行复杂的数学运算。NumPy的数组对象和运算功能是其强大功能的核心,它们为Python的数据分析和科学计算提供了强大的基础。

2024-05-27 16:44:03 175

原创 Transformer位置编码层的实现

在这篇文章我们将实现位置编码层,跟传统的 LSTM序列模型不同,在 Transformer 编码结构中,均是基于全连接层实现,Linear层没有捕捉位置信息的能力,因此纯粹的 Attention 模块是无法捕捉输入顺序的,因此需要在 Embedding 层后加入位置编码器,将词汇位置不同,可能会产生不同语义信息,加入到词嵌入张量中。Transformer 采用的是正余弦的绝对位置编码,这种编码方式可以保证,不同位置在所有维度上不会被编码到完全一样的值,从而使每个位置都获得独一无二的编码。

2024-05-27 16:15:08 144

原创 Transformer文本嵌入层的实现

在本专栏我主要侧重于讲解Transformer的代码实现,对于原理部分不太了解的同学建议先去研读论文或者博客。这篇文章我们开始正式进入Transfomer的代码部分讲解了,首先就是文本向量化,需要把文字转化成向量,才能进行数学运算。完整的文本向量化过程,要分为两步,第一步是是把文字转化为一个索引,也就是找到这个字在词表中的索引位置;第二步,就是从随机生成的 lookup table 中,找这个索引对应的向量,作为这个词的表征。

2024-05-27 15:47:47 479

原创 pytorch实现BiLSTM新闻分类任务

创建一个run.py文件,作为入口文件,用于初始化模型和超惨数,并指定执行训练。dataset = 'THUCNews' # 数据集# 搜狗新闻:embedding_SougouNews.npz, 腾讯:embedding_Tencent.npz, 随机初始化:randomelse:torch.backends.cudnn.deterministic = True # 保证每次结果一样# train# 初始化超参数# 用于写日志# 开始训练。

2024-05-27 14:15:20 225

原创 对抗生成神经网络(GAN)原理解析和源码详解

GAN的核心思想是通过两个神经网络的对抗过程来生成数据,一个生成器网络(Generator)和一个判别器网络(Discriminator)。生成器网络的目标是生成尽可能真实的数据,而判别器网络的目标是尽可能准确地判断输入数据是真实的还是生成的。在训练过程中,生成器不断尝试生成更加真实的数据,而判别器不断学习如何区分真实数据和生成数据,两者相互对抗,最终达到一个动态平衡状态,生成器能够生成非常逼真的数据。生成器和判别器都用的是简单的全连接层实现,如下图分别为生成器和判别器的网络结构图。

2024-05-27 10:44:54 443

原创 2023年华数杯国际大学生数学建模竞赛B题

从全部题目来看,问题一指标体系的设计很关键,需要考虑多方面的因素。指标体系的权重构建可以采用多种方法当量平均综合评价法、评价权数的构造方法。具体的指数就很多了,物价指数(居民消费价格指数、商品零售价格指数)、股票价格指数、平安指数、和谐指数、廉政指数、环境指数、幸福指数。

2023-02-03 07:40:39 2731

原创 2022 年 MathorCup 高校数学建模挑战赛——大数据竞赛赛道 赛道 B:北京移动用户体验影响因素研究

详细介绍采用信息增益率、XGBoost、随机森林综合筛选特征。

2023-01-31 22:31:07 576 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除