
机器学习
文章平均质量分 68
分享机器学习相关算法
心️升明月
无小号~~
代码请私信博主交流!!!
展开
-
PyTorch实现基于ResNet18迁移学习的宝可梦数据集分类
一、实现过程1、数据集描述数据集分为5类,分别如下:皮卡丘:234超梦:239杰尼龟:223小火龙:238妙蛙种子:234自取链接:https://pan.baidu.com/s/1bsppVXDRsweVKAxSoLy4sw提取码:9fqo图片文件扩展名有jpg,jepg,png和gif4种类型,并且图片的大小不尽相同,因此需要对所有(训练、验证和测试)的图片做Resize等操作,本文将图像尺寸Resize为224×224大小。2、数据预处理本文采用Dataset框架对数据集进原创 2022-03-17 22:20:47 · 2804 阅读 · 6 评论 -
PyTorch实现基于RNN的正弦波形下一段波形的预测
一、实现过程RNN具体模型请参考这里。基于RNN的正弦波形下一段波形的预测代码如下:import torchimport torch.nn as nnimport numpy as npimport matplotlib.pyplot as pltnum_time_steps = 50input_size = 1hidden_size = 16num_layers = 1output_size = 1# 设计模型class Net(nn.Module): def __i原创 2022-03-14 21:43:40 · 1462 阅读 · 1 评论 -
PyTorch实现基于ResNet18的CIFAR-10数据集的分类
一、ResNet18模型设计ResNet18网络采用了残差模块的跳跃连接思想,缓解了在深度神经网络中增加深度带来的梯度消失问题。残差构建模块封装成类,代码如下:class ResBlock(torch.nn.Module): def __init__(self, ch_in, ch_out, stride=1): super(ResBlock, self).__init__() self.conv1 = torch.nn.Conv2d(ch_in,ch_out,原创 2022-03-13 21:11:40 · 3503 阅读 · 2 评论 -
PyTorch实现计算图像数据集的均值和标准差
一、实现过程使用Pytorch进行预处理时,通常使用torchvision.transforms.Normalize(mean, std)方法进行数据标准化,其中参数mean和std分别表示图像集每个通道的均值和标准差序列。首先,给出mean和std的定义,数学表示如下:假设有一组数据集Xi, i∈{1,2,⋯ ,n}X_i,\,\,i\in\{1,2,\cdots,n\}Xi,i∈{1,2,⋯,n},则这组数据集的均值为:mean=∑i=1nXin(1)mean=\frac{\displayst原创 2022-03-13 14:48:42 · 12191 阅读 · 1 评论 -
PyTorch实现基于LeNet-5的CIFAR-10数据集的分类
一、LeNet-5模型设计关于LeNet-5模型的详细描述请参考这里。本文实现如图1所示的LeNet-5模型。图1 LeNet-5模型示意图模型设计部分代码如下:class LeNet5(torch.nn.Module): def __init__(self): super(LeNet5, self).__init__() self.conv1 = torch.nn.Conv2d(3, 6, kernel_size=5) self.conv2原创 2022-03-11 22:09:48 · 797 阅读 · 0 评论 -
PyTorch循环神经网络的应用
一、实现过程问题:如下图所示,根据英文名字,通过RNN训练,得出该名字属于哪个国家。1、导包导入代码需要的包,代码如下:import torchimport matplotlib.pyplot as pltfrom torch.utils.data import Dataset,DataLoaderfrom torch.nn.utils.rnn import pad_sequence, pack_padded_sequence, pack_sequence, pad_packed_seque原创 2022-03-10 21:08:03 · 1131 阅读 · 0 评论 -
PyTorch之循环神经网络
一、实现过程例子:由输入的字符串“hello”预测输出的字符串为“ohlol”。代码如下:import torchimport matplotlib.pyplot as pltimport osos.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"# parametersnum_class = 4num_layers = 2input_size = 4hidden_size = 8embedding_size = 10batch_size = 1原创 2022-03-10 15:37:35 · 966 阅读 · 0 评论 -
PyTorch实现简单的残差网络
一、实现过程残差网络(Residual Network)的特点是容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题。本文实现如图1所示的两层残差模块用于识别MNIST数据集,其中每一层均是卷积层。图1 残差构建模块残差构建模块封装成类,代码如下:class ResidualBlock(torch.nn.Module): def __init__(self,channels): super(Resi原创 2022-03-09 18:36:37 · 9847 阅读 · 6 评论 -
PyTorch之inception结构
一、实现过程inception模块在GoogLeNet中首次提出并采用,其基本结构如图1,整个inception结构就是由多个这样的inception模块串联起来的。inception结构的主要贡献有两个:一是使用1x1的卷积来进行升降维;二是在多个尺寸上同时进行卷积再聚合。本文利用图1的inception结构实现MNIST数据集的多分类。图1 inception基本结构将inception结构封装成类,减少代码冗余。代码如下:class InceptionA(torch.nn.Module):原创 2022-03-09 16:24:17 · 2218 阅读 · 0 评论 -
PyTorch之卷积神经网络
一、实现过程本文采用3个卷积层、5个ReLu层、3个池化层和3个全连接层对MNIST数据集多分类。其中:3个卷积层分别为(1, 16, kernel_size=5)、(16, 64, kernel_size=5)和(64, 256, kernel_size=3);3池化层均为kernel_size=2×2的;3个全连接层分别为(256, 128)、(128, 64)、(64, 10)。代码如下:# 0、导包import torchfrom torchvision import transforms原创 2022-03-08 18:59:10 · 1124 阅读 · 0 评论 -
PyTorch多分类问题
一、实现过程本文对经典手写数字数据集进行多分类,损失函数采用交叉熵,激活函数采用ReLU,优化器采用带有动量的mini-batchSGD算法。所有代码如下:# 0、导包import torchfrom torchvision import transforms,datasetsfrom torch.utils.data import DataLoaderimport torch.nn.functional as Fimport torch.optim as optim# 1、准备数据ba原创 2022-03-07 19:22:36 · 1311 阅读 · 0 评论 -
PyTorch加载数据集
一、实现过程1、准备数据与PyTorch实现多维度特征输入的逻辑回归的方法不同的是:本文使用DataLoader方法,并继承DataSet抽象类,可实现对数据集进行mini_batch梯度下降优化。代码如下:import torchimport numpy as npfrom torch.utils.data import Dataset,DataLoaderclass DiabetesDataSet(Dataset): def __init__(self, filepath):原创 2022-03-07 13:40:27 · 1317 阅读 · 0 评论 -
PyTorch实现多维度特征输入的逻辑回归
一、实现过程1、准备数据本文数据采取文献[1]给出的数据集,该数据集前8列为特征,最后1列为标签(0/1)。本模型使用pandas处理该数据集,需要注意的是,原始数据集没有特征名称,需要自己在第一行添加上去,否则,pandas会把第一行的数据当成特征名称处理,从而影响最后的分类效果。代码如下:# 1、准备数据import pandas as pdxy = pd.read_csv('G:/datasets/diabetes/diabetes.csv') # 文件路径x_data = torch.原创 2022-03-06 18:53:40 · 1395 阅读 · 0 评论 -
PyTorch实现简单的逻辑回归
一、实现代码和https://blog.youkuaiyun.com/weixin_43821559/article/details/123298468类似,代码如下:import torchimport matplotlib.pyplot as pltimport numpy as npimport osos.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"# 1、准备数据x_data = torch.Tensor([[1.0],[2.0],[3.0]])y_d原创 2022-03-05 19:26:49 · 646 阅读 · 0 评论 -
PyTorch实现简单的线性回归
一、实现步骤1、准备数据x_data = torch.tensor([[1.0],[2.0],[3.0]])y_data = torch.tensor([[2.0],[4.0],[6.0]])2、设计模型class LinearModel(torch.nn.Module): def __init__(self): super(LinearModel,self).__init__() self.linear = torch.nn.Linear(1,1)原创 2022-03-05 18:01:27 · 1193 阅读 · 0 评论 -
PyTorch机器学习之反向传播
代码如题:意思是利用这个二次模型来预测数据,减小损失函数(MSE)的值。代码如下:import torchimport matplotlib.pyplot as pltimport osos.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"# 数据集x_data = [1.0,2.0,3.0]y_data = [2.0,4.0,6.0]# 权重参数初始值均为1w = torch.tensor([1.0,1.0,1.0])w.requires_gr原创 2022-03-05 16:07:03 · 3155 阅读 · 2 评论 -
关联规则分析
文章目录一、经典案例二、相关概念由k个项构成的集合X=>Y含义事务仅包含其涉及到的项目,而不包含项目的具体信息支持度 (support)置信度 (confidence)提升度 (lift)三、实验分析1、自制数据集2、电影数据集题材关联规则分析一、经典案例在美国,一些年轻的父亲下班后经常要到超市去买婴儿尿布,超市也因此发现了一个规律,在购买婴儿尿布的年轻父亲们中,有30%~40%的人同时要买一些啤酒。超市随后调整了货架的摆放,把尿布和啤酒放在一起,明显增加了销售额。如图1所示。若两个或多个变量原创 2022-02-19 16:46:43 · 4176 阅读 · 0 评论 -
基于支持向量机的实验分析
文章目录一、支持向量机1、支持向量机的效果2、软间隔二、非线性支持向量机三、核函数四、参考文献一、支持向量机1、支持向量机的效果选择鸢尾花数据集的其中两个特征,并且只对“SETOSA”和“VERSICOLOR”这两类进行SVM分类,代码如下:from sklearn.svm import SVCfrom sklearn import datasetsiris = datasets.load_iris()X = iris['data'][:,(2,3)]y = iris['target']原创 2022-02-14 20:46:47 · 2694 阅读 · 0 评论 -
支持向量机
文章目录一、Support Vector Machine二、距离的计算三、数据标签定义四、优化的目标五、目标函数六、拉格朗日乘子法七、SVM求解八、soft-margin九、低维不可分问题十、参考文献一、Support Vector Machine要解决的问题:什么样的决策边界才是最好的呢?特征数据本身如果就很难分,怎么办呢?计算复杂度怎么样?能实际应用吗?目标:基于上述问题对SVM进行推导决策边界:选出来离边界上的点最远的决策面二、距离的计算假设在决策平面LLL上有两点x′x'x′和x原创 2022-02-14 12:45:28 · 835 阅读 · 0 评论 -
决策树与集成算法
文章目录一、决策树1、树模型2、树的组成3、决策树的训练与测试4、如何切分特征(选择节点)5、经典衡量标准——熵6、改进衡量标准(1)ID3(2)C4.5(3)CART7、剪枝策略(1)预剪枝(2)后剪枝二、集成算法1、Ensemble learning2、Bagging模型3、Boosting模型4、Stacking模型三、参考文献一、决策树1、树模型决策树:从根节点开始一步步走到叶子节点(决策)所有的数据最终都会落到叶子节点,既可以做分类也可以做回归2、树的组成根节点:第一个选择点非原创 2022-02-12 13:51:32 · 980 阅读 · 0 评论 -
基于KMeans算法的图像分割例子
文章目录一、理论基础1、KMeans算法2、图像分割二、实验过程1、图片2、实验步骤3、Python代码(1)导包(2)读取图像数据(3)处理图像数据(4)KMeans聚类(5)可视化展示(6)完整代码三、参考文献一、理论基础1、KMeans算法请参考这里。2、图像分割图像分割(Image segmentation)技术是计算机视觉领域的个重要的研究方向,是图像语义理解的重要一环。图像分割是指将图像分成若干具有相似性质的区域的过程,从数学角度来看,图像分割是将图像划分成互不相交的区域的过程。二、原创 2022-02-10 18:50:43 · 6770 阅读 · 0 评论 -
K-Means算法和DBSCAN算法
文章目录一、聚类二、K-Means算法1、基本概念2、工作流程3、优缺点二、DBSCAN算法1、基本概念2、工作流程3、参数选择4、优缺点三、可视化展示1、K-Means算法2、DBSCAN算法四、参考文献一、聚类聚类是根据在数据中发现的描述对象及其关系的信息,将数据对象分簇。其目的是使簇内的对象相互之间是相似的(相关的),而不同簇中的对象是不同的(不相关的)。簇内相似性越大,簇间差距越大,说明聚类效果越好。聚类是一种无监督学习的方法,是许多领域中常用的机器学习技术。其难点在于如何评估和调参。二、K原创 2022-02-09 18:09:14 · 3865 阅读 · 1 评论 -
线性回归和逻辑回归
文章目录一、线性回归1、例子2、数学模型3、误差4、评估方法5、梯度下降5.1 批量梯度下降5.2 随机梯度下降5.3 小批量梯度下降二、逻辑回归1、Sigmoid函数2、求导过程三、参考文献一、线性回归1、例子假设有两个特征——工资和年龄,目标是预测银行会贷款给我多少钱(标签),工资和年龄都会影响最终银行贷款的结果那么它们各自有多大的影响呢?(参数)2、数学模型假设θ1\theta_1θ1是年龄的参数,θ2\theta_2θ2是工资的参数,拟合的平面方程为:hθ(x)=θ0+θ1x1+θ2x原创 2022-02-07 21:16:59 · 815 阅读 · 0 评论 -
有导师学习神经网络的回归拟合——基于近红外光谱的汽油辛烷值预测
一、理论基础1、BP神经网络概述(1)BP神经网络的结构BP神经网络由Rumelhard和McClelland于1986年提出,从结构上讲,它是一种典型的多层前向型神经网络,具有一个输入层、数个隐含层(可以是一层,也可以是多层)和一个输出层。层与层之间采用全连接的方式,同一层的神经元之间不存在相互连接。理论上已经证明,具有一个隐含层的三层网络可以逼近任意非线性函数。隐含层中的神经元多采用S型传递函数,输出层的神经元多采用线性传递函数。图1所示为一个典型的BP神经网络结构,该网络具有一个隐含层,输入层原创 2020-12-30 22:40:52 · 3489 阅读 · 3 评论