diff --git a/new/master-py-ds/07.md b/new/master-py-ds/07.md index 4a162a3421ad3eb33af7d37afeb29d89edf5d77a..1c248511a60cdc754446cd50beffaa83f5600544 100644 --- a/new/master-py-ds/07.md +++ b/new/master-py-ds/07.md @@ -250,7 +250,7 @@ Area under the ROC curve : 0.879934 曲线下面的面积是`0.87`,这是一个很好的值。 在前面的代码中,我们使用`roc_curve`函数分别获得错误率和正确率,其定义如下: -假阳性率是![Evaluating a model based on test data](img/B03450_07_11.jpg),也称为辐射;真阳性率是![Evaluating a model based on test data](img/B03450_07_12.jpg),也称为灵敏度。 +假阳性率是`FP / (FP + TN)`,也称为辐射;真阳性率是`TPR = TP / P = TP / (TP + FN)`,也称为灵敏度。 以下是我们的一些观察结果: diff --git a/new/thoughtful-ds/06.md b/new/thoughtful-ds/06.md index 7ac0f7a9f1ca32ee6e3df95f4981713d975f325c..bd295fc6a63ccb5e9ec086f7e75e0c1ebe879a25 100644 --- a/new/thoughtful-ds/06.md +++ b/new/thoughtful-ds/06.md @@ -64,7 +64,7 @@ ![What is deep learning?](img/00114.jpeg) -其中![What is deep learning?](img/00115.jpeg)是`i`和`i + 1`层之间的权重矩阵。 这些权重是在训练阶段计算出来的,稍后我们将简要讨论。 +其中`θ^i`是`i`和`i + 1`层之间的权重矩阵。 这些权重是在训练阶段计算出来的,稍后我们将简要讨论。 ### 注意 @@ -84,13 +84,13 @@ 使用 Sigmoid函数计算神经元输出 -其他流行的激活函数包括双曲正切![What is deep learning?](img/00120.jpeg)和**整流线性单位**(**ReLu**):![What is deep learning?](img/00121.jpeg)。 ReLu 在有很多层时效果更好,因为可以激发*神经元的稀疏性*,从而降低噪音并加快学习速度。 +其他流行的激活函数包括双曲正切`tanh(x)`和**整流线性单位**(**ReLu**):`max(x, 0)`。 ReLu 在有很多层时效果更好,因为可以激发*神经元的稀疏性*,从而降低噪音并加快学习速度。 在模型评分期间使用前馈传播,但是在训练神经网络的权重矩阵时,使用的一种流行方法称为[**反向传播**](https://en.wikipedia.org/wiki/Backpropagation)。 以下高级步骤描述了培训的工作方式: -1. 随机初始化权重矩阵(最好使用较小的值,例如![What is deep learning?](img/00122.jpeg)。 +1. 随机初始化权重矩阵(最好使用较小的值,例如`-ε, ε`)。 2. 使用所有训练示例上所述的前向传播,使用您选择的激活函数来计算每个神经元的输出。 3. 为您的神经网络实现成本函数。 **成本函数**量化了有关训练示例的误差。 反向传播算法可以使用多种成本函数,例如[均方误差](https://en.wikipedia.org/wiki/Mean_squared_error)和[交叉熵](https://en.wikipedia.org/wiki/Cross_entropy)。 4. 使用反向传播可以最小化成本函数并计算权重矩阵。 反向传播背后的想法是从输出层的激活值开始,计算与训练数据有关的误差,然后将其误差传回隐藏层。 然后调整这些误差以最小化步骤 3 中实现的成本函数。 @@ -154,7 +154,7 @@ x_input = tf.placeholder(tf.float32) y_output = tf.placeholder(tf.float32) ``` -然后,我们使用[`tf.Variable` API](https://www.tensorflow.org/programmers_guide/variables) 初始化矩阵![Getting started with TensorFlow](img/00125.jpeg)的随机值,而![Getting started with TensorFlow](img/00126.jpeg)对应于隐藏层和输出层: +然后,我们使用[`tf.Variable` API](https://www.tensorflow.org/programmers_guide/variables) 初始化矩阵`θ[1]`的随机值,而`θ[2]`对应于隐藏层和输出层: ```py eps = 0.01 diff --git a/new/thoughtful-ds/08.md b/new/thoughtful-ds/08.md index 46e13787e446b9053276478f06a73a92c6f6cf9b..14b6b7f912f614327c89587b3c9408722b297ddd 100644 --- a/new/thoughtful-ds/08.md +++ b/new/thoughtful-ds/08.md @@ -1185,7 +1185,7 @@ ARIMA 是最受欢迎的时间系列预测模型之一,顾名思义,它由 ![Time series forecasting using the ARIMA model](img/00185.jpeg) - 其中![Time series forecasting using the ARIMA model](img/00186.jpeg)是从先前观察值和![Time series forecasting using the ARIMA model](img/00187.jpeg)中获知的模型的权重,是观察值`t`的残差。 + 其中`φ[i]`是从先前观察值中获知的模型的权重,`ε[t]`是观察值`t`的残差。 我们也将`p`称为自回归模型的阶,该阶数定义为上式中包含的滞后观测次数。 @@ -1207,7 +1207,7 @@ ARIMA 是最受欢迎的时间系列预测模型之一,顾名思义,它由 使用数学符号,严格平稳性可以转换为: - ![Time series forecasting using the ARIMA model](img/00190.jpeg)和![Time series forecasting using the ARIMA model](img/00191.jpeg)对于任何`t`,`m`和`k`都是相同的,其中`F`是联合概率分布 。 + `F = (y[t], ..., y[t + k]`和`F = (y[t + m], ..., y[t + m + k]`对于任何`t`,`m`和`k`都是相同的,其中`F`是联合概率分布。 实际上,此条件太强了,最好使用前面提供的较弱的定义。 @@ -1237,7 +1237,7 @@ ARIMA 是最受欢迎的时间系列预测模型之一,顾名思义,它由 ![Time series forecasting using the ARIMA model](img/00194.jpeg) - 是时间序列的平均值,![Time series forecasting using the ARIMA model](img/00187.jpeg)是序列中的残差,![Time series forecasting using the ARIMA model](img/00195.jpeg)是滞后残差的权重。 + 是时间序列的平均值,`ε[t]`是序列中的残差,`θ[q]`是滞后残差的权重。 我们将`q`称为移动平均窗口的大小。 @@ -1426,7 +1426,7 @@ max 5.023380e+00 dtype: float64 ``` -平均残留误差为![Build an ARIMA model for the MSFT stock time series](img/00201.jpeg),非常接近零,因此表明该模型可能过拟合了训练数据。 +平均残留误差为`-5.7 * 10 ** (-7)`,非常接近零,因此表明该模型可能过拟合了训练数据。 现在我们有了一个模型,让我们尝试对其进行诊断。 我们定义了一种称为`plot_predict`的方法,该方法将用作模型,一系列日期和一个数字,这些数字指示我们要追溯的距离。 然后,我们调用 ARIMA `plot_predict()`方法来创建包含预测值和观察值的图表。 @@ -1494,7 +1494,7 @@ display(results) ![Build an ARIMA model for the MSFT stock time series](img/00204.jpeg) -其中![Build an ARIMA model for the MSFT stock time series](img/00205.jpeg)是实际值,![Build an ARIMA model for the MSFT stock time series](img/00206.jpeg)是预测值。 +其中`Y[i]`是实际值,`Y_hat[i]`是预测值。 以下代码定义了`compute_mean_squared_error`方法,该方法接受检验和预测序列,并返回均方误差值: diff --git a/new/thoughtful-ds/09.md b/new/thoughtful-ds/09.md index 68159f81a7c493c45454ec2280d9dfd7f6f322c4..fe5a54807325b01e34e4db55b17eaf192bcf0b3b 100644 --- a/new/thoughtful-ds/09.md +++ b/new/thoughtful-ds/09.md @@ -41,7 +41,7 @@ 图的邻接矩阵表示(有向和无向) - 重要的是要注意,邻接矩阵表示具有恒定的空间复杂度,即![Graph representations](img/00219.jpeg),其中`n`是顶点数,但是的时间复杂度为`O(1)`,这是恒定时间,用于计算两个顶点之间是否存在边连接。 当图形密集(边缘很多)时,高空间复杂度可能还可以,但在图形稀疏时可能会浪费空间,在这种情况下,我们可能更喜欢以下邻接表表示形式。 + 重要的是要注意,邻接矩阵表示具有恒定的空间复杂度,即`O(n²)`,其中`n`是顶点数,但是的时间复杂度为`O(1)`,这是恒定时间,用于计算两个顶点之间是否存在边连接。 当图形密集(边缘很多)时,高空间复杂度可能还可以,但在图形稀疏时可能会浪费空间,在这种情况下,我们可能更喜欢以下邻接表表示形式。 ### 注意 @@ -104,7 +104,7 @@ (来源:) - 其中![Graph algorithms](img/00225.jpeg)是从顶点`s`到顶点`t`的最短路径总数,![Graph algorithms](img/00226.jpeg)是通过`v`的![Graph algorithms](img/00227.jpeg)的子集。 。 + 其中`σ[st]`是从顶点`s`到顶点`t`的最短路径总数,`σ[st](v)`是通过`v`的`σ[st]`的子集。 ### 注意 diff --git a/new/thoughtful-ds/10.md b/new/thoughtful-ds/10.md index a926171e293748e095e6f3a9a6a93ecfa3f68c48..e7a5dd83998947fd54c66a649cd3ca5e702ce303 100644 --- a/new/thoughtful-ds/10.md +++ b/new/thoughtful-ds/10.md @@ -16,7 +16,7 @@ Drew 的数据科学 Conway Venn 图现在包括开发人员 # 前瞻性思维-对 AI 和数据科学的期望 -这是我非常喜欢的部分,因为我无需表达准确性就可以表达前瞻性意见,因为根据定义,这些只是我的观点![Forward thinking – what to expect for AI and data science](img/00259.jpeg)。 +这是我非常喜欢的部分,因为我无需表达准确性就可以表达前瞻性意见,因为根据定义,这些只是我的观点😊。 正如我在第 1 章,"开发人员对数据科学的观点"中所解释的那样,我相信 AI 和数据科学将继续存在,它们将继续对现有行业造成破坏。 在可预见的未来,最有可能以加速的速度发展。 这肯定会影响工作的总数,并且类似于我们过去看到的其他技术革命(农业,工业,信息等),有些将消失,而新的将被创造。