通过之前的学习,我们已经可以创建出手写数字训练的模型,并且经过不断优化能达到一个很好的效果,但是这些模型背后是如何工作,我们却一无所知,就像一个黑盒。深入了解模型背后的原理,可以使我们更快地适应模型、选择合适的算法、选择合适的超参数等等,甚至可以快速分析误差来源。

0. 导入所需的库

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
import sklearnfor i in (np, mpl, sklearn):print(i.__name__,": ",i.__version__,sep="")

输出:

numpy: 1.17.4
matplotlib: 3.1.2
sklearn: 0.21.3

1. 线性回归

机器学习中,向量一般代表列向量,相当于只有一列的矩阵。

线性回归模型:

损失函数为圴方误差

闭型解:

更多关于线性回归及算法原理推导,请查看:https://blog.csdn.net/Jwenxue/article/details/106599344

1.1 线性回归求解

为了更好地进行案例分析,现在生成一些近似线性关系的数据:

X = 2 * np.random.rand(100,1)
y = 4 + 3 * X + np.random.randn(100,1)plt.plot(X,y,"b.")
plt.xlabel("$x_1$",fontsize=18)
plt.ylabel("$y$",rotation=0, fontsize=18)
plt.axis([0,2,0,15])
plt.show()

输出:

上图所示为生成的数据。现在利用上面提到的闭型解公式求解参数 θ:

X_b = np.c_[np.ones((100,1)),X]  # 为了方便求解偏置b,在X中加入一列全1
theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)
theta_best

输出:

array([[3.97080953],[2.89942544]])

可以得出 

机器学习实践—基于Scikit-Learn、Keras和TensorFlow2第二版—第4章 训练模型相关推荐

  1. 机器学习实践—基于Scikit-Learn、Keras和TensorFlow2第二版—第9章 无监督学习技术(Chapter9_Unsupervised_Learning_Techniques)

    机器学习实践-基于Scikit-Learn.Keras和TensorFlow2第二版-第9章 无监督学习技术(Chapter9_Unsupervised_Learning_Techniques) 虽然 ...

  2. 机器学习实践指南:案例应用解析(第二版)

    试读及购买链接 机器学习实践指南2版代码及资源(原书中的360网盘链接因为360关闭网盘的原因已经失效) 1.https://pan.baidu.com/s/1nw37A5N   2.http://w ...

  3. 动手学机器学习(第二版)-第四章训练模型

    第四章 训练模型 线性模型(Linear Regression) 线性模型的一般形式如下 y^=θ0+θ1x1+θ2x2+-+θnxn\hat{y} = \theta_0 + \theta_1 x_1 ...

  4. python笔迹识别_python_基于Scikit learn库中KNN,SVM算法的笔迹识别

    之前我们用自己写KNN算法[网址]识别了MNIST手写识别数据 [数据下载地址] 这里介绍,如何运用Scikit learn库中的KNN,SVM算法进行笔迹识别. 数据说明: 数据共有785列,第一列 ...

  5. O‘relly 机器学习实战 基于Scikit-learn 、Keras和Tensorflow 学习记录-第一章

    @[TOC](这里写自定义目录标题) #第一章 机器学习概述 案例1.1: 使用Scikit-learn 训练并运行一个线性模型 import matplotlib.pyplot as plt imp ...

  6. Python 从入门到实践(第二版) 第九章 练习9-15 彩票分析

    刚学到第九章,昨晚习题9-15的彩票分析,产生一个想法,但苦于不知如何开头,求助大神指点(下面是思路,见笑了~): '''编写一个自动根据数字范围进行对比测试选出号码的代码, 其中包括: 七星彩(Se ...

  7. 《Python编程从入门到实践 第二版》第九章练习

    9-1 餐馆 创建一个名为Restaurant 的类,为其方法__init__() 设置属性restaurant_name 和cuisine_type.创建一个名为describe_restauran ...

  8. 机器学习与Scikit Learn学习库

    摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...

  9. 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络

    本教程的代码和数据来自于 Springboard 的博客教程.本文的作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:https://g ...

最新文章

  1. Lotus Domino单用户多账号多邮件地址配置
  2. Redis布隆过滤器
  3. Thinkphp5.0 多图上传名称重复BUG
  4. python自动保存图片_Python学习笔记:利用爬虫自动保存图片
  5. centos usb转网口_centOS安装与配置minicom(串口转USB)
  6. final阶段成员贡献分
  7. java.text.MessageFormat 专题
  8. 海龟编辑器 html版,海龟编辑器官方版
  9. 柱、锥、台、球的体积公式推导(不用积分)
  10. 校园网IPv6免流量上网
  11. android 禁止其他应用开机启动项,禁止各种APP开机后自动运行的方案
  12. MLC转成SLC模式没有想象的那么好
  13. 收获一篇好文章,与大家共享
  14. matlab激光操纵控制系统设计,某激光操作控制系统的滞后校正
  15. plc开关量输入输出模块的选择
  16. Win10中找不到gpedit.msc
  17. [PMLR 2017] On calibration of modern neural networks
  18. 部分考试题和考试后的感想
  19. AUTOCAD——对齐标注命令
  20. 甲骨文面试经历 Oracle Interview

热门文章

  1. 最小编辑距离算法 Edit Distance(经典DP)
  2. c语言中定义结构体指针并指向一片内存空间和直接定义一个结构体变量的区别 Node *p=(Node *)malloc(sizeof(Node)); 和 Node p 两个有什么区别??? Node是一
  3. Ubuntu20.04添加用户到root组方法
  4. 【JSP HTTP 状态码】【JSP 表单处理】【JSP 过滤器】【JSP Cookie 处理】【JSP Session】【JSP 文件上传】
  5. stm32霍尔编码器测速(标准库函数版)
  6. mysql容器数据卷持久化
  7. 7-外部中断事件控制器(EXTI)
  8. 【板栗糖GIS】——如何使用插件将微信读书笔记同步到notion
  9. 大连交通大学崔鸿蒙,交通运输学院2019年推免生复试面试分组.PDF
  10. UnityC#学习之--弧度和角度相互转化