tnblog
首页
视频
资源
登录

python 方差代价函数(学习笔记)

3179人阅读 2023/4/4 15:36 总访问:3467431 评论:0 收藏:0 手机
分类: AI

python 方差代价函数(学习笔记)


在Rosenblatt感知器中计算有个问题?
如果只有两个豆豆的情况下,且二者都相差0.15一个是正数一个是负数,所以体现的误差值为0。

绝对差


通过把值进行绝对值的处理产生绝对差,使他们都相差0.15.


但是绝对值在绝对差处理上都不是很方便。所以人们提出了平方误差。

平方误差


通过将误差的值进行平方处理,就是平方误差。
平方误差越小说明,得出的结果就越接近真相。


而我们知道是参数w决定了预测函数的样子,如果把误差与w之间的关系画出来就是一个一元二次函数。


这里通过单个豆豆来举例,公式就是e=a*w2+b*w +c(a是0.16、b是-0.544、c是0.4624)。
如果是一组豆豆也是一样的,可以通过把所有的豆豆的平方误差相加然后取平均数,这一过程也叫均方误差。
简化后如下图所示:


得到公式后,我们只需要让机器计算得到一元二次方程的顶点,就是最好的误差。


所以我们可以通过顶点坐标公式来求,最后简化出来如下图所示。

正规方程


一次性求出误差最小处的w取值。


那么直接这样计算就万事大吉了吗?在少量数据的时候确实是这样,但数据量大举例1000个维度就要10亿次。
如何解决呢?可以查看下一篇的梯度下降。

编程实践


首先我们初始化豆豆的思考。

  1. # 导入散点数据库
  2. import dataset
  3. # matplotlib库
  4. import matplotlib.pyplot as plt
  5. # 导入numpy库
  6. import numpy as np
  7. # 创建一些散点数据
  8. xs,ys = dataset.get_beans(100)
  9. # 配置图像
  10. plt.title("Chi Dou Dou",fontsize=12)# 设置图像名称
  11. plt.xlabel("Size")# 设置横坐标名称
  12. plt.ylabel("Toxicity")# 设置纵坐标名称
  13. # 把值负到图上
  14. plt.scatter(xs,ys)
  15. # 初始化设置w为0.1权重
  16. w = 0.1
  17. # 得到预测值
  18. y_pre = w*xs
  19. # 画图并展示
  20. plt.plot(xs,y_pre)
  21. plt.show()


然后我们更具均方差求出一元二次方程的均方差与权重的图。

  1. # 获取均方差
  2. es = (ys-y_pre)**2
  3. # 算出最优误差顶点,总数和除以总数量
  4. es_sum = np.sum(es)
  5. es_len = len(es)
  6. es_sum = es_sum / es_len
  7. # 显示误差值与权重的二元一次方程
  8. # 配置图像
  9. plt.title("Cost Function",fontsize=12)# 设置图像名称
  10. plt.xlabel("w")# 设置横坐标名称
  11. plt.ylabel("e")# 设置纵坐标名称
  12. # 设置不同的权重带入预测函数的运算
  13. # 起始值,结束值,递进大小
  14. ws = np.arange(0,3,0.1)
  15. # 均方误差集合
  16. es = []
  17. for w in ws:
  18. # 获取预测值
  19. y_pre = w * xs
  20. # 获取误差
  21. e = np.sum((ys-y_pre)**2) / es_len
  22. # 输出
  23. es.append(e)
  24. plt.plot(ws,es)
  25. plt.show()


接下来通过所有的最小点来设置权重值。
求一元二次方程的最低点,也就是我们刚刚讲的顶点坐标公式。

  1. w_min = np.sum(xs*ys)/np.sum(xs*xs)
  2. # e的最小点w,str表示格式化成字符串
  3. print("e的最小点w:"+str(w_min))
  4. # 计算所有豆豆的最佳值
  5. y_pre = w_min * xs
  6. # 打印图形
  7. # 配置图像
  8. plt.title("Chi Dou Dou",fontsize=12)# 设置图像名称
  9. plt.xlabel("Size")# 设置横坐标名称
  10. plt.ylabel("Toxicity")# 设置纵坐标名称
  11. # 把值负到图上
  12. plt.scatter(xs,ys)
  13. plt.plot(xs,y_pre)
  14. plt.show()


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

python学习 1-安装

Ptyhon非常简单易用的面向对象的脚本语言,跨平台 入门简单python分2个版本 Python2、Python3。Python 2.7 将于 2020 年结...

python学习 2-基本语法

基础:python脚本语言,不需要编译(像C#、Java、PHP、C++需要编译成机器可识别的语言), 而直接由解释器解释,很多地方类似...

python学习 3-爬虫基本介绍 及简单实例

爬虫爬虫就是一只猪,蜘蛛。。 网络蜘蛛。互联网是一个网由各个网站组成。无数的蜘蛛就在网上到处爬,根据网址从一个网站爬...

python实例 1-日志抓取处理 补错附日志小技巧

有时候数据出了问题,可以从日志中恢复数据(如果你没记日志..没备份..→_→..)一、日志展示介绍个平常自己用的小方法,如...

python实例 2-12306抢票(一) 登陆

开坑年关将近,终于对12306下手了,,平安夜撸代码,攻克了12306的登陆 2018-12-24 22:16:00没错 这篇博客就写从零开始的异...

python安装pip以及使用pip安装requests等模块

pip很简单的介绍pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。如果想...

python数据集合区别

列表(list):可读写,值可以重复,有序排列,初始化语法:['tom',‘jerry’]元组(tuple):只读,值可以重复,...

python实例 2-12306抢票(二) 下单

第二篇 刷票与下单1.记住登陆上一篇写了登陆:http://www.tnblog.net/cz/article/details/162 为了方便调试 不让每次登陆都...

使用VS Code开发python

Vs Code开发Python可以很好的支持代码调试、智能提示、代码对齐等1:下载VS Codehttps://code.visualstudio.com/Downloadvs ...

python变量与命名

Python使用等号 ( = ) 作为赋值运算符,例如a = 66 就是一条赋值语句,作用就是将66赋值给变量a。Python是弱类型语言,弱类...

python关键字和内置函数

Python中包含了如下所示的关键字:上面这些关键字都不能作为变量名。另外,Python 3还提供了如下表所示的内置函数:也不能...

python基础输入和输出

Python使用print()函数向打印程序输出,采用input()函数接收程序输入。print()函数的语法格式如下:print(value,...,sep=&#...

python基本数据类型

Python包含两大类基本数据类型:数值类型、字符串类型,三大类组合数据类型:集合类型、序列类型和字典类型.数值类型:整型...

python中通过fake_useragent生成随机UserAgent

fake_useragent第三方库,来实现随机请求头的设置;GitHub ---> https://github.com/hellysmile/fake-useragent安...

python 升级pip

一条命令即可: python -m pip install --upgrade pip 安装成功后,一般是在python目录下面的Scripts里边的

python html编码解码

使用方法:html.escape(s)与html.unescape即可 import html s="<div>jsdlfjsl</div>" #html编...
这一世以无限游戏为使命!
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术