- 博客(42)
- 收藏
- 关注
原创 【人工智能】【Python】在Scikit-Learn中使用网格搜索对决策树调参
在鸢尾花数据集(n=150)中,通过三维参数空间遍历(「criterion/max_depth/min_samples_leaf」)结合6折分层验证,实现决策树准确率从92.1%至97.3%的跃升。实验揭示:信息熵准则在深层树(depth=8)时展现分类优势,叶节点约束(min_samples=3)有效平衡过拟合风险^,但计算成本增加14.3%。该范式为中小型数据集(n<10^3)的模型调优提供方法论参考,需警惕参数交互的非线性效应。
2025-03-16 12:53:48
430
原创 【人工智能】【Python】在Scikit-Learn中使用决策树算法(ID3和CART)
本文通过Scikit-Learn实现对比ID3与CART决策树算法,解析信息熵与基尼指数的分裂准则差异。实验使用Iris数据集验证算法性能,揭示random_state参数对数据划分和树结构的双重控制作用。可视化展现特征选择优先级,指出sklearn框架下ID3实为CART的熵准则特例,建议工程部署时关注树深度控制与特征重要性分析,平衡模型精度与泛化能力。
2025-03-14 11:34:22
405
原创 【人工智能】【Python】在Scikit-Learn中使用KNN(K最近邻算法)
在Scikit-Learn中使用KNN(K最近邻算法),代码体现了机器学习项目的典型工作流:数据准备→特征工程→模型训练→参数调优→性能评估。特别值得注意的是对数据分布保持(stratify)、特征标准化、交叉验证等机器学习最佳实践的完整实现,这些细节处理对模型性能有实质性影响。最终的预测概率输出也为后续的决策阈值调整等业务场景应用提供了扩展接口。
2025-03-04 19:03:50
316
原创 【WordPress】发布文章时自动通过机器人推送到钉钉
即可实现自动推送,推送内容包括文章标题、文章设置的人工摘要(若无则提取文章内容前20个字)、文章链接。
2025-02-25 17:27:55
290
原创 【人工智能】我到底该怎么学?科研在二本有意义吗?怎么找资源?
目前在科研团队中还是学的太浅了,如果只发动我的大局观看自己的科研项目的话,只能做到照猫画虎的程度,所以我倒是希望可以在接下来认真学习机器学习、深度学习和数字图像处理这三门专业课,相信深挖这三门课可以让我有一些模型改进的思路。科研没有想象中那么容易,机器学习,深度学习都非常难,不如多学408和考研那些,先进笔试才有机会复试。目前我的情况就是河南二本人工智能专业,只能说开局情况很垃圾,不过有了自己在大一到大二上的努力加持(具体见我的个人经历和年度总结),目前的“逆天改命”也可以改为“合理规划翻盘计划”了。
2025-02-07 23:30:06
130
原创 【Flask】在Flask应用中使用Flask-Limiter进行简单CC攻击防御
并且你可以选择使用一个数据库(Redis默认有16个数据库,编号为0-15)。,并配置使用Redis作为存储。我自己使用的是宝塔进行搭建Python的Flask项目,整体根据以上步骤是基表方便实现的。在Flask应用的配置文件中,指定Redis的连接地址。如果你使用的是Redis集群或其他定制的Redis服务,可以根据需要修改。存储限流信息,确保应用不会在高并发的情况下发生性能瓶颈。: 确保Redis服务在本地或服务器上运行,默认端口是。: 运行Flask应用并进行测试,确保限流机制有效。
2025-01-25 21:56:49
1004
原创 【人工智能】阿里云PAI平台DSW实例一键安装Python脚本
阿里云的DSW实例自带的镜像很少而且并不好用,所以我在这里写三个一键编译安装Python3.8,Python3.9,Python3.10的Shell脚本。
2024-11-09 12:53:09
523
原创 【人工智能】如何评价一篇论文
SCI(Science Citation Index,科学引文索引)期刊的分区是根据期刊影响因子(Impact Factor,IF)在特定学科领域的排名来划分的,通常分为四个区(Q1、Q2、Q3、Q4)。需要注意的是,虽然期刊的影响因子和分区是评价论文质量的重要指标,但最终还是要结合论文本身的内容质量、创新性和对领域的贡献进行全面评价。:论文发表在Q1或Q2期刊通常意味着该论文具有较高的学术贡献或创新价值,而Q3、Q4期刊则可能较少关注前沿研究或影响力较小。上面是8个免费的数据集,下面是33个更多数据集。
2024-11-03 10:40:49
1052
原创 【人工智能】如何在白嫖的阿里云PAI平台上跑模型?
在“交互式建模(DSW)”中新建实例,阿里云自带的示例镜像是很少的,所以我们只需要筛选出适合你的项目的CUDA版本就好。DSW实例可以看作是一个Linux虚拟机,之后我们在实例中新建另一个Python环境使用即可。解压zip:unzip your_zip_file.zip -d output_directory。新建完实例后我们打开实例控制台,切换到Terminal终端板块,开始安装Python。安装完Python的全新环境之后使用pip安装Pytorch和其他软件包就行了。
2024-08-19 11:31:43
663
原创 【PVE】新增2.5G网卡作为主网卡暨iperf测速流程
新增网卡的首先当然需要关闭PVE母机,把新网卡插上,我用淘宝遥现金搞了个红包,花了26元买了块SSU的2.5G网卡。然后保存,应用配置,此时日志不会显示出来了,这是正常的,因为连接PVE的后台的网卡已经变味了新网卡,现在我们把网线换到新网卡即可重新进入PVE后台。插上之后启动PVE,在后台即可看到新的网卡“enp3s0”。当然它默认是关闭的。可见这网卡速度还是可以的,能跑到2.35G,一般便宜的2.5G网卡也就这水平了。网卡启动之后我们编辑Linux Bridge,将桥接端口改为新的网卡名称。
2024-07-10 17:43:01
2739
原创 Proxmox VE(PVE)上手配置指南
①更换软件源为ustc,关闭企业更新源 ②关闭网页订阅提示。或者使用官方提供的一键安装脚本(使用git)ssh链接或后台shell,输入以下命令。在数据中心的存储中删除local-lvm。①在/var目录下创建一个swap目录。为local添加其他存储内容。在/etc/fstab中添加。③创建一个swap分区文件。给予对应权限之后打开脚本。用ftp工具导入PVE。④格式化文件为交换空间。
2024-06-27 08:30:33
1482
原创 【Python】Flask问答系统Demo项目
整体来说这个项目的思路就是使用Flask并联合Jinja2模板渲染引擎,在GET请求Flask后端路径时返回响应html文件,同样在html文件中可以通过JavaScript等手段发送POST请求到后端进行提交form的操作。这个项目让我对Flask加深了了解,比如说Flask中的蓝图,使用SQLAlchemy(flask_sqlalchemy包)操作数据库,使用flask_mail包发送邮件,使用装饰器做一个登录检测来屏蔽未登录用户的访问。
2024-06-11 17:11:17
974
原创 【机器学习】【深度学习】优化器(Optimizer)
优化器(Optimizer)是深度学习中的一个核心的概念,用于更新神经网络的权重,以减少或最小化损失函数(loss function)的值。损失函数衡量了模型的预测值与真实值之间的差异,而优化器的目标是通过调整网络参数来最小化这个差异,从而提高模型的准确性和性能。在神经网络训练过程中,优化器在反向传播过程中起着至关重要的作用。反向传播计算了损失函数相当于模型参数的梯度(即损失函数的导数),优化器则使用这些梯度来更新模型的参数。
2024-06-08 09:29:07
6374
2
原创 【Python】【PVE】使用PVE-API对虚拟机进行远程关机
注意:这里的特权分离是指API令牌是否单独授权,如果取消勾选,则API令牌的权限与你选择的用户拥有的权限完全相同,如果勾选,则需要在权限一栏根据所需为令牌添加对应的权限,建议单独授权。令牌ID自己取名字即可。
2024-06-06 10:44:52
1342
原创 【Python】让我们来生成二维码吧
创建二维码图片时的make_image方法中的fill_color参数是设置二维码的颜色,使用的是HEX颜色,如果你不知道如何获取HEX颜色代码,请在线搜索。注意:这个代码中我使用hashlib模块来计算文件名,如果你不需要自动生成文件名可以把generate_filename()函数删掉。安装qrcode包:pip install qrcode[pil]安装Pillow包:pip install Pillow。
2024-06-06 08:18:56
344
原创 【Python】pyinstaller打包时添加详细信息
版本号:filevers,prodvers,FileVersion,ProductVersion。在要被打包的py文件同级目录新建version.txt,写入以下内容。应用名称:InternalName,FileDescription。语言:Translation(以上示例是简体中文)原始文件名称:OriginalFilename。版权信息:LegalCopyright。公司名:CompanyName。在打包时加入以下参数即可。
2024-06-04 08:54:58
620
原创 【机器学习】【深度学习】批量归一化(Batch Normalization)
归一化指的是将数据缩放到一个固定范围内,通常是 [0, 1],而标准化是使得数据符合标准正态分布。归一化的作用是使不同特征具有相同的尺度,从而使模型训练更加稳定和快速,尤其是对于使用梯度下降法的算法。而标准化的作用加快模型收敛速度,提高模型的性能。批量归一化用于加速神经网络的训练并提高模型的稳定性。它在每个批次的数据上进行标准化,通过对每层的输入进行归一化处理,使得网络中间层的激活值保持在一个较小的范围内,有助于加速模型的收敛,同时减少了梯度消失和爆炸的问题。所以批量归一化特别适合深层网络。
2024-05-28 20:51:39
1330
原创 【机器学习】【深度学习】正则化(Regularization)
过拟合意味着模型具有很高的方差(高方差意味着模型对训练数据中的微小变化非常敏感),当你的模型中的参数越多,模型的灵活性就越大(拟合能力强),在模型中调整的东西越多,就越有可能有高方差。例如我们现在要把右图的灰色和绿色点区分开,需要使用神经网络进行拟合函数,若函数有n次项,那么预测函数就会有n个弯曲点,弯曲点越多在某种程度上表示拟合度更大,所以我们需要减少高次项或者其权重(高次项的系数)。正则化有两种方式,第一种是限制模型的灵活性,例如有L1正则化,L2正则化,Dropout和Early Stoping。
2024-05-22 16:02:00
1483
原创 【Python】【PyTorch】超参数对于训练的影响
示例EpochsBatch SizeLearning Rate总结Epochs(训练轮数)Test Accuracy: 增加训练轮数可以提高测试准确率,特别是在Test Accuracy尚未收敛时。训练轮数过多可能导致过拟合,反而降低测试的准确率。当训练轮数合适时,测试准确率会逐渐提高并趋于稳定。Test Loss: 在模型尚未收敛时,增加训练轮数可以降低测试损失。但过多的训练轮数可能导致过拟合,进而测试损失上升。当训练轮数合适时,测试损
2024-05-20 15:17:50
677
原创 【Python】【机器学习】在训练代码中建立混淆矩阵
for t, p in zip(targets, preds)是同时遍历targets(真实标签)和真实标签对应的preds(预测标签),然后在conf_matrix的t.item()和p.item()位置更新混淆矩阵,也就是+=1。outputs.argmax(1)用于获取输出的最大预测值(也就是Top-1),output是二维张量:[batch_size, 类别数];preds是一维张量[batch_size],相当于提取出一个类别。
2024-05-18 10:12:00
774
原创 【Python】【机器学习】混淆矩阵的各项指标计算
False Negative (FN) = **明明是正例,但很不幸,我猜它是反例的数量。精确率(Precision)精确率表示**模型预测为正类的样本中,实际为正类的比例。**它衡量了模型在正类预测中的准确性。召回率(Recall)召回率表示**实际为正类的样本中,被模型正确预测为正类的比例。True Negative (TN) = **是反例,且很幸运我也猜它是反例的数量。True Positive (TP) = **是正例,且很幸运我也猜它是正例的数量。**此处4表示有4张图片是猫,且我也猜它是猫。
2024-05-17 14:08:45
2010
原创 深度学习中的一些概念
欠拟合是指模型没有很好地捕获到数据特性,不能完整地表示数据的全部信息,也就是模型的复杂度低于应有的水平。例如,假设一个数据集实际上服从二阶多项式分布,但我们使用一阶线性模型去拟合它,这样的模型就会出现欠拟合。由于模型过于简单,它在训练集上的预测表现就会很差。
2024-05-12 20:53:00
435
原创 解决Windows11终端中的程序运行结束后不会自动关闭
一开始我以为这是IDE搞的鬼,结果我确保IDE设置正确,调试结束后直接关闭cmd窗口,可是还是会出现这个问题。但是在我的其他电脑或者虚拟机中就没有这个问题。于是我找了找Windows11的Terminal设置,在其深处藏着一个选项。找到Terminal中的配置文件-默认值-高级-关闭行为,把这个选项改为自动,以上问题就解决了,之前这里的选项是“从不自动关闭”。
2024-05-08 17:33:03
3333
原创 【训练与预测】01 - 完成的模型训练套路
当在训练神经网络时,如果使用了Dropout,那么在训练阶段,每次前向传播都会随机关闭网络的一部分神经元(即丢弃),以防止过拟合。然而,在评估或测试过程中,你需要使用全部神经网络,因此dropout应该被关闭,这就需要用到网络对象名.eval()。网络对象名.train()和网络对象名.eval()是用于开启网络的训练模式和测试模式,但是没有写这两段代码时,训练也没有问题,这是怎么回事?因此,虽然在不使用train()和eval()切换模式的情况下,你的神经网络依然可以运行,但是可能无法达到最优表现。
2024-05-07 18:09:35
951
原创 【Python】在Windows Server上部署Flask后端服务器
想要在Windows Server上部署flask应用,当然不能只下一个anaconda配完环境之后直接启动py文件,这样的话后台会有一段警告,意思就是直接使用app.run()开启的服务器只是一个开发服务器,官方提示不要把它放到生产环境,需要使用一个WSGI服务器。
2024-05-05 20:53:27
1669
1
原创 【神经网络】09 - 优化器 torch.optim
优化器是用于更新和管理模型参数以改进模型性能的一种工具。在机器学习和深度学习中,优化器的主要任务是通过调整模型的参数来最小化或最大化特定的目标函数。在许多情况下,这个目标函数是一个损失函数,我们的目标是将其最小化。在 PyTorch 中,torch.optim 是一个包含了各种优化算法的模块,用于帮助开发者在训练神经网络时更方便地更新和管理模型参数。当我们训练神经网络时,我们的目标是找到一组模型参数,可以最小化或最大化某个损失函数或者目标函数。
2024-05-02 22:26:49
1271
原创 【神经网络】08 - 损失函数&反向传播
损失函数:在深度学习模型中,损失函数(Loss Function)是一种衡量模型预测与真实值之间差距的函数。换句话说,它是模型的性能指标。在训练过程中,我们的目标就是找到一组参数,它们可以最小化损失函数。常见的损失函数有均方误差(MSE, Mean Squared Error),交叉熵(Cross Entropy)等。我之前学的人工智能原理中的方差代价函数也属于这里的损失函数。
2024-05-01 17:26:11
3352
原创 【神经网络】07 - Sequential小实战
在 PyTorch 中,Sequential是一个容器(container)类,用于构建神经网络模型。它允许你按顺序(sequential)添加不同的网络层,并将它们串联在一起,形成一个网络模型。这样做可以方便地定义简单的前向传播过程,适用于许多基本的网络结构。Sequential的优点之一是其简洁性和易读性,特别适用于简单的网络结构。然而,对于更复杂的模型,可能需要使用 PyTorch 的其他模型构建方式,如使用nn.Module基类自定义网络结构,以满足更灵活的需求。
2024-04-30 11:15:05
792
原创 【神经网络】06 - PyTorch自带的网络模型
许多框架会把VGG16当作前置框架,使用VGG16提取特征,在VGG16后面加一些网络结构实现功能。
2024-04-29 13:05:29
839
原创 【神经网络】05 - 全连接层
nn.Linear在PyTorch中是用于创建全连接层(全连接神经网络层)的类。全连接层也被称为密集连接层或者全连接神经网络层,是深度学习中常用的一种网络层类型。全连接层的作用是将上一层的所有节点都连接到当前层的每个节点,这样每个节点都与上一层的所有节点相连,形成了完全连接的网络结构。这种结构可以学习到输入数据之间的复杂非线性关系,从而提高模型的表达能力。在PyTorch中,使用nn.Linear可以方便地创建全连接层,指定输入特征的维度和输出特征的维度。
2024-04-27 16:06:17
766
原创 【神经网络】04 - 非线性激活
在PyTorch中,非线性激活函数是用于神经网络中的一种函数,它们的作用是在神经网络的各层之间引入非线性特性,从而增强模型的表达能力。常见的非线性激活函数包括ReLU(Rectified Linear Unit)、Sigmoid、Tanh等。
2024-04-27 16:05:17
653
原创 【神经网络】03 - (最大)池化层
池化层是一种用于减少特征图(feature map)大小的层级。它通过对输入的特征图进行某种形式的聚合操作,例如最大池化或平均池化,从而降低了特征图的空间维度,减少了参数数量和计算负担。总的来说,池化层在卷积神经网络中起到了对特征进行降维和抽象表示的作用,有助于网络有效地学习和提取输入数据中的关键信息。
2024-04-26 08:45:12
1144
原创 【神经网络】02 - 卷积层
卷积层是深度学习神经网络中的一种基本层,用于提取输入数据中的特征。它通过卷积操作对输入数据进行处理,并输出具有更高级别表示的特征图(feature map)。卷积层在图像处理、自然语言处理等领域中都有广泛的应用。卷积分为不同维度,有Conv1d,Conv2d和Conv3d,我们主要学习二维卷积。卷积层通常与其他层结合使用,如激活函数层(如ReLU)、池化层(如最大池化、平均池化)和全连接层,构成深度神经网络的基本架构。
2024-04-25 07:19:10
815
原创 【神经网络】01 - 基本骨架nn.Module
在 PyTorch 中,nn.Module 是一个用于构建神经网络模型的基类。方法用于初始化模型,但这个方法目前为空,因为在这个简单的例子中,我们并没有添加具体的层或参数。在这个方法中,我们对输入进行加一操作,并将结果作为输出返回。,这里的输出结果将是2.0,因为我们将输入1.0加一了,得到了2.0。类,这是PyTorch中定义神经网络模型的基类。接着,我们创建了一个值为1.0的PyTorch张量。首先,我们导入了PyTorch库,并引入了其中的。类中,我们定义了一个。然后,定义了一个名为。
2024-04-24 16:14:25
507
原创 【数据的读取和处理】04 - torchvision中的数据集使用
注意download=True可以自动下载数据集。接下来联动transforms和Tensorboard。
2024-04-23 07:40:56
309
原创 【数据的读取和处理】03 - Transforms
是PyTorch中的一个模块,是一个工具箱,用于进行图像处理和数据增强的操作。它提供了一系列的转换函数,可以方便地对图像进行预处理、增强或者转换,以满足模型训练或推理的需求。这些转换可以通过组合使用来构建一个数据预处理流水线,用于准备训练集或测试集中的图像数据。通过这些转换,可以提高模型的泛化能力、抗扰动能力,并且可以在训练过程中对数据进行增广,以防止过拟合。
2024-04-22 13:19:40
775
Python Flask问答系统Demo项目.zip
2024-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人