最小均方算法二分类(基于双月数据集)
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、运行结果
最小均方算法二分类(基于双月数据集)相关推荐
- 神经网络与机器学习 笔记—LMS(最小均方算法)和学习率退火
神经网络与机器学习 笔记-LMS(最小均方算法)和学习率退火 LMS算法和Rosenblatt感知器算法非常想,唯独就是去掉了神经元的压制函数,Rosenblatt用的Sgn压制函数,LMS不需要压制 ...
- 最小均方算法(LMS)
一.LMS算法 全称Least mean square 算法.中文是最小均方算法. 感知器和自适应线性元件在历史上几乎是同时提出的,并且两者在对权值的调整的算法非常相似.它们都是基于纠错学习规则 ...
- python 最小值算法_机器学习:Python实现最小均方算法(lms)
lms算法跟Rosenblatt感知器相比,主要区别就是权值修正方法不一样.lms采用的是批量修正算法,Rosenblatt感知器使用的 是单样本修正算法.两种算法都是单层感知器,也只适用于线性可分的 ...
- 基于双月数据集单层感知机_python
前言 一.单层感知机 二.双月数据集 三.程序 1.引入库 2.主函数 总结 完整程序 前言 本文主要针对双月数据集实现二分类问题. 一.单层感知机 单层感知机目标是将被感知数据集划分为两类的分离超平 ...
- 【小白学习keras教程】二、基于CIFAR-10数据集训练简单的MLP分类模型
@Author:Runsen 分类任务的MLP 当目标(y)是离散的(分类的) 对于损失函数,使用交叉熵:对于评估指标,通常使用accuracy 数据集描述 CIFAR-10数据集包含10个类中的60 ...
- lms算法的verilog实现_最小均方算法(LMS Algorithm)理论及DSP实现
LMS算法可认为是机器学习里面最基本也比较有用的算法,神经网络中对参数的学习使用的就是LMS的思想,在通信信号处理领域LMS也非常常见,比如自适应滤波器. 本文主要对LMS(Least Mean Sq ...
- 最小均方算法(LMS Algorithm)理论及DSP实现
LMS算法可认为是机器学习里面最基本也比较有用的算法,神经网络中对参数的学习使用的就是LMS的思想,在通信信号处理领域LMS也非常常见,比如自适应滤波器. 本文主要对LMS(Least Mean Sq ...
- LMS Algorithm 最小均方算法
承接上一篇博文中的线性回归中的的cost function.我们想要找出能使得 J(θ)最小的θ(也叫weights). 其中J(θ)如下所示: 为了做到使其值最小,让我们使用一个search alg ...
- Python实现支持向量机(基于双月数据集)
1.生成数据集 class moon_data_class(object):def __init__(self,N,d,r,w):self.N=Nself.w=wself.d=dself.r=rdef ...
最新文章
- .Net中如何操作IIS(源代码)
- NTU课程笔记 :CV6422(4) sampling process
- 制造业如何将工人师傅的隐性技能转化为显性知识?
- python flask快速入门与进阶 百度云_Python Flask快速入门与进阶
- leetcode69. x 的平方根(二分法)
- 工业大数据可视化面临的难点有哪些
- 星尘小组第六周学习笔记—如何在各类控件中输入/输出数据
- 关于gotoxy函数
- vi设计清单_最终产品设计组合清单
- 汽车can总线协议c语言,CAN总线自定义协议使用说明.pdf
- selenium3填坑
- 本田智能驾驶功能介绍-TSR/CTM/MVC360
- android吉他谱组件,Paranoid Android drum吉他谱
- Gallary(中)
- BPM- Eteams体验报告
- 新科技革命的主要特点
- linux 下 QT 讯飞语音合成
- 武海滨:沪江如何搭建优秀的在线教育平台
- 计蒜客习题:帕吉的肉钩
- 单片机,DSP,ARM,FPGA的特点与区别