1、生成数据集

import numpy as np
import matplotlib.pyplot as pltclass moon_data_class(object):def __init__(self,N,d,r,w):self.N=Nself.w=wself.d=dself.r=rdef sgn(self,x):if(x>0):return 1;else:return -1;def sig(self,x):return 1.0/(1+np.exp(x))def dbmoon(self):N1 = 10*self.Nr = self.rw2 = self.w/2d = self.ddone = Truedata = np.empty(0)while done:#generate Rectangular datatmp_x = 2*(r+w2)*(np.random.random([N1, 1])-0.5)tmp_y = (r+w2)*np.random.random([N1, 1])tmp = np.concatenate((tmp_x, tmp_y), axis=1)tmp_ds = np.sqrt(tmp_x*tmp_x + tmp_y*tmp_y)#generate double moon data ---upperidx = np.logical_and(tmp_ds > (r-w2), tmp_ds < (r+w2))idx = (idx.nonzero())[0]if data.shape[0] == 0:data = tmp.take(idx, axis=0)else:data = np.concatenate((data, tmp.take(idx, axis=0)), axis=0)if data.shape[0] >= N:done = False#print (data)db_moon = data[0:N, :]#print (db_moon)#generate double moon data ----downdata_t = np.empty([N, 2])data_t[:, 0] = data[0:N, 0] + rdata_t[:, 1] = -data[0:N, 1] - ddb_moon = np.concatenate((db_moon, data_t), axis=0)return db_moonN = 100
d = 5
r = 10
width = 6
data_source = moon_data_class(N, d, r, width)
data = data_source.dbmoon()

2、迭代训练

a = 0.0001
num_MSE = []
num_step = []x0 = [1 for x in range(1,201)]
x =  np.array([np.reshape(x0, len(x0)), np.reshape(data[0:2*N, 0], len(data)), np.reshape(data[0:2*N, 1], len(data))]).transpose()
w = np.array([1, 0, 0])d_pre = [1 for y in range(1, 101)]
d_pos = [-1 for y in range(1, 101)]
d=d_pre+d_posfor ii in range(50):i=0sum = 0for x_n in x:err = d[i] - (x_n.T*w)w = w + a*x_n*erri = i + 1

3、打印结果

x = np.array(range(-15, 25))
y = -x*w[1]/w[2]-w[0]/w[2]plt.plot(x, y, 'g--')plt.plot(data[0:N, 0], data[0:N, 1], 'r*', data[N:2*N, 0], data[N:2*N, 1], 'b*')
plt.show()

4、运行结果

最小均方算法二分类(基于双月数据集)相关推荐

  1. 神经网络与机器学习 笔记—LMS(最小均方算法)和学习率退火

    神经网络与机器学习 笔记-LMS(最小均方算法)和学习率退火 LMS算法和Rosenblatt感知器算法非常想,唯独就是去掉了神经元的压制函数,Rosenblatt用的Sgn压制函数,LMS不需要压制 ...

  2. 最小均方算法(LMS)

     一.LMS算法 全称Least mean square 算法.中文是最小均方算法. 感知器和自适应线性元件在历史上几乎是同时提出的,并且两者在对权值的调整的算法非常相似.它们都是基于纠错学习规则 ...

  3. python 最小值算法_机器学习:Python实现最小均方算法(lms)

    lms算法跟Rosenblatt感知器相比,主要区别就是权值修正方法不一样.lms采用的是批量修正算法,Rosenblatt感知器使用的 是单样本修正算法.两种算法都是单层感知器,也只适用于线性可分的 ...

  4. 基于双月数据集单层感知机_python

    前言 一.单层感知机 二.双月数据集 三.程序 1.引入库 2.主函数 总结 完整程序 前言 本文主要针对双月数据集实现二分类问题. 一.单层感知机 单层感知机目标是将被感知数据集划分为两类的分离超平 ...

  5. 【小白学习keras教程】二、基于CIFAR-10数据集训练简单的MLP分类模型

    @Author:Runsen 分类任务的MLP 当目标(y)是离散的(分类的) 对于损失函数,使用交叉熵:对于评估指标,通常使用accuracy 数据集描述 CIFAR-10数据集包含10个类中的60 ...

  6. lms算法的verilog实现_最小均方算法(LMS Algorithm)理论及DSP实现

    LMS算法可认为是机器学习里面最基本也比较有用的算法,神经网络中对参数的学习使用的就是LMS的思想,在通信信号处理领域LMS也非常常见,比如自适应滤波器. 本文主要对LMS(Least Mean Sq ...

  7. 最小均方算法(LMS Algorithm)理论及DSP实现

    LMS算法可认为是机器学习里面最基本也比较有用的算法,神经网络中对参数的学习使用的就是LMS的思想,在通信信号处理领域LMS也非常常见,比如自适应滤波器. 本文主要对LMS(Least Mean Sq ...

  8. LMS Algorithm 最小均方算法

    承接上一篇博文中的线性回归中的的cost function.我们想要找出能使得 J(θ)最小的θ(也叫weights). 其中J(θ)如下所示: 为了做到使其值最小,让我们使用一个search alg ...

  9. Python实现支持向量机(基于双月数据集)

    1.生成数据集 class moon_data_class(object):def __init__(self,N,d,r,w):self.N=Nself.w=wself.d=dself.r=rdef ...

最新文章

  1. .Net中如何操作IIS(源代码)
  2. NTU课程笔记 :CV6422(4) sampling process
  3. 制造业如何将工人师傅的隐性技能转化为显性知识?
  4. python flask快速入门与进阶 百度云_Python Flask快速入门与进阶
  5. leetcode69. x 的平方根(二分法)
  6. 工业大数据可视化面临的难点有哪些
  7. 星尘小组第六周学习笔记—如何在各类控件中输入/输出数据
  8. 关于gotoxy函数
  9. vi设计清单_最终产品设计组合清单
  10. 汽车can总线协议c语言,CAN总线自定义协议使用说明.pdf
  11. selenium3填坑
  12. 本田智能驾驶功能介绍-TSR/CTM/MVC360
  13. android吉他谱组件,Paranoid Android drum吉他谱
  14. Gallary(中)
  15. BPM- Eteams体验报告
  16. 新科技革命的主要特点
  17. linux 下 QT 讯飞语音合成
  18. 武海滨:沪江如何搭建优秀的在线教育平台
  19. 计蒜客习题:帕吉的肉钩
  20. 单片机,DSP,ARM,FPGA的特点与区别

热门文章

  1. 百年工业,名词满天飞
  2. Java将图片压缩为原来的一半
  3. Windows Kits(Windows 工具包)
  4. android 拍照申请权限,Android拍照6.0以上动态获取权限
  5. [BZFZ友谊赛]火山喷发
  6. 国内的边缘计算组织和产品调研
  7. Appwidget控件的使用
  8. Sticky 黏性定位 兼容性css3
  9. 怎样快速制作GIF动图?教你一分钟在线制作GIF
  10. fore-each操作数组