HK算法原理及MATLAB實現

HK算法原理及MATLAB實現

一、編程原理

在這里插入圖片描述
說明:

1、綠色框圖中,當alpha取為最優權向量時,會使 在這里插入圖片描述
取為最小值。arg的意思是當后面那個函數滿足時,取出它的自變量的值。
2、注意后面那個式子是對b求偏導
在這里插入圖片描述
3、e(t)大于0時,下式為2*e(t) ; e(t)小于0時,下式為0.
所以b要么不更新,要么就是加一個正數,因此bi>0
在這里插入圖片描述

在這里插入圖片描述

二、編程實現

clc;
close all;
clear;load('data.mat');%% 線性樣本
w2_data_nega=-w2_data(:,:);  % 矩陣增廣化
Y=[w1_data;w2_data_nega]; %% 權向量和學習率賦值
b2=ones(200,1)+[zeros(1,100),0.1*ones(1,100)]';
b3=ones(200,1)+[0.1*ones(1,100),zeros(1,100)]';
b=[ones(200,1),b2,b3];   
r=[0.1,0.2,0.3];for i=1:3for j=1:3%% Y_=(Y'*Y)\Y';
a=Y_*b(:,i);
e=Y*a-b(:,i);%%delta=r(j)*(e+abs(e)); 
flag=1;     % flag為循環標志
N=length(b(:,i));
C=0;
n='Linear'; % n用來記錄是否為線性%%
while(flag)zenum_positive=0;zenum_negative=0;nenum=0;penum=0; % zenum_positive大于零的零的個數  zenum_negative小于零的零的個數  nenum復數個數  penum正數個數for k=1:Nif(e(k)<1e-5 && e(k)>0)zenum_positive=zenum_positive+1;elseif (e(k)>-(1e-5) && e(k)<0)zenum_negative=zenum_negative+1;elseif (e(k)<0)nenum=nenum+1;elsepenum=penum+1;end    endendendif((zenum_positive+zenum_negative-N)==0)%%all is 0flag=0;elseif((zenum_positive+penum-N)==0) %%all is 0 or larger than 0flag=0; elseif ((zenum_negative+nenum-N)==0)%%all is 0 or less than 0flag=0;n='Non-Linear!';break;elseC=C+1;a=a+Y_*delta;b(:,i)=b(:,i)+delta;e=Y*a-b(:,i);delta=r(j)*(e+abs(e));endendend
end%% 畫圖x1=(-4:0.1:4);
if abs(a(2))<0.0000001x1=-a(3)/a(1);x2=(-1:0.1:1);x1=ones(length(x2))*x1;
elsex2=(a(1)*x1+a(3))/(-a(2));
end
subplot(3,3,3*(i-1)+j);
hold on;plot(x1,x2,'LineWidth',1);
hold on;plot(w1_data(:,1),w1_data(:,2),'ro','LineWidth',1);
hold on;plot(w2_data(:,1),w2_data(:,2),'b^','LineWidth',1);
title( n,['初始權向量為 b','(',num2str(i),')','  學習率為 ',num2str(r(j))],'color','blue');end
end

三、實驗結果

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258336.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258336.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258336.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件工程的實踐項目的自我目標

對實踐項目完成后學習到的能力的預期 1.要學會java的相關知識&#xff0c;并能利用java做一個項目&#xff0c;能知道做一個項目的基本流程。可以先是一個小項目&#xff0c;之后再根據自身情況進行嘗試。 2.學會團隊協作&#xff0c;之前的數據庫實踐大多是一個人完成的&#…

《數據驅動安全:數據安全分析、可視化和儀表盤》一1.2.4 統計學

本節書摘來異步社區《數據驅動安全&#xff1a;數據安全分析、可視化和儀表盤》一書中的第1章 &#xff0c;第1.2.4節&#xff0c;[美]杰雅克布&#xff08;Jay Jacobs&#xff09;鮑布魯迪斯&#xff08;Bob Rudis&#xff09; 著 薛杰 王占一 張卓 胡開勇 蔣夢飏 趙爽 …

python列反過來_xlwings 教程:使用Python更快速地處理Excel

Excel在當今商業中的使用非常普遍。在Dataquest&#xff0c;出于很多原因&#xff0c;我們通常推薦使用代碼處理數據&#xff0c;并且我們的許多數據科學課程的目標是教授數據分析和數據科學的高效編碼。但是&#xff0c;無論您多么喜歡使用Python&#xff0c;在一天結束時&…

多類線性分類器算法原理及代碼實現 MATLAB

多類線性分類器算法原理及代碼實現 MATLAB 一、算法原理 下面舉例說明為何藍圈部分在case2中是確定的而在case1中不確定&#xff1a; 二、代碼實現 1、HK函數 function [] HK(w1_data,w2_data) %w1_data為第一類數據集 w2_data為第二類數據集 %此函數的作用為用HK算法對輸…

(轉) C#如何使用異步編程

怎么使用異步&#xff0c;就是用委托進行處理&#xff0c;如果委托對象在調用列表中只有一個方法&#xff0c;它就可以異步執行這個方法。委托類有兩個方法&#xff0c;叫做BeginInvoke和EndInvoke&#xff0c;它們是用來異步執行使用。 異步有三種模式 等待模式&#xff0c;在…

javascript 的 ~ 操作符作用

2019獨角獸企業重金招聘Python工程師標準>>> "~" operator in javascript. For anyone else who also didnt know what it does: it converts -1 to 0&#xff0c;可以節省用來比較-1的情況&#xff0c;如 if (~event.origin.indexOf(http://yoursite.com…

駐定相位原理(POSP)以及線性調頻信號的頻譜

最近看論文遇到了駐定相位原理&#xff0c;問老師直接給了我一本書讓我看&#xff0c;看半天只有一段…不是這個方向的&#xff0c;半路出家做畢業設計需要用到這個定理&#xff0c;有錯誤的話請不吝賜教。 一、駐定相位原理 在數字信號處理中&#xff0c;經常需要將一個時域…

vue怎么合并兩個視頻_【軟件分享】視頻分割合并軟件哪款好用呢?怎么剪切合并視頻?...

現在有很多小伙伴都喜歡喜歡自己拍視頻上傳到各大視頻平臺&#xff0c;有時候會遇到關于視頻剪輯方面的難題&#xff0c;比如說&#xff0c;視頻怎么剪切&#xff1f;怎么將兩段小視頻合并成一個呢&#xff1f;這些都是一些比較常常遇到的問題&#xff0c;今天小編就給大家介紹…

怎樣根據字段域查找到其在數據庫中關系與屬性

Infor SyteLine ERP中&#xff0c;很多時候需要做維護&#xff0c;我們需要從打開的window窗口的form中某一個輸入Textbox域或是DropDownList域&#xff0c;去找到它是綁定了數據庫中的哪一張表&#xff0c;哪一個字段的&#xff1f; 其相關的關系或是屬性等。比如下面這個form…

【手勢交互】9. PS Move

索尼研發體感控制技術已有10年&#xff0c;在過去那么多年里。嘗試了3D攝像頭、超聲波和電磁感應等各種技術。最后還是覺得眼下的MOVE所使用的技術最為合適。PS Move是索尼于2010年9月份推出。用來讓PS3主機具備動態感應功能的控制器。他利用動態控制器&#xff08;手柄&#x…

多普勒效應及多普勒頻移的簡單推導

多普勒效應及多普勒頻移的簡單推導 fd≡fR?fT(1)f_d\equiv f_R-f_T \tag{1} fd?≡fR??fT?(1) ??式中&#xff0c;fdf_dfd?表示多普勒頻移&#xff0c;fRf_RfR?表示目標回波的頻率&#xff08;Hz),fTf_TfT?表示發射信號的頻率&#xff08;Hz&#xff09;。 多普勒頻移…

amazons3 檢查連接是否_鋼筋機械連接接頭如何檢查是否合格?抽檢數量、合格率是多少?...

一、鋼筋機械連接介紹1、鋼筋機械連接在連接區段內接頭率的規定(35d)&#xff1a;★接頭宜設置在結構構件中受拉應力較小的部位&#xff0c;當需要在高應力部位設置時&#xff0c;在同一連接區段內Ⅲ接頭的接頭率不應大于25%&#xff0c;Ⅱ接頭率不應大于50%&#xff0c;Ⅰ接頭…

學容器必須懂 bridge 網絡 - 每天5分鐘玩轉 Docker 容器技術(32)

上一節我們討論了 none 和 host 類型的容器網絡&#xff0c;本節學習應用最廣泛也是默認的 bridge 網絡。 Docker 安裝時會創建一個 命名為 docker0 的 linux bridge。如果不指定--network&#xff0c;創建的容器默認都會掛到 docker0 上。 當前 docker0 上沒有任何其他網絡設備…

駐定相位原理(POSP)的簡單應用

在SAR雷達成像中&#xff0c;POSP是相當基礎重要的一個定理&#xff0c;一般在對回波做傅里葉變換時經常用到&#xff0c;一般在論文的開頭就會出現。 ??下面簡單復習一下POSP的步驟&#xff1a; 1&#xff1a;列出傅里葉變換表達式 2&#xff1a;對相位在駐定相位點處泰勒展…

(轉)Unity3DUnity3D在android下調試

轉自&#xff1a;http://blog.csdn.net/zuoyamin/article/details/11827309 一、工具準備 1.JDK——由于android是基于Java平臺開發的&#xff0c;jdk是必須要安裝的。下載地址&#xff1a;http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32…

Windows系統時間同步出錯解決辦法

有時候我們設置本地時間與Internet時間同步時&#xff0c;經常連接服務器time.windows.com超時&#xff0c;導致時間同步失敗&#xff0c;解決辦法如下&#xff1a; 利用快捷鍵"WinR"調出運行框&#xff0c;輸入&#xff1a;w32tm /register按回車&#xff0c;執行完…

vs2019 更新安裝錯誤_本月Windows 10累積更新再出BUG:安裝時跳出錯誤代碼

在本月的補丁星期二活動日中&#xff0c;微軟為所有支持的 Windows 10 系統帶來了新一輪的累積更新。和以往一樣&#xff0c;本次發布的 KB4566782 和 KB4565351 兩個累積更新又出現了新的 BUG。根據用戶反饋&#xff0c;Windows10 Version 2004/1909/1903 功能更新安裝這些累積…

【python】畫一個愛心

python畫愛心 做二級python題目的時候&#xff0c;遇到了一個畫愛心編程題&#xff0c;感覺挺有趣的&#xff0c;把它搬到這里來。 from turtle import * def curvemove():for i in range(200):right(1)forward(1) setup(600,600,400,400) hideturtle() pencolor(black) fill…

上天入海又怎樣?阿里的運動達人紛紛表示不服

6月23日是國際奧林匹克日。奧林匹克精神其實是一個普遍的概念。所有能使人變得更好的原則&#xff0c;都包容它明亮的光環里。2017年1月19日&#xff0c;阿里巴巴和國際奧委會在洛桑共同宣布top合作伙伴計劃&#xff0c;開啟了為期12年的阿里奧運之旅。阿里將給世界帶來“云上的…

VC++中內存對齊

我們經常看到求 sizeof(A) 的值的問題&#xff0c;其中A是一個結構體&#xff0c;類&#xff0c;或者聯合體。 為了優化CPU訪問和優化內存&#xff0c;減少內存碎片&#xff0c;編譯器對內存對齊制定了一些規則。但是&#xff0c;不同的編譯器可能有不同的實現&#xff0c;本文…