日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习 感知机算法_0(Matlab实现)

發布時間:2024/4/18 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习 感知机算法_0(Matlab实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 效果
  • 代碼
    • Main
    • Perceptron
    • Sign

效果

代碼

Main

x=[-1 7 13 9 14 14 11 -3 14 1 15 3 1]; y=[1 1 1 -1 -1 -1]';% size_x=size(x); b=ones(1,size_x(2));%初始權值 Error=0;%允許分類錯誤數量最大值 error=size_x(1);%當前一輪迭代分類錯誤數量 Step=0.1;%迭代步長while(error>Error)[b, error]=Perceptron(b, x, y, size_x(1), Error, Step); end%作圖 plot(x(1:3,1),x(1:3,2),'*'); hold on; plot(x(4:6,1),x(4:6,2),'+'); X=-10:0.5:10; Y=(b(1,1).*X+b(1,3))/(-b(1,2)); plot(X,Y);

Perceptron

function [b, error]=Perceptron(b, x, y, nums_x, Error, Step) %b:感知器當前權值 %x:自變量矩陣 %nums_x:x的規模 %y:目標值矩陣%當y=1, Func(b, x)>=0為分類正確 %當y=-1, Func(b, x)<0為分類正確 %分類正確時, 于是y*Func(b, x)>=0恒成立 %Sum_y*Func(b, x)越大, 分類誤差越小 %于是可定義損失函數:-y*Func(b, x), 并求其最小值%分類錯誤數量 error=0;for i=1:nums_xif(y(i,1)*Sign(b, x(i,:))<0)error=error+1;b=b+Step*(x(i,:).* y(i,1));end end end

Sign

function [y] = Sign(b,x) %接收前向神經元的信號x %信號A轉換為信號y %向后向神經元發送信號y%y=bn*xn+b(n-1)*x(n-1)+b(n-2)*x(n-2)+...+b1*x1+b0*1 %b=[bn, b(n-1),...,b1, b0] %x=[xn, x(n-1),...,x1, 1]%計算 y=2*(sum(b.*x)>=0)-1; end

總結

以上是生活随笔為你收集整理的机器学习 感知机算法_0(Matlab实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。