基于ANN以使用有监督和无监督的学习将其分为不同的类别或识别模式(Matlab代码实现)

       目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码


💥1 概述

人工神经网络(ANN)在包括技术或统计在内的每一个分支中都变得越来越有用,以分析一些社会或非社会现象。一些技术专家表示,未来几年(从现在到2050年),人工智能将在医学、教育、工业等领域改变整个世界。这就是为什么开始学习IA是如何工作的重要原因,从神经网络开始,并了解如何实现简单和基本的知识,对我们大有裨益。

在这个存储库中,您可以找到一些ANN的实现,以使用有监督和无监督的学习(如Adaline、Hopfield、Multilayer和Simple Perceptron等)将其分成不同的类或识别模式​。

📚2 运行结果

主函数部分代码:

%Comenzamos limpiando la pantalla y todas las variables

clearvars

clc

%Pedimos los valores dados por el usuario para realizar el aprendizaje de

%una RNA Adaline de un codificador de binario a decimal de 3 bits sin bias

it_max = input ('Ingresa el numero mimo de iteraciones: ');

e_it = input ('Ingresa el valor al que deseas llegar la sel del error: ');

alpha = input ('Ingresa el valor de alfa: ');

%Asignamos valores aleatorios a la matriz de pesos W con la funci髇 rand

W = rand (1, 3);

W1 = zeros (1, 9);

W2 = zeros (1, 9);

W3 = zeros (1, 9);

fprintf ('\n\nLos valores iniciales de la matriz de pesos son: ')

disp (W);

errores = 0;

Pesos = figure('Name','Red Adaline - Matriz de Pesos','NumberTitle','off');

Error = figure('Name','Red Adaline - Sel del error','NumberTitle','off');

rango = 0:8;

W1 (1) = W (1);

W2 (1) = W (2);

W3 (1) = W (3);

Error_It = 0;

Error_Global = zeros (1, 9);

for j = 1:it_max

    %k serun 0 cada iteraci para convertir a binario

    k = zeros (1, 1);

    fprintf ('\n\n\nIteraci nero %d\n', j)

    %Comenzamos a realizar la propagaci髇 hacia adelante de todos los datos

    for i = 1:8

        

        %Convertimos a k a un nero binario de 3 bits

        p = dec2bin (k, 3);

        %Transponemos el vector, para que sea un vector columna

        p = p';

        %Conertimos los elementos a numero para realizar la multiplicaci​

        p = str2num (p);

        

        Error_Global (i) = Error_It;

        %Realizamos la multiplicacion de las matrices

        a = purelin (W * p);

        fprintf ('a = %.4f\n', a)

        %Obtenemos el error para este dato

        errores = (k - a);

        fprintf ('error = %.4f\n\n', errores)

        %Actualizamos el valor de la matriz de pesos

        W = W + ((2 * alpha * errores) * p');

        k = k + 1;

        

        %Actutalizamos los valores de los pesos

        W1 (i + 1) = W (1);

        W2 (i + 1) = W (2);

        W3 (i + 1) = W (3);

        

        %Actualizamos el valor del error

        Error_It = Error_It + ((1/8) * errores);

    end

🎉3 参考文献

[1]夏瑜潞.人工神经网络的发展综述[J].电脑知识与技术,2019,15(20):227-229.DOI:10.14004/j.cnki.ckt.2019.2271.

👨‍💻4 Matlab代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
神经网络是一种模拟大脑中神经元之间相互连接工作方式的人工智能技术。它通过学习输入与输出之间的关系来实现分类、预测等任务。 对于mushroom数据集的解决方案,我们可以使用matlab实现。下面是一个使用神经网络的matlab代码示例: ```matlab % 加载数据 load('mushroom_dataset.mat'); % 数据预处理 inputs = mushroom_dataset(:, 2:end)'; targets = mushroom_dataset(:, 1)'; % 设置神经网络参数 hiddenLayerSize = 10; net = patternnet(hiddenLayerSize); net.divideParam.trainRatio = 70/100; net.divideParam.valRatio = 15/100; net.divideParam.testRatio = 15/100; % 训练神经网络 [net, tr] = train(net, inputs, targets); % 对测试集进行预测 outputs = net(inputs(:, tr.testInd)); predictedLabels = round(outputs); % 计算准确率 accuracy = sum(predictedLabels == targets(:, tr.testInd)) / numel(targets(:, tr.testInd)); % 打印准确率 fprintf('准确率:%.2f\n', accuracy * 100); ``` 在代码中,首先加载mushroom数据集。然后对数据进行预处理,将特征值作为输入,将类别值作为目标输出。接下来,设置神经网络的参数,包括隐藏层的大小和数据集的分割比例。然后,通过调用`train`函数训练神经网络。训练完成后,使用测试集进行预测,并计算准确率。最后,将准确率打印出来。 需要注意的是,代码中的mushroom_dataset.mat文件需要提前准备好,其中包含了mushroom数据集的特征和类别信息。 通过以上的matlab代码示例,我们可以实现对mushroom数据集的分类任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值