算法部分:

数据使用:双月数据生成及其常见算法(一)_防空洞的仓鼠的博客-CSDN博客  文章中的数据

(一)最小二乘:

理论部分:

通过矩阵求解方式,来获取最优参数。具体求解B则为我们所需要的最佳解。X为对应的数据,Y是对应的输出。

代码实现:

其中trainData是对应的数据数据,target则为对应标签。

#最小二乘算法def MIN2X(self, trainData,target):self.w = np.array((trainData.T*trainData).I*trainData.T*target[:,2:])print("MIN2X更新后的权重为:{}".format(self.w))

(二)ML:最大似然估计

理论部分:

最大似然估计是概率论中常常涉及到的一种统计方法。最大似然估计会寻找关于θ的最可能的值,即在所有可能的θ取值中,寻找一个值使这个采样的“可能性”最大化。

现在,我们的目标就是最大似然函数:

最大化对数似然函数,实际上就是最小化平方和误差函数,以此找到最大似然解。

根据公式推导:最优化解的形式为:

W(ML)  = Rxx.I(N)*Rdx(N)

其中Rxx为自相关矩阵,Rdx则为互相关矩阵。

Rxx(N) = x*x.T            Rdx(N) = x*d

通过带入X以及对应的响应d,则能够得到该部分数据的ML最优参数解。

代码部分:

#ML算法def ML(self, TrainData, target):Rxx = TrainData.T * TrainDataRdx = TrainData.T * target[:, 2:]self.w = np.array(Rxx.I*Rdx)print("ML更新后的权重为:{}".format(self.w))

(三)MAP:最大后验估计

理论部分:最大似然估计不同的是,最大后验估计寻求的是能使后验概率最大的值。通常是:通过参数的先验分布结合样本信息得到参数的后验分布。

本质上不同于ML估计,MAP估计是有偏估计,ML是无偏估计。

代码部分:

  #MAP算法def MAP(self,TrainData,target):Rxx = TrainData.T*TrainDataRdx = TrainData.T*target[:,2:]self.w = np.array((Rxx+self.lamba*np.eye(len(TrainData.T))).I*Rdx)print("MAP更新后的权重为:{}".format(self.w))

(四)SLP:单层感知机

理论部分:通过迭代思想,来对参数的优化,使得求解出一组误差较小的最优解。

代码部分:

      def SLP(self,trainData,target):ERROR = []allNumbel = len(trainData)for i in range(self.epoch):errorNumbel = 0for x, y in zip(trainData, target):if y[2] != sign(np.dot(self.w.T, x)):errorNumbel = errorNumbel + 1self.w = self.w + self.lr * sign(y[2] - np.dot(self.w.T, x))*xERROR.append(errorNumbel/allNumbel)print("LMS更新后的权重为:{}".format(self.w))return ERROR

(五)LMS:

理论部分:通过不断迭代,寻找一组权值向量,使得预测和期望之间的误差最小化。进而不断地优化参数。

E(w∗)≤E(∀w)

一般方法是不断迭代使 E(w(i))<E(w(i−1)) ,如此往复直到代价函数足够小为止。

代码部分:

 # 最小二乘算法def LMS(self, trainData, target):ERROR = []allNumbel = len(trainData)for i in range(self.epoch):errorNumbel = 0for x,y in zip(trainData,target):x = np.squeeze(x.tolist())y = np.squeeze(y.tolist())if y[2] != sign(np.dot(self.w.T, x)):errorNumbel = errorNumbel + 1err = y[2] - x.T * self.wself.w = self.w + self.lr * x * errERROR.append(errorNumbel/allNumbel)print("LMS更新后的权重为:{}".format(self.w))return ERROR

结果:

以上为仅讨论线型可分情况下的类型,分类和决策平面,以及完成代码放以下链接

双月数据及其分类算法.zip-机器学习文档类资源-CSDN下载

