机器学习实战:基于ScikitLearn和TensorFlow
作者:Aurélien Géron
出版社:机械工业出版社
ISBN:9787111603023
VIP会员免费
(仅需0.8元/天)
¥ 60.0
温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!
电子书推荐
-
Sklearn_与_TensorFlow_机器学习实用指南 评分:
首先我们将以一个简单的线性回归模型为例,讨论两种不同的训练方法来得到模型的最优解: 直接使用封闭方程进行求根运算,得到模型在当前训练集上的最优参数(即在训练集上使损失函数达到最小值的模型参数) 使用迭代优化方法:梯度下降(GD),在训练集上,它可以逐渐调整模型参数以获得最小的损失函数,最终,参数会收敛到和第一种方法相同的的值。同时,我们也会介绍一些梯度下降的变体形式:批量梯度下降(Batch GD)、小批量梯度下降(Mini-batch GD)、随机梯度下降(Stochastic GD),在第二部分的神经网络部分,我们会多次使用它们。 接下来,我们将研究一个更复杂的模型:多项式回归,它可以拟合非线性数据集,由于它比线性模型拥有更多的参数,于是它更容易出现模型的过拟合。因此,我们将介绍如何通过学习曲线去判断模型是否出现了过拟合,并介绍几种正则化方法以减少模型出现过拟合的风险。 最后,我们将介绍两个常用于分类的模型:Logistic回归和Softmax回归 提示 在本章中包含许多数学公式,以及一些线性代数和微积分基本概念。为了理解这些公式,你需要知道什么是向量,什么是矩阵,以及它们直接是如何转化的,以及什么是点积,什么是矩阵的逆,什么是偏导数。如果你对这些不是很熟悉的话,你可以阅读本书提供的 Jupyter 在线笔记,它包括了线性代数和微积分的入门指导。对于那些不喜欢数学的人,你也应该快速简单的浏览这些公式。希望它足以帮助你理解大多数的概念。 线性回归 在第一章,我们介绍了一个简单的的生活满意度回归模型: $$ life_satisfaction = \theta _{0} + \theta _{1} * GDP_per_capita $$ 这个模型仅仅是输入量GDP_per_capita的线性函数,$\theta _{0}$ 和 $\theta _{1}$ 是这个模型的参数,线性模型更一般化的描述指通过计算输入变量的加权和,并加上一个常数偏置项(截距项)来得到一个预测值。如公式 4-1: 公式 4-1:线性回归预测模型 $$ \hat{y} = \theta _{0} + \theta _{1}x _{1}+\theta _{2}x _{2}+\dots+\theta _{n}x _{n} $$ $\hat{y}$ 表示预测结果 $n$ 表示特征的个数 $x_{i}$ 表示第i个特征的值 $\theta_{j}$ 表示第j个参数(包括偏置项 $\theta _{0}$ 和特征权重值 $\theta _{1},\theta _{2},\dots,\theta _{n}$) 上述公式可以写成更为简洁的向量形式,如公式 4-2: 公式 4-2:线性回归预测模型(向量形式) $$ \hat{y} = h _{\theta} (\mathbf{x})= \theta^T \cdot \mathbf{x} $$ $\theta$ 表示模型的参数向量包括偏置项 $\theta _{0}$ 和特征权重值 $\theta _{1}$ 到 $\theta _{n}$ $\theta^T$ 表示向量$\theta$的转置(行向量变为了列向量) $\mathbf{x}$ 为每个样本中特征值的向量形式,包括 $x {1}$ 到 $x{n}$,而且 $x_0$ 恒为 1 $\theta^T \cdot \mathbf{x}$ 表示 $\theta^T$ 和$ \mathbf{x}$ 的点积 $h_{\theta}$ 表示参数为 $\theta$ 的假设函数 怎么样去训练一个线性回归模型呢?好吧,回想一下,训练一个模型指的是设置模型的参数使得这个模型在训练集的表现较好。为此,我们首先需要找到一个衡量模型好坏的评定方法。在第二章,我们介绍到在回归模型上,最常见的评定标准是均方根误差(RMSE,详见公式 2-1)。因此,为了训练一个线性回归模型,你需要找到一个 $\theta$ 值,它使得均方根误差(标准误差)达到最小值。实践过程中,最小化均方误差比最小化均方根误差更加的简单,这两个过程会得到相同的 $\theta$,因为函数在最小值时候的自变量,同样能使函数的方根运算得到最小值。 在训练集 $\mathbf{X}$ 上使用公式 4-3 来计算线性回归假设 $h_{\theta}$ 的均方差($MSE$)。 公式 4-3:线性回归模型的 MSE 损失函数 $$ MSE (\mathbf{X},h {\theta}$) = $\frac{1}{m} \sum\limits{i=1}^m{\left(\theta^T \cdot \mathbf{x}^{(i)}-y^{(i)}\right)}^2 $$ 公式中符号的含义大多数都在第二章(详见“符号”)进行了说明,不同的是:为了突出模型的参数向量 $\theta$,使用 $h_{\theta}$ 来代替 $h$。以后的使用中为了公式的简洁,使用 $MSE(\theta)$ 来代替 $MSE(\mathbf{X},h _{\theta})$。 正态方程 为了找到最小化损失函数的 $\theta$ 值,可以采用公式解,换句话说,就是可以通过解正态方程直接得到最后的结果。 公式 4-4:正态方程 $$ \hat{\theta} = ({\mathbf{X}}^T\cdot\mathbf{X})^{-1}\cdot{\mathbf{X}}^T\cdot\mathbf{y} $$ $\hat{\theta}$ 指最小化损失 $\theta$ 的值 $\mathbf{y}$ 是一个向量,其包含了 $y^{(1)}$ 到 $y^{(m)}$ 的值 让我们生成一些近似线性的数据(如图 4-1)来测试一下这个方程。 import numpy as np X = 2 * np.random.rand(100, 1) y = 4 + 3 * X + np.random.randn(100, 1) 图 4-1:随机线性数据集 现在让我们使用正态方程来计算 $\hat{\theta}$,我们将使用 Numpy 的线性代数模块(np.linalg)中的inv()函数来计算矩阵的逆,以及dot()方法来计算矩阵的乘法。 X_b = np.c_[np.ones((100, 1)), X] theta_best = np.linalg.inv(X_b.T.dot(X_B)).dot(X_b.T).dot(y) 我们生产数据的函数实际上是 $y = 4 + 3x_0 + 高斯噪声$。让我们看一下最后的计算结果。 >>> theta_best array([[4.21509616],[2.77011339]]) 我们希望最后得到的参数为 $\theta_0=4,\theta_1=3$ 而不是 $\theta_0=3.865,\theta_1=3.139$ (译者注:我认为应该是 $\theta_0=4.2150,\theta_1=2.7701$)。这已经足够了,由于存在噪声,参数不可能达到到原始函数的值。 现在我们能够使用 $\hat{\theta}$ 来进行预测: >>> X_new = np.array([[0],[2]]) >>> X_new_b = np.c_[np.ones((2, 1)), X_new] >>> y_predict = X_new_b.dot(theta.best) >>> y_predict array([[4.21509616],[9.75532293]]) 画出这个模型的图像,如图 4-2 plt.plot(X_new,y_predict,"r-") plt.plot(X,y,"b.") plt.axis([0,2,0,15]) plt.show() 图4-2:线性回归预测 使用下面的 Scikit-Learn 代码可以达到相同的效果: 计算复杂度 正态方程需要计算矩阵 ${\mathbf{X}}^T\cdot\mathbf{X}$ 的逆,它是一个 $n * n$ 的矩阵($n$ 是特征的个数)。这样一个矩阵求逆的运算复杂度大约在 $O(n^{2.4})$ 到 $O(n^3)$ 之间,具体值取决于计算方式。换句话说,如果你将你的特征个数翻倍的话,其计算时间大概会变为原来的 5.3($2^{2.4}$)到 8($2^3$)倍。 提示 当特征的个数较大的时候(例如:特征数量为 100000),正态方程求解将会非常慢。 有利的一面是,这个方程在训练集上对于每一个实例来说是线性的,其复杂度为 $O(m)$,因此只要有能放得下它的内存空间,它就可以对大规模数据进行训练。同时,一旦你得到了线性回归模型(通过解正态方程或者其他的算法),进行预测是非常快的。因为模型中计算复杂度对于要进行预测的实例数量和特征个数都是线性的。 换句话说,当实例个数变为原来的两倍多的时候(或特征个数变为原来的两倍多),预测时间也仅仅是原来的两倍多。 接下来,我们将介绍另一种方法去训练模型。这种方法适合在特征个数非常多,训练实例非常多,内存无法满足要求的时候使用。 梯度下降 梯度下降是一种非常通用的优化算法,它能够很好地解决一系列问题。梯度下降的整体思路是通过的迭代来逐渐调整参数使得损失函数达到最小值。 假设浓雾下,你迷失在了大山中,你只能感受到自己脚下的坡度。为了最快到达山底,一个最好的方法就是沿着坡度最陡的地方下山。这其实就是梯度下降所做的:它计算误差函数关于参数向量$\theta$的局部梯度,同时它沿着梯度下降的方向进行下一次迭代。当梯度值为零的时候,就达到了误差函数最小值 。 具体来说,开始时,需要选定一个随机的$\theta$(这个值称为随机初始值),然后逐渐去改进它,每一次变化一小步,每一步都试着降低损失函数(例如:均方差损失函数),直到算法收敛到一个最小值(如图:4-3)。
上传时间:2019-03 大小:12.76MB
- 151.83MB
史上最全的菜菜的sklearn学习[教程很详细].rar
2019-05-21史上最全的菜菜的sklearn学习[教程很详细
- 12.43MB
sklearn与tensrflow指南中文pdf.zip
2019-07-22sklearn与Tensrflow机器学习实用指南pdf. 直接解压即可,没有密码
- 41.60MB
Sklearn 与 TensorFlow 机器学习实用指南_机器学习_
2021-09-30Sklearn 与 TensorFlow 机器学习实用指南
- 23.92MB
PycharmProjects_hidef66_PycharmProjects_python_tensorflow_机器学习_源
2021-09-30PycharmProjects_hidef66_PycharmProjects_python_tensorflow_机器学习_源码.zip
- 23.92MB
PycharmProjects_hidef66_PycharmProjects_python_tensorflow_机器学习.z
2021-10-10PycharmProjects_hidef66_PycharmProjects_python_tensorflow_机器学习.z
- 0B
Hands_On_Machine_Learning_with_Scikit_Learn_and_TensorFlow(机器学习英文原版专著).pdf
2022-12-02Hands_On_Machine_Learning_with_Scikit_Learn_and_TensorFlow(机器学习英文原版专著).pdf
- 9KB
Python库 | sklearn_som-1.0.1-py3-none-any.whl
2022-04-04资源分类:Python库 所属语言:Python 资源全名:sklearn_som-1.0.1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
- 45.21MB
sklearn_0.21.3中文手册(机器学习库),sklearn中文手册pdf,Python源码.zip
2021-10-15sklearn_0.21.3中文手册(机器学习库),sklearn中文手册pdf,Python源码
- 7.78MB
Building_Machine_Learning_Projects_with_TensorFlow.epub
2016-12-14Building_Machine_Learning_Projects_with_TensorFlow
- 50.49MB
hand-detection.rar_image segmentation_基于tensorflow_掌纹_掌静脉识别_机器学习
2022-07-14基于机器学习的掌纹掌静脉图像区域分割。应用全卷积网络和tensorflow实现对图像的分割匹配等操作。利用机器学习算法实现掌纹识别
- 981KB
sklearn_cross_validation不同数据类型交叉验证迭代器
2018-12-15sklearn_cross_validation不同数据类型交叉验证迭代器
- 39.72MB
Hands_On_Machine_Learning_with_Scikit_Learn_&_TensorFlow
2017-09-27Hands On Machine Learning with Scikit Learn & TensorFlow 。TensorFlow 机器学习实用指南(英文原版 )。
- 24KB
Python库 | sklearn-crfsuite-0.3.6.tar.gz
2022-04-15资源分类:Python库 所属语言:Python 资源全名:sklearn-crfsuite-0.3.6.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
- 45.20MB
sklearn_0.21.3中文手册(机器学习库),sklearn中文手册pdf,Python
2021-09-10scikit-learn (sklearn) 官方文档中文版。scikit-learn 是基于 Python 语?的机器学习工具
- 1KB
sklearn-xgboost.rar_python xgboost_sklearn_xgboost_xgboost sklea
2022-07-14sklearn-xgboost sklearn-xgboost的使用以及创建,这个是学习机器学习时的作业,希望大家指正
- 6KB
PyPI 官网下载 | featuretools_sklearn_transformer-0.1.1.tar.gz
2022-01-31资源来自pypi官网。 资源全名:featuretools_sklearn_transformer-0.1.1.tar.gz
- 5.35MB
Machine_Learning_with_TensorFlow_v5_MEAP
2018-03-10通过tensorflow进行机器学习,通过实践动手深入了解机器学习算法,并应用到图像、自然语言处理、语音等领域
- 157.48MB
(菜菜机器学习教程)Tsai_sklearn_tutorial.zip
2020-08-24菜菜完整机器学习教程,内含code和从参数说明,以及参考书目的目录等 01 决策树课件数据源码 02随机森林 03数据预处理和特征工程 04主成分分析PCA与奇异值分解SVD 05逻辑回归与评分卡 06聚类算法Kmeans 07支持向量机...
- 3KB
MNIST.rar_MNIST手写数字体识别_mnist 手写识别_python机器学习_tensorflow_手写识别 MNI
2022-09-25使用tensorflow搭建深度卷积网络,借助BN技巧训练,使MNIST手写数字体识别的精度到达99.71%。
- 15.87MB
Python-应用TensorFlow做机器学习的源代码
2019-08-11应用TensorFlow 做机器学习的源代码
- 13KB
Python库 | sklearn_to_pfa-0.3.10-py3-none-any.whl
2022-04-04资源分类:Python库 所属语言:Python 资源全名:sklearn_to_pfa-0.3.10-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
- 293.88MB
YOLOv8-deepsort 实现智能车辆目标检测+车辆跟踪+车辆计数
2023-10-06本资源纯属免费,不收任何钱和任何积分,纯粹为爱发电,本资源已经为大家整合好了的,看我的博客部署好直接用:https://blog.csdn.net/Little_Carter/article/details/133610076?spm=1001.2014.3001.5501 资源原本项目源码地址:https://github.com/MuhammadMoinFaisal/YOLOv8-DeepSORT-Object-Tracking 本资源提供了基于YOLOv8-deepsort算法的智能车辆目标检测、车辆跟踪和车辆计数的实现方案。首先,利用YOLOv8算法对视频中的车辆目标进行检测,并对检测到的目标进行标记。然后,通过deepsort算法对标记的车辆目标进行跟踪,实现车辆目标的持续跟踪。最后,根据跟踪结果对车辆数量进行统计,实现车辆计数功能。本资源提供了完整的代码实现和详细的使用说明,帮助读者快速掌握基于YOLOv8-deepsort的智能车辆目标检测、车辆跟踪和车辆计数技术。
- 98KB
YOLOv8网络结构图,自制visio文件,yolov8.vsds,需要的自取,在原有的基础上直接改就行了
2024-03-12YOLOv8网络结构图,自制visio文件,yolov8.vsds,需要的自取,在原有的基础上直接改就行了
- 367.44MB
yolov8(2023年8月版本),已经下好yolov8s.pt和yolov8n.pt
2023-10-09yolov8(2023年8月版本),已经下好yolov8s.pt和yolov8n.pt,需要创建的文件夹都以创建,方便大家不用再去GitHub下载 可以搭配该博客:https://blog.csdn.net/weixin_43366149/article/details/132206526?spm=1001.2014.3001.5501
- 26.50MB
Transformer模型实现长期预测并可视化结果(附代码+数据集+原理介绍)
2023-11-12这篇文章给大家带来是Transformer在时间序列预测上的应用,这种模型最初是为了处理自然语言处理(NLP)任务而设计的,但由于其独特的架构和能力,它也被用于时间序列分析。Transformer应用于时间序列分析中的基本思想是:Transformer 在时间序列分析中的应用核心在于其自注意力机制,这使其能够有效捕捉时间序列数据中的长期依赖关系。通过并行处理能力和位置编码,Transformer 不仅提高了处理效率,而且确保了时间顺序的准确性。其灵活的模型结构允许调整以适应不同复杂度这篇文章给大家带来是Transformer在时间序列预测上的应用,这种模型最初是为了处理自然语言处理(NLP)任务而设计的,但由于其独特的架构和能力,它也被用于时间序列分析。Transformer应用于时间序列分析中的基本思想是:Transformer 在时间序列分析中的应用核心在于其自注意力机制,这使其能够有效捕捉时间序列数据中的长期依赖关系。通过并行处理能力和位置编码,Transformer 不仅提高了处理效率,而且确保了时间顺序的准确性。定制化训练个人数据集进行训练利用python和pytorch实现
- 141KB
社交平台上经济类话题的文章热度信息,数据是真实的,但不是真实日期
2023-03-16使用LSTM模型进行时序预测的代码与说明见:https://blog.csdn.net/Q_M_X_D_D_/article/details/109366895
- 40.38MB
YOLOV5 + 双目相机实现三维测距(新版本)
2024-04-14YOLOV5 + 双目相机实现三维测距(新版本)
- 62.4MB
行人跌倒数据集(VOC格式)
2023-01-30行人跌倒数据集(VOC格式)
- 123.13MB
Unet眼底血管图像分割数据集+代码+模型+系统界面+教学视频.zip
2024-02-17本资源配套对应的视频教程和图文教程,手把手教你使用Unet做眼底图像分割的训练、测试和界面封装,包含了Unet原理的解析、处理好的训练集和测试集、训练和测试的代码以及训练好的模型,并封装为了图形化界面,只需点击上传按钮上传图像即可完成眼底图像的预测。 随着生活水平的提高,眼科疾病以及心脑血管疾病的发病率呈现逐年增长的趋势。视网膜血管是这类疾病诊断和监测的重要信息来源,其形态和状况的变化可以反映出许多疾病的早期病理变化。然而,由于受眼底图像采集技术的限制以及视网膜血管自身结构的复杂性和多变性,使得视网膜血管的分割变得非常困难。传统方法依靠人工手动分割视网膜血管,不仅工作量巨大,极为耗时,而且受主观因素影响严重。通过眼底血管图像分割可以提高诊断准确性、效率以及推动科学研究和改进治疗方法等方面。 B站主页:https://space.bilibili.com/161240964 C站主页:https://blog.csdn.net/ECHOSON
- 728KB
全新的SOTA模型YOLOv9
2024-02-22当今的深度学习方法专注于如何设计最合适的目标函数,以使模型的预测结果尽可能接近真实值。同时,还需要设计一个合适的架构,以便获取足够的信息进行预测。现有方法忽略了一个事实:当输入数据经过逐层的特征提取和空间变换时,会丢失大量信息。本文将深入探讨数据在深度网络中传输时数据丢失的重要问题,即信息瓶颈和可逆函数问题。我们提出了可编程梯度信息(PGI)的概念,以应对深度网络实现多个目标所需的各种变化。PGI能够为目标任务提供完整的输入信息,以计算目标函数,从而获得可靠的梯度信息以更新网络权重。此外,我们还设计了一种基于梯度路径规划的新型轻量级网络架构——广义高效层聚合网络(GELAN)。GELAN的架构证明了PGI在轻量级模型上获得了优越的结果。我们在基于MS COCO数据集的目标检测上验证了所提出的GELAN和PGI。结果显示,GELAN仅使用传统的卷积运算符就实现了比基于深度卷积的最新方法更好的参数利用率。PGI可用于从轻量级到大型的各种模型,它可以获取完整信息,使得从零开始训练的模型比使用大型数据集预训练的最新模型获得更好的结果,比较结果如图1所示。