文章目录

  • 1.上溢和下溢
  • 2.优化方法

1.上溢和下溢

下溢(Underflow):当接近零的数被四舍五入为零时发生下溢。
上溢(Overflow):当大量级的数被近似为 ∞ 或 −∞ 时发生上溢。

必须对上溢和下溢进行数值稳定的一个例子是 softmax 函数。softmax 函数经常用于预测与范畴分布相关联的概率,定义为:

import numpy as np
x = np.array([1e7, 1e8, 2e5, 2e7])
y = np.exp(x) / sum(np.exp(x))
print("上溢:",y)
x = x - np.max(x)    # 减去最大值
y = np.exp(x) / sum(np.exp(x))
print("上溢处理:",y)
import numpy as np
x = np.array([-1e10, -1e9, -2e10, -1e10])
y = np.exp(x) / sum(np.exp(x))
print("下溢:",y)
x = x - np.max(x)
y = np.exp(x) / sum(np.exp(x))
print("下溢处理:",y)
print("log softmax(x):", np.log(y))
def logsoftmax(x):y = x - np.log(sum(np.exp(x))) return y
print("logsoftmax(x):", logsoftmax(x))

2.优化方法

梯度下降法

x0 = np.array([1.0,1.0,1.0])
A = np.array([[1.0, -2.0, 1.0],[0.0, 2.0, -8.0], [-4.0, 5.0, 9.0]])
b = np.array([0.0, 8.0, -9.0])
epsilon = 0.001
delta = 1e-3def matmul_chain(*args):if len(args) == 0:return np.nanresult = args[0]for x in args[1:]:result += xreturn resultdef gradient_decent(x, A,b,epsilon,delta):while np.linalg.norm(matmul_chain(A.T,A,x) - matmul_chain(A.T,b)) > delta:x -= epsilon*(matmul_chain(A.T,A,x) - matmul_chain(A.T,b))return xgradient_decent(x0,A,b,epsilon,delta)

机器学习代码实战——数值计算相关推荐

  1. 机器学习代码实战——线性回归(多变量)(Linear Regression)

    文章目录 1.实验目的 2.导入必要模块并读取数据 3.对数据进行处理 3.1.experience字段数字化 3.2.test_score(out of 10)字段NaN替换为平均数 4.训练+预测 ...

  2. 机器学习代码实战——KMeans(聚类)

    文章目录 1.实验目的 2.导入必要模块 3.用pandas处理数据 4.拟合+预测 5.把预测结果合并到DF 6.可视化聚类效果 7.比较不同的簇数的均方误差 8.对数据归一化处理 1.实验目的 1 ...

  3. 机器学习代码实战——PCA(主成分分析)

    文章目录 1.主成分分析基本概念 2.代码 1.主成分分析基本概念 2.代码 导入必要的库 import pandas as pd import numpy as np from sklearn.da ...

  4. 机器学习代码实战——网格搜索和交叉验证(GridSearchCV)

    文章目录 1.实验目的 2.导入必要模块并读取数据 3.构建模型-参数字典 4.训练 5.打印不同模型.不同参数对应的结果 1.实验目的 (1)运用GridSearchCV比较不同的模型.不同的参数对 ...

  5. 机器学习代码实战——朴素贝叶斯(实现垃圾邮件分类)

    文章目录 1.实验目的 2.导入必要模块并读取数据 3.训练+预测 4.使用Sklearn Pipeline方法 1.实验目的 (1)分析邮件数据并对数据进行预处理 (2)运行朴素贝叶斯模型对邮件进行 ...

  6. 机器学习代码实战——逻辑回归(Logistic Regression)

    文章目录 1.实验目的 2.导入必要模块并读取数据 3.可视化分析数据 4.数据预处理 5.训练+预测 1.实验目的 (1)对数据进行分析,以找出哪些变量对员工保留有直接和明显的影响(即它们是离开公司 ...

  7. 机器学习代码实战——拆分训练集与测试集(train_test_split)

    文章目录 1.实验目的 2.导入必要模块并读取数据 1.实验目的 我们有一个包含二手宝马车价格的数据集. 我们将分析此数据集,并建立一个可以通过以汽车的行驶里程和车龄作为输入来预测价格的预测函数. 我 ...

  8. 机器学习代码实战——梯度下降(gradient descent)

    文章目录 1.实验目的 2.梯度下降 2.1.借助sklearn库 2.2.手写梯度下降函数 1.实验目的 本实验将使用两种方法实现梯度下降算法并可打印出参数,可视化梯度下降过程.第一种方法是借助sk ...

  9. 机器学习代码实战——线性回归(单变量)(Linear Regression)

    文章目录 1.实验目的 2.导入必要模块并读取数据 3.画当前数据分布散点图 4.提取数据和标签 5.训练+预测 1.实验目的 使用线性回归模型预测2020年加拿大公民的人均收入. 数据链接 密码:z ...

最新文章

  1. 为云服务立规矩——首批可信云服务认证名单公布
  2. 20个科学小知识,带你走进科学世界
  3. 说说计算机发展史在你印象里都有哪些内容,《老王》导学案及答案
  4. tp5下通过composer实现日志记录功能
  5. CentOS7没有telnet命令的解决方法
  6. linux脚本怎么获取参数,在Bash shell脚本编程中,如何正确无误获取到“脚本选项参数”和“脚本参数”呢?...
  7. 关于Mysql5.5在关键字方面的变化
  8. python mac地址_如何使用Python生成MAC地址
  9. 电脑无法正常开机,黑屏,只显示鼠标。
  10. Android Launcher研究与开发——桌面的初步定制化
  11. 2060显卡驱动最新版本_Ubuntu 18.04 安装 NVIDIA 显卡驱动
  12. 粒子滤波的通俗解释,傻子的搜寻策略--我的理解_拔剑-浆糊的传说_新浪博客
  13. VSCode连接远程服务器
  14. JS 实现数字转换为大写中文金额
  15. python字符串前面u、r、b含义以及str、bytes互转
  16. SpringMVC学习-helloSpringMVC
  17. yi.k7p.co/index.php,Muzeum Jarocin
  18. 微信公众号开发完整教程(一) PHP7.0版本,TP5.0框架
  19. 《Adobe Photoshop CS5中文版经典教程(全彩版)》—第2课2.7节使用海绵工具调整饱和度...
  20. 1 Tensorflow - 30行代码搞定手写识别

热门文章

  1. express下使用ES6
  2. 【数据结构笔记13】C实现:判别是否是同一颗二叉搜索树(BST)
  3. java swing 图片上加热点_外卖图片品牌全靠P,4元成本料理包加热后,平台上20元卖出...
  4. linux上tomcat安装
  5. java面试题 Arraylist 与 LinkedList比较
  6. json爬虫获取列表数据不全,已解决
  7. 爱情九十一课,留下好的你
  8. Registry Size 提示注册表容量不够!
  9. Java基础----泛型
  10. 几种web报表打印方案的比较