1.其实HK算法思想很朴实,就是在最小均方误差准则下求得权矢量。

他相对于感知器算法的优点在于,他适用于线性可分和非线性可分得情况,对于线性可分的情况,给出最优权矢量,对于非线性可分得情况,能够判别出来,以退出迭代过程。

2.在程序编制过程中,我所受的最大困扰是:关于收敛条件的判决。

对于误差矢量:e=x*w-b

若e>0 则继续迭代

若e=0 则停止迭代,得到权矢量

若e〈0 则停止迭代,样本是非线性可分得,

若e有的分量大于0,有的分量小于0 ,则在各分量都变成零,或者停止由负值转变成正值时,停机。

3.在程序编制中的注意点:

1)关于0的判断,由于计算机的精度原因,严格等于零是很不容易的,而且在很多情况下也没有必要,则只要在0的一个可以接受的delta域内就可接受为零

2)关于判断,迭代前后,变量是否发生变化

在判断时,显然也不能直接判断a(i)==a(i+1)

而应该|a(i)-a(i+1)|〈err

4. HK详细代码如下:

unction [w,flag]=HK(data)

Iteration=20;

flag=0;

% [n,p]=size(data);

n=size(data,1);

b=ones(n,1)./10;

c=0.6;

xx=inv(data'*data)*data';

w=xx*b;

e=data*w-b;

t=0;

while (1)

    temp=min(e);

    temp1=max(e);

    if temp>-1e-4 && temp<0

        temp=0;

    end

    if temp>1e-3      

        deltab=e+abs(e);

        b=b+c.*deltab;

        w=w+c.*xx*deltab;

        e=data*w-b;

    else

        if temp>=0 && temp1<1e-4

            break;

        else

            if temp1<0

                flag=1;

                break;

            else

                deltab=e+abs(e);

                b=b+c.*deltab;

                w=w+c.*xx*deltab;

                e=data*w-b;

                t=t+1;

                if t>=Iteration

                    break;

【机器学习】HK算法(LMSE算法) LMS算法改进保证线性可分时均方误差标准能够找到线性可分的超平面的更多相关文章

  1. 机器学习实战(笔记)------------KNN算法

    1.KNN算法 KNN算法即K-临近算法,采用测量不同特征值之间的距离的方法进行分类. 以二维情况举例:         假设一条样本含有两个特征.将这两种特征进行数值化,我们就可以假设这两种特种分别 ...

  2. 用Python开始机器学习(2:决策树分类算法)

    http://blog.csdn.net/lsldd/article/details/41223147 从这一章开始进入正式的算法学习. 首先我们学习经典而有效的分类算法:决策树分类算法. 1.决策树 ...

  3. 算法:Astar寻路算法改进,双向A*寻路算法

    早前写了一篇关于A*算法的文章:<算法:Astar寻路算法改进> 最近在写个js的UI框架,顺便实现了一个js版本的A*算法,与之前不同的是,该A*算法是个双向A*. 双向A*有什么好处呢 ...

  4. opencv3中的机器学习算法之:EM算法

    不同于其它的机器学习模型,EM算法是一种非监督的学习算法,它的输入数据事先不需要进行标注.相反,该算法从给定的样本集中,能计算出高斯混和参数的最大似然估计.也能得到每个样本对应的标注值,类似于kmea ...

  5. Adline网络的LMS算法与梯度下降

    LMS算法,即为最小均方差,求的是误差的平方和最小. 利用梯度下降,所谓的梯度下降,本质上就是利用导数的性质来求极值点的位置,导数在这个的附近,一边是大于零,一边又是小于零的,如此而已... 而这个里 ...

  6. 【机器学习笔记一】协同过滤算法 - ALS

    参考资料 [1]<Spark MLlib 机器学习实践> [2]http://blog.csdn.net/u011239443/article/details/51752904 [3]线性 ...

  7. 机器学习算法总结(五)——聚类算法(K-means,密度聚类,层次聚类)

    本文介绍无监督学习算法,无监督学习是在样本的标签未知的情况下,根据样本的内在规律对样本进行分类,常见的无监督学习就是聚类算法. 在监督学习中我们常根据模型的误差来衡量模型的好坏,通过优化损失函数来改善 ...

  8. 机器学习之Apriori算法和FP-growth算法

    1 关联分析 无监督机器学习方法中的关联分析问题.关联分析可以用于回答"哪些商品经常被同时购买?"之类的问题. 2 Apriori算法   频繁项集即出现次数多的数据集   支持度 ...

  9. LMS算法

    一.感知器算法和LMS算法 感知器和自适应线性元件在历史上几乎是同时提出的,并且两者在对权值的调整的算法非常相似.它们都是基于纠错学习规则的学习算法. 感知器算法存在如下问题:不能推广到一般的前向网络 ...

随机推荐

  1. jquery $(".classc",$(".classp"))的含义

    jquery中有一种选择器的写法为:$(".classc",$(".classp")),注意,是$()中又嵌套了一个$(),这种写法的作用类似于$(" ...

  2. Wpf自动滚动效果

    一.思路 1.使用ScrollView的Scroll.ScrollToVerticalOffset(offset)方法进行滚动 2.ScrollView中放置2个ListView,第一个滚动出边界后, ...

  3. 【leetcode】801. Minimum Swaps To Make Sequences Increasing

    题目如下: We have two integer sequences A and B of the same non-zero length. We are allowed to swap elem ...

  4. dede cms 怎样调用年月日

    一: 首页:([field:pubdate function='strftime("%m-%d",@me)'/])==(5-15)([field:pubdate function= ...

  5. JDK 7升8 maven 编译报错

    在JDK由版本7升级到8时,使用maven编译会报doc错误,原因是JAVA8不支持JAVA7编写的doc,报错信息如下: @param name 未找到 @return 的用法无效 可以使添加配置- ...

  6. Spring MVC 的 multipartResolver 不能同iWebOffice2006 共同使用

    转:http://jamesby.iteye.com/blog/57381 项目使用iWebOffice2006,本来可以正常使用,但是系统有文件上传需求,故定义了一个multipartResolve ...

  7. 51 Nod 1242 矩阵快速幂求斐波那契数列

    #include<bits/stdc++.h> #define mod 1000000009 using namespace std; typedef long long ll; type ...

  8. Linux命令-文本编辑(二)

    Linux命令-文本编辑(二) Linux mtype命令 mtype为mtools工具指令,模拟MS-DOS的type指令,可显示MS-DOS文件的内容. 语法: mtype [-st][文件] 参 ...

  9. Link Script 学习

    最后更新 2019-06-27 概述 当使用 C 或者 C++ 编写代码实现某种功能时,需要将源代码进行编译以及链接.链接是将一系列目标文件(.o)以及归档文件(.a)组合起来,重新定位各个文件数据并 ...

  10. centOS7安装docker遇到 [Errno 14] curl#35 - "TCP connection reset by peer问题解决

    ---------------------------------------------------------------------------------------------------- ...