双月数据生成及其常见算法(二)相关推荐

  1. 双月数据生成及其常见算法(一)

    双月数据部分: 数据描述:上下两个半圆.可以通过调整参数进行半圆弧位置的变化. 定义基础参数:包括两个圆之间的半径以及上下两个圆之间的位置偏差XPosition.YPosition. NumbleCo ...

  2. 数据产品必备技术知识:机器学习及常见算法,看这一篇就够了

    大家都知道,产品经理需要懂技术,很多面试官都偏好有技术背景的同学,毕竟产品经理经常要和开发同学相爱相杀.当然也不是一定要求能够精通,但是至少不要让这块成为沟通的障碍,懂点技术,实际工作中也能少被开发同 ...

  3. 推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF/TDM/Airbnb Embedding/Item2vec等)、召回路径简介、多路召回融合]

    搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排).系统架构.常见问题.算法项目实战总结.技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排 ...

  4. 【机器学习】<刘建平Pinard老师博客学习记录>机器学习算法的随机数据生成

    目录 一.Numpy生成随机数: 二.Scikit-learn随机数据生成API介绍: 三.Scikit-learn随机数据生成实例: 1.回归模型随机数据: 2.分类模型随机数据: 3.聚类模型随机 ...

  5. 大数据量的存储分表常见算法

    当一个应用的数据量大的时候,我们用单表和单库来存储会严重影响操作速度,如mysql的myisam存储,我们经过测试,200w以下 的时 候,mysql的访问速度都很快,但是如果超过200w以上的数据, ...

  6. 数据科学的原理与技巧 二、数据生成

    二.数据生成 原文:DS-100/textbook/notebooks/ch02 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 数据科学很难成为没有数据的科学. 因此重要的是, ...

  7. STL::算法::常见算法(二)

    STL::算法::常见算法 remove_copy/remove 及其泛化版 remove_copy_if/remove_if 这两组函数提供的实现删除序列中的相关元素的思路,对我们实现自己的算法是有 ...

  8. 用二维码制作软件批量生成数据不定固定尺寸的二维码

    二维码的尺寸大小跟它包含的数据多少相关,具体尺寸可以在条码打印软件里设置.但是如果需要连接数据库批量生成二维码,而且二维码的数据时长短参差不齐的时候,二维码大小也会参差不齐.如果需要将数据不同的二维码 ...

  9. 数据建模java_数据建模及常见分类算法

    数据建模及常见分类算法 数据建模指的是对现实世界各类数据的抽象组织,建立一个适合的模型对数据进行处理.建模流程解读 建模数据的抽取,清洗和加工以及建模算法的训练和优化会涉及大量的计算机语言和技术.比如 ...

最新文章

  1. 前沿技术探秘:知识图谱构建流程及方法
  2. 请求一个action,将图片的二进制字节字符串在视图页面以图片形式输出
  3. VS2013编译Duilib界面库,“找不到Riched20.lib”的问题
  4. vue中的config配置
  5. 5年没有工资收入,他如何支撑世界上最大的免费编程社区?
  6. vue项目中运用webpack动态配置打包多种环境域名
  7. AF_UNIX和AF_INET
  8. 斗地主(矩阵快速幂)
  9. IntelliJ IDEA:使用Google Guava生成equals,hashCode和toString
  10. 如何使用repo sync
  11. iOS: 环信的推送
  12. tomcat安全认证
  13. 写程序实现wireshark的抓包功能
  14. Java 8 Iterable.forEach()与foreach循环
  15. 电路实验一阶电路误差分析_逆变器电路原理分析
  16. 一些关于java网站开发的相关 文档/工具
  17. Java常用类和方法重点总结
  18. VHDL——4选1数据选择器
  19. matlab pv图,Matlab中imagesc
  20. Python中的切片(Slice)操作详解

热门文章

  1. python 兼职多少钱一小时_无印良品兼职一小时多少钱?看完后就清楚了!
  2. 提升目标检测模型性能的tricks
  3. 玩客云:更好的迅雷从“共享计算”开始
  4. 手机QQ浏览器的HTML管理器,手机qq浏览器中文件管理器有哪些功能
  5. Redis学习之缓存数据类型
  6. python微信群发itchat
  7. 已解决:Connection timed out: connect. If you are behind an HTTP proxy, please configure the proxy
  8. 北京精雕现状_6秒精密加工,日本走下神坛,北京精雕也做了一个!
  9. 第二届“中国制造(深圳)高峰论坛”举行
  10. 【转】iOS右滑返回手势全解和最佳实施方案