提交 6c3b585b 编写于 作者: W wizardforcel

2021-12-15 22:27:37

上级 0b5ef704
......@@ -114,7 +114,7 @@
当然,问题在于免费提供的数据可能会被滥用。只读数据可能会被竞争对手或那些歪曲它的人下载和使用,以推进可能不属于您的原因。具有读/写访问权限的数据可能会被恶意个人修改,也可能被您或您的同事意外修改。
数据安全和访问控制是一个巨大的研究领域,而且许多可用的材料都非常技术性。基本上,大多数数据库管理系统都具有不同粒度级别的内置访问控制,通常采用熟悉的帐户和密码形式。通过网站提供的数据可能没有这些内置保护,必须根据具体情况实适当的保护措施。
数据安全和访问控制是一个巨大的研究领域,而且许多可用的材料都非常技术性。基本上,大多数数据库管理系统都具有不同粒度级别的内置访问控制,通常采用熟悉的帐户和密码形式。通过网站提供的数据可能没有这些内置保护,必须根据具体情况实适当的保护措施。
每个数据管理员都在安全和共享之间走一条路。
## 数据管理教程和秘籍
......
......@@ -67,7 +67,7 @@
无论如何,最好将从模型内部做出预测的算法分开。这是从训练数据中学习的模型中的特定系数或结构。
#### 2A。选择或实预测算法
#### 2A。选择或实预测算法
机器学习算法的复杂性通常在模型训练中,而不是在做出预测。
......
......@@ -49,7 +49,7 @@ Kaggle有一些特别的好处,你应该认真考虑:
3. 练习旧的Kaggle问题。
4. 在Kaggle上竞争。
该过程易于描述,但难以实。这需要时间和精力。这将是艰苦的工作。
该过程易于描述,但难以实。这需要时间和精力。这将是艰苦的工作。
但…
......@@ -135,7 +135,7 @@ Kaggle有一些特别的好处,你应该认真考虑:
* 考虑一次处理一个问题,直到你出现问题或陷入困境。
* 旨在为您所处理的每个竞赛在私人排行榜上取得前25%或前10%的成绩。
* 在论坛上自由分享;这将导致合作。
* 最大限度地缩短阅读或思考好主意与实之间的时间(例如分钟)。
* 最大限度地缩短阅读或思考好主意与实之间的时间(例如分钟)。
玩得开心。
......
......@@ -95,7 +95,7 @@ For example:
解决方案的使用方式将影响您采用的解决方案的性质和要求。
考虑您是否要编写报告以显示结果,或者您希望操作解决方案。如果要实解决方案,请考虑解决方案的功能和非功能需求,就像软件项目一样。
考虑您是否要编写报告以显示结果,或者您希望操作解决方案。如果要实解决方案,请考虑解决方案的功能和非功能需求,就像软件项目一样。
## 第3步:我如何解决问题?
......@@ -103,7 +103,7 @@ For example:
逐步列出您将收集哪些数据,如何准备它以及如何设计程序来解决问题。这可能包括您需要执行的原型和实验,这些都是金矿,因为它们将突出您对可以探索的领域的问题和不确定性。
这是一个强大的工具。它可以突出显示使用手动实的解决方案可以令人满意地解决的问题。它还刷新了迄今为止存在的重要领域知识,例如数据实际存储的位置,哪些类型的功能有用以及许多其他细节。
这是一个强大的工具。它可以突出显示使用手动实的解决方案可以令人满意地解决的问题。它还刷新了迄今为止存在的重要领域知识,例如数据实际存储的位置,哪些类型的功能有用以及许多其他细节。
收集所有这些细节,并更新问题定义的前几部分。特别是假设和经验法则。
......
......@@ -104,7 +104,7 @@
如果您希望深入了解,本节将提供有关该主题的更多资源。
* [如何使用Python进行时间序列预测的基线预测](https://machinelearningmastery.com/persistence-time-series-forecasting-with-python/)
* [如何使用Python从零开始实基线机器学习算法](https://machinelearningmastery.com/implement-baseline-machine-learning-algorithms-scratch-python/)
* [如何使用Python从零开始实基线机器学习算法](https://machinelearningmastery.com/implement-baseline-machine-learning-algorithms-scratch-python/)
* [机器学习表现改进备忘单](https://machinelearningmastery.com/machine-learning-performance-improvement-cheat-sheet/)
## 摘要
......
......@@ -45,7 +45,7 @@
通过将这样的实现直接投入生产,可以非常认真地考虑您可能创建的依赖关系和技术债务。请考虑查找支持您要使用的方法的生产级库。如果此时切换到生产级别库,则可能必须重复算法调整过程。
您也可以考虑自己实算法。此选项可能会引入风险,具体取决于您选择的算法的复杂程度以及它使用的实现技巧。即使使用开源代码,也可能存在许多复杂的操作,这些操作可能很难内化并且可靠地重现。
您也可以考虑自己实算法。此选项可能会引入风险,具体取决于您选择的算法的复杂程度以及它使用的实现技巧。即使使用开源代码,也可能存在许多复杂的操作,这些操作可能很难内化并且可靠地重现。
### 模型测试
......
......@@ -301,7 +301,7 @@
* 将记录转换为幻灯片以与其他人分享调查结果。
* 与感兴趣的各方分享代码和结果。
#### 5.2实结果
#### 5.2实结果
本节旨在确保您实现预先制定的解决方案承诺。
......
......@@ -101,8 +101,8 @@
* **随机搜索**。 _哪些参数可以使用随机搜索?_ 也许您可以使用算法超参数的随机搜索来公开您从未想过要尝试的配置。
* **网格搜索**。 _什么参数可以使用网格搜索?_ 也许有标准超参数值的网格可以枚举以找到好的配置,然后用更精细和更精细的网格重复该过程。
* **优化**。 _您可以优化哪些参数?_ 也许有结构或学习率等参数可以使用直接搜索程序(如模式搜索)或随机优化(如遗传算法)进行调整。
* **替代实**。 _该算法的其他实现是什么?_ 也许该方法的替代实现可以在相同数据上获得更好的结果。每种算法都有许多必须由算法实现者做出的微决策。其中一些决定可能会影响您的问题的技能。
* **算法扩展**。 _算法的常见扩展是什么?_ 也许您可以通过评估方法的常用或标准扩展来提升表现。这可能需要实工作。
* **替代实**。 _该算法的其他实现是什么?_ 也许该方法的替代实现可以在相同数据上获得更好的结果。每种算法都有许多必须由算法实现者做出的微决策。其中一些决定可能会影响您的问题的技能。
* **算法扩展**。 _算法的常见扩展是什么?_ 也许您可以通过评估方法的常用或标准扩展来提升表现。这可能需要实工作。
* **算法定制**。 _针对您的特定情况,可以对算法进行哪些自定义?_ 也许您可以对数据算法进行修改,从损失函数,内部优化方法到算法特定决策。
* **联系专家**。 _算法专家在您的案例中推荐什么?_ 写一封简短的电子邮件,总结您的预测问题以及您尝试过的一位或多位专家学者对该算法的看法。这可能会揭示以前不为您所知的前沿工作或学术工作的新想法或新想法。
......
......@@ -98,7 +98,7 @@ _预测模型问题的系统过程__
## 5.目前的结果
复杂的机器学习问题的结果除非付诸实,否则毫无意义。这通常意味着向利益相关者展示。即使这是我为自己工作的竞争或问题,我仍然会经历呈现结果的过程。这是一个很好的练习,给了我明确的学习,我可以在下次建立。
复杂的机器学习问题的结果除非付诸实,否则毫无意义。这通常意味着向利益相关者展示。即使这是我为自己工作的竞争或问题,我仍然会经历呈现结果的过程。这是一个很好的练习,给了我明确的学习,我可以在下次建立。
我用来呈现结果的模板如下,可以采用文本文档,正式报告或演示幻灯片的形式。
......
......@@ -27,7 +27,7 @@
4. **分析报告**:使用描述性统计和图表汇总数据视图。
5. **模型**:机器学习算法和配置与输入数据一起用于即时构建模型。
6. **模型输出**:所有数据视图的所有数据分区上的模型的原始结果。
7. **Blends** :集算法和配置,旨在为所有数据视图上的所有数据分区创建模型输出的混合。
7. **Blends** :集算法和配置,旨在为所有数据视图上的所有数据分区创建模型输出的混合。
8. **记分牌**:本地记分牌,描述所有已完成的运行及其可以分类和汇总的分数。
9. **预测**:可上报的预测,用于上传到竞赛排行榜等
......
......@@ -150,7 +150,7 @@ _(我教这种方法并帮助超过 1,145 名开发人员
**停下来太容易了。**
**放弃太容易了。**
这是强大的动力。你知道自己可以可以写一个程序来解决一个特定的问题。然后有信心实际实和部署。
这是强大的动力。你知道自己可以可以写一个程序来解决一个特定的问题。然后有信心实际实和部署。
在最开始,代码和设计将变得糟糕。很难维护。不适合长期使用。但是随着经验积累,导师的引导和不断学习你的代码能力会变得更好。
......
......@@ -37,7 +37,7 @@ dropout是一种在训练过程中忽略随机选择的神经元的技术。这
## Keras的dropout规范化
通过以每轮权重更新时的给定概率(例如 20%)随机选择要丢弃的节点、。这就是在Keras实 Dropout 的方式。 Dropout 仅在模型训练期间使用,在评估模型的表现时不使用。
通过以每轮权重更新时的给定概率(例如 20%)随机选择要丢弃的节点、。这就是在Keras实 Dropout 的方式。 Dropout 仅在模型训练期间使用,在评估模型的表现时不使用。
接下来,我们将探讨在 Keras 中使用 Dropout 的几种不同方法。
......
......@@ -21,7 +21,7 @@ Python 深度学习库 Keras 简介
Keras 是一个用于深度学习的极简主义 Python 库,可以在 Theano 或 TensorFlow 之上运行。
它的开发旨在使深度学习模型的研究和开发尽可能快速简便地实
它的开发旨在使深度学习模型的研究和开发尽可能快速简便地实
它运行在 Python 2.7 或 3.5 上,并且可以在给定底层框架的情况下在 GPU 和 CPU 上无缝执行。它是在许可的 MIT 许可下发布的。
......
......@@ -176,7 +176,7 @@ scores = model.evaluate(X_test, y_test, verbose=0)
print("Accuracy: %.2f%%" % (scores[1]*100))
```
运行此示例提供以下结果。首先总结网络结构,确认我们的设计是正确实的。
运行此示例提供以下结果。首先总结网络结构,确认我们的设计是正确实的。
```py
_________________________________________________________________
......
......@@ -198,7 +198,7 @@ Best: 0.752604 using {'init': 'uniform', 'optimizer': 'adam', 'batch_size': 5, '
在这篇文章中,您了解了如何包装 Keras 深度学习模型并在 scikit-learn 通用机器学习库中使用它们。
您可以看到,使用 scikit-learn 进行标准机器学习操作(如模型评估和模型超参数优化)可以节省大量时间来自行实这些方案。
您可以看到,使用 scikit-learn 进行标准机器学习操作(如模型评估和模型超参数优化)可以节省大量时间来自行实这些方案。
包装模型允许您利用 scikit 中的强大工具学习,使您的深度学习模型适合您的一般机器学习过程。
......
......@@ -1409,7 +1409,7 @@ Test Accuracy: 76.000000
### 相关文章
* [在 Keras 模型中使用预训练的字嵌入](https://blog.keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html),2016。
* [在 TensorFlow](http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/) ,2015 年实 CNN 进行文本分类。
* [在 TensorFlow](http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/) ,2015 年实 CNN 进行文本分类。
## 摘要
......
......@@ -31,7 +31,7 @@
2. 文本摘要编码器
3. 文本摘要解码器
4. 阅读源文本
5.模型
5.模型
## 编解码器架构
......@@ -152,7 +152,7 @@ Ramesh Nallapati,et al。使用 GRU 循环神经网络生成输出序列。
- [抽象句概括的神经注意模型](https://arxiv.org/abs/1509.00685),2015。
## 实模型
## 实模型
在本节中,我们将介绍如何在 Keras 深度学习库中实现用于文本摘要的编解码器架构。
......@@ -284,7 +284,7 @@ model = Model(inputs=[inputs1, inputs2], outputs=outputs)
model.compile(loss='categorical_crossentropy', optimizer='adam')
```
您还有其他替代实方案吗?
您还有其他替代实方案吗?
请在下面的评论中告诉我。
## 进一步阅读
......
......@@ -90,7 +90,7 @@
该模型适用于 8-GPU 机器,其中每层在不同的 GPU 上运行。训练需要 10 天。
> 由此产生的实施速度达到每秒 6,300(英语和法语)的速度,小批量为 128.这种实施的训练大约需要 10 天。
> 由此产生的实现速度达到每秒 6,300(英语和法语)的速度,小批量为 128.这种实现的训练大约需要 10 天。
### 结果
......@@ -127,7 +127,7 @@
描述编解码器架构。
取自“使用 RNN 编解码器进行统计机器翻译的学习短语表示”。
不使用 LSTM 单位;相反,开发了一种更简单的循环神经网络单元,称为门控循环单元或 GRU。
不使用 LSTM 单位;相反,开发了一种更简单的循环神经网络单元,称为门控循环单元或 GRU。
> ......我们还提出了一种新型的隐藏单元,它受 LSTM 单元的推动,但计算和实现起来要简单得多。
......
......@@ -9,7 +9,7 @@
完成本教程后,您将了解:
* 关于编解码器模型和机器翻译的注意机制。
* 如何逐步实关注机制。
* 如何逐步实关注机制。
* 注意机制的应用和扩展。
让我们开始吧。
......@@ -304,7 +304,7 @@ Minh-Thang Luong,et al。在他们的 2015 年论文中,“[基于注意力
具体来说,你学到了:
* 关于编解码器模型和机器翻译的注意机制。
* 如何逐步实关注机制。
* 如何逐步实关注机制。
* 注意机制的应用和扩展。
你有任何问题吗?
......
......@@ -76,7 +76,7 @@
- 第 169 页,[统计学习理论的性质](http://amzn.to/2uvHt5a),1995
转导算法的经典示例是 k-Nearest Neighbors 算法,其不对训练数据建模,而是在每次需要预测时直接使用它。
转导算法的经典示例是 K 最近邻 算法,其不对训练数据建模,而是在每次需要预测时直接使用它。
> 转导自然与一组称为基于实例或基于案例的学习的算法相关。也许,这类中最着名的算法是 k-最近邻算法。
......
......@@ -171,7 +171,7 @@ trainX, trainy, testX, testy = load_dataset()
* 支持向量机
* 朴素贝叶斯
算法:
算法:
* 袋装决策树
* 随机森林
......
......@@ -80,7 +80,7 @@ EMC Data Science Global Hackathon 数据集或简称“_ 空气质量预测 _”
* 每个系列的接下来三天预测前一天的观察结果。
* 每个系列的接下来三天预测前三天的观察结果。
这些是需要探索的理想基线方法,但是大量缺失数据和大多数数据块的不连续结构使得在没有非平凡数据准备的情况下实它们具有挑战性。
这些是需要探索的理想基线方法,但是大量缺失数据和大多数数据块的不连续结构使得在没有非平凡数据准备的情况下实它们具有挑战性。
可以进一步详细说明预测每个系列的平均观测值;例如:
......
......@@ -1939,7 +1939,7 @@ ConvLSTM RMSE 预测汽车销售的盒子和晶须图
本节列出了一些扩展您可能希望探索的教程的想法。
* **数据准备**。探索数据准备(例如规范化,标准化和/或差异化)是否可以列出任何模型的表现。
* **网格搜索超参数**。对一个模型实超参数的网格搜索,以查看是否可以进一步提升表现。
* **网格搜索超参数**。对一个模型实超参数的网格搜索,以查看是否可以进一步提升表现。
* **学习曲线诊断**。创建一个模型的单一拟合并查看数据集的训练和验证分割的学习曲线,然后使用学习曲线的诊断来进一步调整模型超参数以提高模型表现。
* **历史规模**。探索一种模型的不同数量的历史数据(滞后输入),以了解您是否可以进一步提高模型表现
* **减少最终模型的差异**。探索一种或多种策略来减少其中一种神经网络模型的方差。
......
......@@ -1346,7 +1346,7 @@ sgd: 0.457 MAE
* 额外的树
* 支持向量回归
**集算法**
**集算法**
* Adaboost 的
* 袋装决策树
......
......@@ -99,7 +99,7 @@
在本节中,我们将开发一个网格搜索框架,用于搜索前一节中描述的两个简单预测策略,即朴素和平均策略。
我们可以从实一个朴素的预测策略开始。
我们可以从实一个朴素的预测策略开始。
对于给定的历史观测数据集,我们可以在该历史中保留任何值,即从索引-1 处的先前观察到历史上的第一次观察 - (len(data))。
......@@ -1451,7 +1451,7 @@ done
本节列出了一些扩展您可能希望探索的教程的想法。
* **地块预测**。更新框架以重新拟合具有最佳配置的模型并预测整个测试数据集,然后将预测与测试集中的实际观察值进行比较。
* **漂移方法**。实简单预测的漂移方法,并将结果与​​平均和朴素的方法进行比较。
* **漂移方法**。实简单预测的漂移方法,并将结果与​​平均和朴素的方法进行比较。
* **另一个数据集**。将开发的框架应用于另外的单变量时间序列问题(例如,来自[时间序列数据集库](https://datamarket.com/data/list/?q=provider:tsdl))。
如果你探索任何这些扩展,我很想知道。
......
......@@ -117,7 +117,7 @@ pyplot.show()
下面的示例将删除所有具有 EEG 观测值的行,这些行是平均值的四个标准偏差或更多。数据集将保存到名为“`EEG_Eye_State_no_outliers.csv`”的新文件中。
这是[离群值检测和删除](https://machinelearningmastery.com/how-to-use-statistics-to-identify-outliers-in-data/)的快速而肮脏的实现,但是完成了工作。我相信你可以设计出更高效的实方案。
这是[离群值检测和删除](https://machinelearningmastery.com/how-to-use-statistics-to-identify-outliers-in-data/)的快速而肮脏的实现,但是完成了工作。我相信你可以设计出更高效的实方案。
```py
# remove outliers from the EEG data
......
......@@ -94,7 +94,7 @@ LSTM,例如 Vanilla LSTMs 在问题上进行了评估并表现出相对较差
这并不奇怪,因为它反映了其他地方的发现。
> 我们最初的 LSTM 实相对于最先进的方法没有表现出优越的表现。
> 我们最初的 LSTM 实相对于最先进的方法没有表现出优越的表现。
- [优步神经网络的时间序列极端事件预测](http://roseyu.com/time-series-workshop/submissions/TSW2017_paper_3.pdf),2017。
......
......@@ -812,7 +812,7 @@ sgd: [383.177] 400.3, 386.0, 333.0, 368.9, 401.5, 303.9, 466.9
线性算法的递归多步预测线图
通过调整一些表现更好的算法的超参数可以获得更好的结果。此外,更新示例以测试一套非线性和集算法可能会很有趣。
通过调整一些表现更好的算法的超参数可以获得更好的结果。此外,更新示例以测试一套非线性和集算法可能会很有趣。
一个有趣的实验可能是评估一个或几个表现更好的算法的表现,前一天或多或少作为输入。
......
......@@ -450,7 +450,7 @@ max 126.581011 226.396127 156.019616 171.570206 208.030615
本节列出了您可能考虑探索的一些进一步调查的领域。
* **作为特征**。使用滞后观测作为时间步长也提出了滞后观测是否可以用作输入特征的问题。目前尚不清楚 Keras LSTM 实是否在内部以相同的方式处理时间步骤和特征。
* **作为特征**。使用滞后观测作为时间步长也提出了滞后观测是否可以用作输入特征的问题。目前尚不清楚 Keras LSTM 实是否在内部以相同的方式处理时间步骤和特征。
* **诊断运行图**。对于给定的实验,在多次运行的情况下查看训练和测试 RMSE 的图可能是有帮助的。这可能有助于梳理过拟合或过拟合是否正在发生,反过来又是解决它的方法。
* **增加训练时期**。第二组实验中 LSTM 中神经元的增加可受益于训练时期数量的增加。这可以通过一些后续实验来探索。
* **增加重复次数**。使用 10 次重复导致相对少量的测试 RMSE 结果。将重复增加至 30 或 100(或甚至更高)可能导致更稳定的结果。
......
......@@ -75,7 +75,7 @@ NumPy 实际上并没有复制较小的数组;相反,它使存储器和计算
我们可以通过查看 NumPy 中的三个例子来制作广播。
本节中的示例并非详尽无遗,而是与您可能看到或实的广播类型相同。
本节中的示例并非详尽无遗,而是与您可能看到或实的广播类型相同。
### 标量和一维数组
......
......@@ -242,7 +242,7 @@ print(B)
* [主成分分析与 numpy](https://glowingpython.blogspot.com.au/2011/07/principal-component-analysis-with-numpy.html) ,2011。
* [PCA 和图像压缩与 numpy](https://glowingpython.blogspot.com.au/2011/07/pca-and-image-compression-with-numpy.html) ,2011。
* [主成分分析(PCA)](http://sebastianraschka.com/Articles/2014_pca_step_by_step.html),2014 年。
* [主成分分析(PCA)](http://sebastianraschka.com/Articles/2014_pca_step_by_step.html),2014 年。
## 摘要
......
......@@ -35,7 +35,7 @@
这些材料使用自上而下的方法进行教学,就像 [MachineLearningMastery](https://machinelearningmastery.com/machine-learning-for-programmers/) 一样,旨在让人们了解如何做事,然后再解释这些方法的工作原理。
> 了解如何实这些算法将使您能够更好地组合和利用它们,并使您可以根据需要自定义它们。
> 了解如何实这些算法将使您能够更好地组合和利用它们,并使您可以根据需要自定义它们。
## 课程先决条件和参考
......
......@@ -68,7 +68,7 @@
1. **Building Block** :让我再说一遍。线性代数绝对是理解机器学习中所需的微积分和统计数据的关键。更好的线性代数将全面提升你的游戏。认真。
2. **更深层次的直觉**:如果您能够理解向量和矩阵层面的机器学习方法,那么您将提高对工作方式和时间的直觉。
3. **从算法中获取更多信息**:对算法及其约束的更深入理解将允许您自定义其应用程序并更好地理解调整参数对结果的影响。
4. **从零开始实算法**:您需要了解线性代数,从零开始实现机器学习算法。至少要阅读算法描述,最多有效地使用提供向量和矩阵运算的库。
4. **从零开始实算法**:您需要了解线性代数,从零开始实现机器学习算法。至少要阅读算法描述,最多有效地使用提供向量和矩阵运算的库。
5. **设计新算法**:线性代数的符号和工具可以直接在 Octave 和 MATLAB 等环境中使用,使您可以非常快速地对现有算法和全新方法进行原型修改。
无论您喜欢与否,线性代数都会在您的机器学习过程中占据重要位置。
......
......@@ -273,7 +273,7 @@ print(B)
首先,我们必须计算 SVD。接下来,我们必须计算 s 数组中每个值的倒数。然后可以将 s 数组转换为具有添加的零行的对角矩阵,以使其成为矩形。最后,我们可以从元素中计算出伪逆。
具体实是:
具体实是:
```
A^+ = V . D^+ . U^V
......
......@@ -52,7 +52,7 @@
您需要能够读写这种表示法。这项技能将允许您:
* 阅读教科书中现有算法的描述。
* 解释并实研究论文中新方法的描述。
* 解释并实研究论文中新方法的描述。
* 向其他从业者简要描述您自己的方法。
此外,Python 等编程语言提供了直接实现线性代数表示法的有效方法。
......
......@@ -174,15 +174,15 @@
* [RNN引入的注意机制究竟是什么? Quora上的](https://www.quora.com/What-is-exactly-the-attention-mechanism-introduced-to-RNN-recurrent-neural-network-It-would-be-nice-if-you-could-make-it-easy-to-understand)
* [什么是神经网络中的注意机制?](https://www.quora.com/What-is-Attention-Mechanism-in-Neural-Networks)
在撰写本文时,Keras并未提供开箱即用的注意事项,但很少有第三方实。看到:
在撰写本文时,Keras并未提供开箱即用的注意事项,但很少有第三方实。看到:
* [使用Keras进行问答的深度语言建模](http://ben.bolte.cc/blog/2016/language.html)
* [注意模型可用!](https://github.com/fchollet/keras/issues/2067)
* [Keras注意机制](https://github.com/philipperemy/keras-attention-mechanism)
* [注意和增强循环神经网络](http://distill.pub/2016/augmented-rnns/)
* [如何在循环层(文本分类)](https://github.com/fchollet/keras/issues/4962)之上添加注意
* [注意机制实问题](https://github.com/fchollet/keras/issues/1472)
* [简单的神经注意模型(用于填充输入)](https://github.com/fchollet/keras/issues/2612)
* [注意机制实问题](https://github.com/fchollet/keras/issues/1472)
* [简单的神经注意模型(用于填充输入)](https://github.com/fchollet/keras/issues/2612)
* [注意层需要另一个PR](https://github.com/fchollet/keras/issues/1094)
* [seq2seq库](https://github.com/farizrahman4u/seq2seq)
......
......@@ -57,7 +57,7 @@ CNN LSTM是针对视觉时间序列预测问题以及从图像序列(例如视
卷积神经网络长短期记忆网络架构
## 在Keras实CNN LSTM
## 在Keras实CNN LSTM
我们可以定义一个在Keras联合训练的CNN LSTM模型。
......
......@@ -112,7 +112,7 @@ LSTM网络具有连接到层中的存储块,而不是神经元。
* [深入研究循环神经网络](http://nikhilbuduma.com/2015/01/11/a-deep-dive-into-recurrent-neural-networks/)
* [经常性网络和LSTM初学者指南](http://deeplearning4j.org/lstm.html)
LSTM的热门教程。
LSTM的热门教程。
* [使用TensorFlow进行语言建模的LSTM](https://www.tensorflow.org/versions/r0.9/tutorials/recurrent/index.html)
* [在Theano中进行口语理解的RNN](http://deeplearning.net/tutorial/rnnslu.html)
......
......@@ -111,7 +111,7 @@ LSTM可以用作生成模型。
或者这些方法的一些变化。
注意,在做出预测时将需要相同的向量化表示,这意味着需要将预测的字符作为后续样本的输入来呈现。这在实中可能非常笨拙。
注意,在做出预测时将需要相同的向量化表示,这意味着需要将预测的字符作为后续样本的输入来呈现。这在实中可能非常笨拙。
网络的内部状态可能需要仔细管理,可能在输入序列中的选择位置(例如段落,页面或章节的末尾)而不是在每个输入序列的末尾重置。
......
......@@ -146,7 +146,7 @@ LSTM迷你课程概述
* 什么算法用于训练LSTM?
* Backpropagation Through Time如何运作?
* 什么是截断的BPTT,它提供了什么好处?
* 如何在Keras中实和配置BPTT?
* 如何在Keras中实和配置BPTT?
### Further Reading
......@@ -265,7 +265,7 @@ LSTM迷你课程概述
* 什么是CNN LSTM架构?
* 有哪些CNN LSTM的例子?
* CNN LSTM提供哪些好处?
* 如何在Keras中实CNN LSTM架构?
* 如何在Keras中实CNN LSTM架构?
### Experiment
......@@ -334,7 +334,7 @@ LSTM迷你课程概述
* LSTM型号的注意事项是什么?
* 在LSTM中使用注意力的一些例子是什么?
* 注意为序列预测提供了什么好处?
* 如何在Keras中实注意力架构?
* 如何在Keras中实注意力架构?
### Experiment
......
......@@ -134,7 +134,7 @@ LSTM自编码器模型
具有两个解码器的LSTM自编码器模型
取自“使用LSTM的视频表示的无监督学习”
模型以多种方式进行评估,包括使用编码器来播种分类器。看来,不是使用编码器的输出作为分类输入,而是选择直接使用编码器模型的权重为独立的LSTM分类器播种。鉴于实的复杂性,这是令人惊讶的。
模型以多种方式进行评估,包括使用编码器来播种分类器。看来,不是使用编码器的输出作为分类输入,而是选择直接使用编码器模型的权重为独立的LSTM分类器播种。鉴于实的复杂性,这是令人惊讶的。
> 我们使用编码器LSTM从该模型中学习的权重初始化LSTM分类器。
......
......@@ -133,7 +133,7 @@ y(t) = f(X(t))
## 从业者的两个常见误解
在从业者实循环神经网络时,特征与时间步骤的混淆会导致两个主要的误解:
在从业者实循环神经网络时,特征与时间步骤的混淆会导致两个主要的误解:
### **1.作为输入功能的时间步长**
......
......@@ -82,7 +82,7 @@ RNN适合并在许多时间步骤上做出预测。我们可以通过在输入
展开循环网络图也引入了其他问题。每个时间步都需要一个新的网络副本,这反过来占用内存,特别是对于具有数千或数百万权重的大型网络。随着时间步数攀升到数百个,大型循环网络的内存需求可能会迅速增加。
> ...需要按输入序列的长度展开RNN。通过展开RNN N次,网络内的每个神经元的激活被复制N次,这消耗了大量的存储器,尤其是当序列非常长时。这阻碍了在线学习或改编的小型实。此外,这种“完全展开”使得多个序列的并行训练在共享存储器模型(例如图形处理单元(GPU))上效率低下
> ...需要按输入序列的长度展开RNN。通过展开RNN N次,网络内的每个神经元的激活被复制N次,这消耗了大量的存储器,尤其是当序列非常长时。这阻碍了在线学习或改编的小型实。此外,这种“完全展开”使得多个序列的并行训练在共享存储器模型(例如图形处理单元(GPU))上效率低下
- [具有连接主义时间分类的循环神经网络的在线序列训练](https://arxiv.org/abs/1511.06841),2015
......
......@@ -62,11 +62,11 @@ yhat(t) = f(X(t), X(t-1), X(t-2), ... X(t-n))
它在概念上与在时间序列问题上训练的多层感知机上的窗口大小相似(但在实践中完全不同),或者与ARIMA等线性时间序列模型的p和q参数相似。 TBPTT定义了训练期间模型输入序列的范围。
## Keras实TBPTT
## Keras实TBPTT
Keras深度学习库提供了TBPTT的实现,用于训练复现神经网络。
比上面列出的一般版本更受限制。
比上面列出的一般版本更受限制。
具体地,k1和k2值彼此相等并固定。
......
+ [Machine Learning Mastery 机器学习算法教程](README.md)
+ [机器学习算法之旅](a-tour-of-machine-learning-algorithms.md)
+ [用于机器学习的装袋和随机森林集算法](bagging-and-random-forest-ensemble-algorithms-for-machine-learning.md)
+ [从零开始实机器学习算法的好处](benefits-of-implementing-machine-learning-algorithms-from-scratch.md)
+ [用于机器学习的装袋和随机森林集算法](bagging-and-random-forest-ensemble-algorithms-for-machine-learning.md)
+ [从零开始实机器学习算法的好处](benefits-of-implementing-machine-learning-algorithms-from-scratch.md)
+ [更好的朴素贝叶斯:从朴素贝叶斯算法中获取最多的12个技巧](better-naive-bayes.md)
+ [机器学习的提升和AdaBoost](boosting-and-adaboost-for-machine-learning.md)
+ [选择机器学习算法:Microsoft Azure的经验教训](choosing-machine-learning-algorithms-lessons-from-microsoft-azure.md)
......@@ -35,7 +35,7 @@
+ [如何在Python中从零开始实现重采样方法](implement-resampling-methods-scratch-python.md)
+ [如何用Python从零开始实现简单线性回归](implement-simple-linear-regression-scratch-python.md)
+ [如何用Python从零开始实现堆叠(Stacking)](implementing-stacking-scratch-python.md)
+ [K-Nearest Neighbors for Machine Learning](k-nearest-neighbors-for-machine-learning.md)
+ [K 最近邻 for Machine Learning](k-nearest-neighbors-for-machine-learning.md)
+ [学习机器学习的向量量化](learning-vector-quantization-for-machine-learning.md)
+ [机器学习的线性判别分析](linear-discriminant-analysis-for-machine-learning.md)
+ [机器学习的线性回归](linear-regression-for-machine-learning.md)
......@@ -57,7 +57,7 @@
+ [用于机器学习的支持向量机](support-vector-machines-for-machine-learning.md)
+ [在没有数学背景的情况下理解机器学习算法的5种技术](techniques-to-understand-machine-learning-algorithms-without-the-background-in-mathematics.md)
+ [最好的机器学习算法](the-best-machine-learning-algorithm.md)
+ [教程从零开始在Python中实现k-Nearest Neighbors](tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch.md)
+ [教程从零开始在Python中实现K 最近邻](tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch.md)
+ [通过从零开始实现它们来理解机器学习算法(以及绕过坏代码的策略)](understand-machine-learning-algorithms-by-implementing-them-from-scratch.md)
+ [使用随机森林:在121个数据集上测试179个分类器](use-random-forest-testing-179-classifiers-121-datasets.md)
+ [为什么从零开始实现机器学习算法](why-implement-a-machine-learning-algorithm-from-scratch.md)
\ No newline at end of file
# 用于机器学习的装袋和随机森林集合算法
# 机器学习中的装袋和随机森林集成算法
> 原文: [https://machinelearningmastery.com/bagging-and-random-forest-ensemble-algorithms-for-machine-learning/](https://machinelearningmastery.com/bagging-and-random-forest-ensemble-algorithms-for-machine-learning/)
随机森林是最流行和最强大的机器学习算法之一。它是一种称为Bootstrap Aggregation或bagging的集成机器学习算法。
在这篇文章中,您将发现Bagging集算法和用于预测建模的随机森林算法。阅读本文后,您将了解:
在这篇文章中,您将发现Bagging集算法和用于预测建模的随机森林算法。阅读本文后,您将了解:
* 用于从样本估计统计量的自助方法。
* Bootstrap Aggregation算法,用于从单个训练数据集创建多个不同的模型。
......@@ -18,7 +18,7 @@
![Bagging and Random Forest Ensemble Algorithms for Machine Learning](img/fe96503a5f5ea1aafb65de137f9e6a7f.jpg)
用于机器学习的套袋和随机森林集算法
用于机器学习的套袋和随机森林集算法
照片由 [Nicholas A. Tonelli](https://www.flickr.com/photos/nicholas_t/9660920448/) 拍摄,保留一些权利。
## Bootstrap方法
......
# 从零开始实机器学习算法的好处
# 从零开始实机器学习算法的好处
> 原文: [https://machinelearningmastery.com/benefits-of-implementing-machine-learning-algorithms-from-scratch/](https://machinelearningmastery.com/benefits-of-implementing-machine-learning-algorithms-from-scratch/)
......@@ -12,7 +12,7 @@
[![Follow Tutorials to Implement Machine Learning Algorithms](img/f8a3ba83b77e6650418b843c89b38d56.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/09/Follow-Tutorials-to-Implement-Machine-Learning-Algorithms.jpg)
按照教程实机器学习算法
按照教程实机器学习算法
[ucdaviscoe](https://www.flickr.com/photos/ucdaviscoe/6046652813) ,保留一些权利
## 实现机器学习算法
......@@ -21,11 +21,11 @@
### 优点
从零开始实算法的好处是:
从零开始实算法的好处是:
* **了解**:您将深入了解该算法的工作原理。您了解该方法的数学描述如何与您编码操作的数字的向量和矩阵相关。您还将了解所有参数的使用方式,效果,甚至可以深入了解如何进一步参数化以使其专门针对问题。
* **起点**:您的实将为更高级的扩展甚至是使用该算法的操作系统提供基础。您对算法和实现的深入了解可以让您在使用不透明的现成库时了解自己代码的空间和时间复杂性。
* **所有权**:实施是您自己的实施,让您对如何实现系统的方法和所有权充满信心。它不再仅仅是一种机器学习算法,而是一种现在位于工具箱中的方法。
* **起点**:您的实将为更高级的扩展甚至是使用该算法的操作系统提供基础。您对算法和实现的深入了解可以让您在使用不透明的现成库时了解自己代码的空间和时间复杂性。
* **所有权**:实现是您自己的实现,让您对如何实现系统的方法和所有权充满信心。它不再仅仅是一种机器学习算法,而是一种现在位于工具箱中的方法。
## 获取免费算法思维导图
......@@ -42,19 +42,19 @@
实现算法后,您可以探索对实现进行改进。您可以探索的一些改进示例包括:
* **实验**:您可以将您在算法实现中做出的许多微观决策暴露为参数,并对这些参数的变化进行研究。这可以为您提供可以共享和推广的算法实现的新见解和消歧。
* **优化**:您可以通过使用工具,库,不同语言,不同数据结构,模式和内部算法来探索提高实效率的机会。您对经典计算机科学的算法和数据结构的了解对此类工作非常有益。
* **优化**:您可以通过使用工具,库,不同语言,不同数据结构,模式和内部算法来探索提高实效率的机会。您对经典计算机科学的算法和数据结构的了解对此类工作非常有益。
* **专业化**:您可以探索使算法更具体针对问题的方法。创建生产系统时可能需要这样做,这是一项宝贵的技能。使算法更具体问题还可以导致效率(例如运行时间)和功效(例如准确度或其他表现测量)的增加。
* **泛化**:可以通过使特定算法更通用来创建机会。程序员(如数学家)在抽象方面具有独特的技能,您可以看到该算法如何完全应用于一类问题或其他问题的更一般情况。
## 实现算法的局限性
从零开始实现算法是我们之前讨论过的一种方法。 [是我的](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/ "How to Implement a Machine Learning Algorithm")[小型项目方法论](http://machinelearningmastery.com/self-study-machine-learning-projects/ "4 Self-Study Machine Learning Projects")中的项目类型之一。在此项目类型中,我建议您在实之前执行自己的文献调查并首先研究算法的工作原理。
从零开始实现算法是我们之前讨论过的一种方法。 [是我的](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/ "How to Implement a Machine Learning Algorithm")[小型项目方法论](http://machinelearningmastery.com/self-study-machine-learning-projects/ "4 Self-Study Machine Learning Projects")中的项目类型之一。在此项目类型中,我建议您在实之前执行自己的文献调查并首先研究算法的工作原理。
这进一步导致了算法描述模板,为[提供了一个如何有效地描述机器学习算法的工具](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/ "How to Learn a Machine Learning Algorithm"),以便您深入理解它。
所有这一切的问题在于它非常耗时。研究算法涉及查找,阅读和总结大量书籍,示例代码和研究论文,并且可以在数天到数周的时间内完成一位优秀的学术研究人员。
如果您认为您可能想要实十几种机器学习算法,您可能很容易被要求投入超过半年的时间。
如果您认为您可能想要实十几种机器学习算法,您可能很容易被要求投入超过半年的时间。
此外,您自己的代码实现可能存在可能难以找到的错误(这些算法有一种工作方式可以激发错误,降低表现)。在使用代码实现方法之前,您可能还会遇到必须理解的数学中非直观的飞跃。
......@@ -71,7 +71,7 @@
* **慢**:执行缓慢,在每个渐进步骤中引入一个新东西,以便整体可以理解为各部分的总和。
* **代码**:每个步骤和整个教程的完整工作示例。很明显,但是很容易忘记或者因为没有测试代码而陷入困境。必须解释所有代码并且必须执行。
* **参考文献**:必须为希望深入了解材料的读者提供额外的资源和阅读材料。
* **扩展**:完成本教程后,如果他们有兴趣进一步实施,必须建议读者可以采取的其他练习。必须就如何整合其他先进元素或如何解决所提供实施方案的问题提出建议。
* **扩展**:完成本教程后,如果他们有兴趣进一步实现,必须建议读者可以采取的其他练习。必须就如何整合其他先进元素或如何解决所提供实现方案的问题提出建议。
这是一种在编程中学习算法和数据结构的流行方法,并且这种方法因其简单性而容易被忽视。因此,很少有好的机器学习算法教程可用。
......@@ -81,7 +81,7 @@
在这篇文章中,您发现了从零开始实现机器学习算法的好处,以及它可以提供的复杂算法的信心和主人翁意识。
您发现了这种方法的局限性,以及在教科书和研究论文可以实之前研究,提炼和总结算法需要多长时间。
您发现了这种方法的局限性,以及在教科书和研究论文可以实之前研究,提炼和总结算法需要多长时间。
最后,您发现了一个简短的方法是遵循机器学习算法教程,该教程向您展示如何从零开始实现算法并为您提供优势并使您不必进行研究。
......
......@@ -90,7 +90,7 @@ one-pager将各种问题类型列为组,以及Azure在每个组中支持的算
通过精心设计的问题测试工具,选择哪种算法和要设置的参数值成为计算机要弄清楚的组合问题,而不是数据科学家。事实上,就像在A / B测试中的直觉一样,算法选择是有偏见的,可能会使表现严重下降。
这是机器学习的现场检查方法,并且由于强大的系统测试方法(如交叉验证)以及廉价和丰富的计算,因此只能实大量算法。
这是机器学习的现场检查方法,并且由于强大的系统测试方法(如交叉验证)以及廉价和丰富的计算,因此只能实大量算法。
您最喜欢的机器学习算法在您之前没有参与的问题上表现良好的几率是多少?不是很好([,除非你使用随机森林!](http://machinelearningmastery.com/use-random-forest-testing-179-classifiers-121-datasets/) - 我在开玩笑)。
......
......@@ -14,7 +14,7 @@
* 如何使用学习的CART模型对看不见的数据做出预测。
* 您可以使用其他资源来了解有关CART和相关算法的更多信息。
如果你已经采用了算法和数据结构课程,那么可能很难阻止你实现这个简单而强大的算法。从那里开始,您距离自己实的随机森林只有一小步之遥。
如果你已经采用了算法和数据结构课程,那么可能很难阻止你实现这个简单而强大的算法。从那里开始,您距离自己实的随机森林只有一小步之遥。
让我们开始吧。
......
......@@ -7,7 +7,7 @@
停止。
您是否正在实机器学习算法?
您是否正在实机器学习算法?
为什么?
......@@ -23,10 +23,10 @@
![Don't Implement Machine Learning Algorithms](img/7e0b20781e6e1d8d803f468aebe287bd.jpg)
不要实机器学习算法
不要实机器学习算法
[kirandulo](https://www.flickr.com/photos/kirandulo/16555448595/) ,保留一些权利。
## 抓住了实陷阱
## 抓住了实陷阱
这是我收到的电子邮件的片段:
......@@ -89,7 +89,7 @@
它可能需要专门的缓存知识才能充分利用您的硬件。
在你得到“ _hello world_ ”实现工作之后,这些并不是特殊的技巧。这些是包含算法实项目的工程挑战。
在你得到“ _hello world_ ”实现工作之后,这些并不是特殊的技巧。这些是包含算法实项目的工程挑战。
### 正确的算法
......@@ -103,13 +103,13 @@
这不仅仅是单元测试的问题,而是要深入了解该技术并设计案例来证明实现符合预期并处理边缘情况。
## 使用现成的实
## 使用现成的实
你可能是一名优秀的工程师。
但是,与现成的实现相比,你的“ _hello world_ ”算法的实现可能不会削减它。
您的实现可能基于教科书描述,这意味着它将是朴素和缓慢的。您可能有也可能没有专业知识来设计测试以确保实的正确性。
您的实现可能基于教科书描述,这意味着它将是朴素和缓慢的。您可能有也可能没有专业知识来设计测试以确保实的正确性。
开源库中的现成实现是为了速度和/或稳健性而构建的。
......@@ -127,9 +127,9 @@
通用目的库通常以某种速度为代价而更加强大。
黑客工程师的照明快速实经常遭受糟糕的文档记录,并且在满足他们的期望时非常迂腐。
黑客工程师的照明快速实经常遭受糟糕的文档记录,并且在满足他们的期望时非常迂腐。
选择实时请考虑这一点。
选择实时请考虑这一点。
### 建议
......@@ -141,7 +141,7 @@
这些只是我的建议,还有更多的机器学习平台可供选择。
## 有时你必须实
## 有时你必须实
在开始机器学习时,您不必实现机器学习算法。
......@@ -163,7 +163,7 @@
您不必通过实现机器学习算法**启动**。通过在实现机器学习算法之前学习如何使用机器学习算法,您将更快地建立机器学习的信心和技能。
完成实施所需的实施和任何研究将改善您的理解。在下次使用该算法时,可以帮助您获得更好的结果。
完成实现所需的实现和任何研究将改善您的理解。在下次使用该算法时,可以帮助您获得更好的结果。
## 摘要
......@@ -181,5 +181,5 @@ _在评论中分享您的经验。_
### 进一步阅读
* [程序员在机器学习中开始犯下的错误](http://machinelearningmastery.com/mistakes-programmers-make-when-starting-in-machine-learning/)
* [从零开始实施机器学习算法](http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/)
* [从零开始实施机器学习算法的好处](http://machinelearningmastery.com/benefits-of-implementing-machine-learning-algorithms-from-scratch/)
\ No newline at end of file
* [从零开始实现机器学习算法](http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/)
* [从零开始实现机器学习算法的好处](http://machinelearningmastery.com/benefits-of-implementing-machine-learning-algorithms-from-scratch/)
\ No newline at end of file
......@@ -10,21 +10,21 @@ Edward在创建这个库时实现了很多算法,最近我和他联系并询
[![Implement Machine Learning Algorithms from Scratch](img/ee2d2be174f6f3355360894c7cc4cd86.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/10/Implement-Machine-Learning-Algorithms-from-Scratch.jpg)
从零开始实机器学习算法
从零开始实机器学习算法
[hackNY.org](http://www.flickr.com/photos/hackny/7036401939) ,保留一些权利
## 不要阅读其他人民源代码
至少,不是最初的。
是什么让我问爱德华有关他从零开始实施机器学习算法的建议的问题是他对Reddit问题的评论,题目是“[实施机器学习算法](http://www.reddit.com/r/MachineLearning/comments/2h94uj/implementing_machine_learning_algorithms/)”。
是什么让我问爱德华有关他从零开始实现机器学习算法的建议的问题是他对Reddit问题的评论,题目是“[实现机器学习算法](http://www.reddit.com/r/MachineLearning/comments/2h94uj/implementing_machine_learning_algorithms/)”。
[他的评论](http://www.reddit.com/r/MachineLearning/comments/2h94uj/implementing_machine_learning_algorithms/ckqrn1t)中,Edward建议初学者尽可能避免查看其他开源实现的源代码。他知道这与大多数建议相反([甚至是我自己的](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/ "How to Implement a Machine Learning Algorithm")),它确实引起了我的注意。
Edward开始建议在实现机器学习算法时有两个完全不同的任务:
1. ******熟知算法**。这些在许多论文,书籍,网站讲义等中都有很好的描述。你有很多来源,他们的算法比较直接,他们是自我教育的好案例研究。
2. **从论文**施算法。这些算法在文献中具有有限和稀疏的描述,并且需要大量的工作和先前的知识来理解和实施
1. ******熟知算法**。这些在许多论文,书籍,网站讲义等中都有很好的描述。你有很多来源,他们的算法比较直接,他们是自我教育的好案例研究。
2. **从论文**现算法。这些算法在文献中具有有限和稀疏的描述,并且需要大量的工作和先前的知识来理解和实现
## 获取免费算法思维导图
......@@ -56,7 +56,7 @@ Edward开始建议在实现机器学习算法时有两个完全不同的任务
Edward建议如果你没有首先实现众所周知的算法,那么从纸上实现机器学习算法是一个很大的进步,如上所述。
根据Edwards的评论,您可以从零开始实学习机器学习算法的过程。我对该过程的解释如下所示:
根据Edwards的评论,您可以从零开始实学习机器学习算法的过程。我对该过程的解释如下所示:
1. 从零开始实现算法。
2. 将表现与现成的实现进行比较。
......@@ -69,7 +69,7 @@ Edward建议如果你没有首先实现众所周知的算法,那么从纸上
## 给初学者的建议
在通过电子邮件进行一些讨论后,爱德华扩展了他的评论并在一篇题为“[初学者关于学习实ML算法的建议](http://jsatml.blogspot.com.au/2014/10/beginner-advice-on-learning-to.html)”的博客文章中写下了他的想法。
在通过电子邮件进行一些讨论后,爱德华扩展了他的评论并在一篇题为“[初学者关于学习实ML算法的建议](http://jsatml.blogspot.com.au/2014/10/beginner-advice-on-learning-to.html)”的博客文章中写下了他的想法。
这是一篇很棒的文章。在其中,他提出了三个关键问题:如何从零开始实现机器学习算法,为初学者提供常见陷阱以及可能有用的资源。
......
......@@ -4,7 +4,7 @@
优化是机器学习的重要组成部分。几乎每种机器学习算法都有一个优化算法。
在这篇文章中,您将发现一个简单的优化算法,您可以将其与任何机器学习算法一起使用。它易于理解且易于实。阅读这篇文章后你会知道:
在这篇文章中,您将发现一个简单的优化算法,您可以将其与任何机器学习算法一起使用。它易于理解且易于实。阅读这篇文章后你会知道:
* 什么是梯度下降?
* 如何在线性回归等算法中使用梯度下降?
......
......@@ -36,23 +36,23 @@
列出的三个技能示例包括:
* **掌握**:算法的实现是掌握算法的第一步。实时,您必须非常了解算法。您还可以创建自己的实验室进行修补,以帮助您内化其执行的计算,例如通过调试和添加评估运行过程的措施。
* **生产系统**:生产系统通常需要自定义算法实现,因为出于效率和效率的原因需要对算法进行更改。更好,更快,更少资源的结果最终可以降低成本并增加业务收入,手动实算法可帮助您训练提供这些解决方案的技能。
* **文献综述**:在实算法时,您正在进行研究。您被迫查找并阅读该算法的多个规范和正式描述。您还可能找到并编写代码审查算法的其他实现,以确认您的理解。您正在进行有针对性的研究,并学习如何阅读和实际使用研究出版物。
* **掌握**:算法的实现是掌握算法的第一步。实时,您必须非常了解算法。您还可以创建自己的实验室进行修补,以帮助您内化其执行的计算,例如通过调试和添加评估运行过程的措施。
* **生产系统**:生产系统通常需要自定义算法实现,因为出于效率和效率的原因需要对算法进行更改。更好,更快,更少资源的结果最终可以降低成本并增加业务收入,手动实算法可帮助您训练提供这些解决方案的技能。
* **文献综述**:在实算法时,您正在进行研究。您被迫查找并阅读该算法的多个规范和正式描述。您还可能找到并编写代码审查算法的其他实现,以确认您的理解。您正在进行有针对性的研究,并学习如何阅读和实际使用研究出版物。
## 处理
您可以通过一个过程来加速您从零开始学习和实施机器学习算法的能力。您实施的算法越多,您获得的算法就越快,效率越高,您开发和定制自己的流程的次数就越多。
您可以通过一个过程来加速您从零开始学习和实现机器学习算法的能力。您实现的算法越多,您获得的算法就越快,效率越高,您开发和定制自己的流程的次数就越多。
[![Implement a Machine Leaning Algorithm](img/fad376caf6ed09f82aae89068f0c3fc3.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/01/Implement-a-Machine-Leaning-Algorithm.jpg)
机器学习算法
机器学习算法
照片由Nic的事件,保留一些权利
您可以使用下面概述的流程。
1. **选择编程语言**:选择要用于实现的编程语言。此决定可能会影响您可以在实现中使用的API和标准库。
2. **选择算法**:选择要从零开始实的算法。要尽可能具体。这不仅意味着算法的类和类型,还包括选择要实现的特定描述或实现。
2. **选择算法**:选择要从零开始实的算法。要尽可能具体。这不仅意味着算法的类和类型,还包括选择要实现的特定描述或实现。
3. **选择问题:**选择可用于测试和验证算法实现的规范问题或一组问题。机器学习算法不是孤立存在的。
4. **研究算法**:找到论文,书籍,网站,库以及您可以阅读和学习的算法的任何其他描述。虽然,理想情况下,您希望对算法的一个关键字描述起作用,但您需要对算法有多个透视图。这很有用,因为多个视角将帮助您更快地内化算法描述,并克服描述中出现的任何歧义或假设的障碍(算法描述中总是存在歧义)。
5. **单元测试**:为每个函数编写单元测试,甚至从项目开始就考虑测试驱动开发,这样在实现它们之前,您不得不了解每个代码单元的目的和期望。
......@@ -66,7 +66,7 @@
实现算法后,您可以探索对实现进行改进。您可以探索的一些改进示例包括:
* **实验**:您可以将您在算法实现中做出的许多微观决策暴露为参数,并对这些参数的变化进行研究。这可以为您提供可以共享和推广的算法实现的新见解和消歧。
* **优化**:您可以通过使用工具,库,不同语言,不同数据结构,模式和内部算法来探索提高实效率的机会。您对经典计算机科学的算法和数据结构的了解对此类工作非常有益。
* **优化**:您可以通过使用工具,库,不同语言,不同数据结构,模式和内部算法来探索提高实效率的机会。您对经典计算机科学的算法和数据结构的了解对此类工作非常有益。
* **专业化**:您可以探索使算法更具体针对问题的方法。创建生产系统时可能需要这样做,这是一项宝贵的技能。使算法更具体问题还可以导致效率(例如运行时间)和功效(例如准确度或其他表现测量)的增加。
* **泛化**:可以通过使特定算法更通用来创建机会。程序员(如数学家)在抽象方面具有独特的技能,您可以看到该算法如何完全应用于一类问题或其他问题的更一般情况。
......@@ -74,7 +74,7 @@
您可以通过手动实现机器学习算法来学习很多东西,但也要记住一些缺点。
* **冗余**:许多算法已经实现了,一些非常强大的实现已被全球数百或数千名研究人员和从业者使用。您的实可能被视为多余的,社区已投入的重复工作。
* **冗余**:许多算法已经实现了,一些非常强大的实现已被全球数百或数千名研究人员和从业者使用。您的实可能被视为多余的,社区已投入的重复工作。
* **Bugs** :即使是熟练的程序员和单元测试,用户很少的新代码也更容易出错。使用标准库可以降低算法实现中出现错误的可能性。
* **非直观的飞跃**:由于涉及复杂的数学,一些算法依赖于推理或逻辑中的非直观跳跃。不理解这些跳跃的实现是有限的,甚至是不正确的。
......@@ -94,4 +94,4 @@
在这篇文章中,您了解了手动实现机器学习算法的好处。您了解到,通过遵循此路径,您可以了解算法,进行改进并训练宝贵的技能。
您学习了一个简单的过程,您可以在从零开始实施多个算法时遵循和自定义,并且您学习了三种算法,您可以选择这些算法作为从零开始实施的第一个算法。
\ No newline at end of file
您学习了一个简单的过程,您可以在从零开始实现多个算法时遵循和自定义,并且您学习了三种算法,您可以选择这些算法作为从零开始实现的第一个算法。
\ No newline at end of file
......@@ -23,7 +23,7 @@
机器学习算法不仅依赖于数据,而且还具有自适应性。通常,给定机器学习算法的核心是随机的优化过程,这意味着它具有随机性的元素。因此,这使得机器学习算法更难以分析并且难以对最佳和最差表现做出判断。
您需要应用,实或深入思考算法以理解它们。
您需要应用,实或深入思考算法以理解它们。
您可以描述算法如何作为数学秘籍,但要理解它在实践中的行为,您必须在行动中研究它。您可以对算法进行实验,将其应用于许多问题并提炼出它的行为以及如何在面对不同的问题类型时公开和利用这些行为。
......@@ -110,15 +110,15 @@
* 问答网站,如Cross Validated和其他机器学习社区网站。
* 应用会议论文。
### 5.实来源
### 5.实来源
您可能对研究算法感兴趣,因为您想要实现它。除了上面列出的其他来源之外,您还应该参考实源。
您可能对研究算法感兴趣,因为您想要实现它。除了上面列出的其他来源之外,您还应该参考实源。
这些是由专家或半专家准备的资源,这些资源在库和工具中提供机器学习算法的实现。样本可以在许可或开源许可下发布,供您学习。
这些来源很好地了解了如何将给定的机器学习算法转换为可执行和可用的系统。
来源的示例包括:
来源的示例包括:
* 开源项目,如库和工具。
* 相关机器学习博客上的帖子。
......
......@@ -71,7 +71,7 @@
有关我使用的模板的更多信息,请查看帖子“[如何学习机器学习算法](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/ "How to Learn a Machine Learning Algorithm")”。
## 4.实机器学习算法
## 4.实机器学习算法
实现机器学习算法是了解算法如何工作的一种很好的方法。
......@@ -79,13 +79,13 @@
通过自己实现算法,您将感受到如何自定义算法并选择要公开的内容以及要修复的决策点。
从零开始实算法将帮助您理解算法的数学描述和扩展。这听起来可能违反直觉。数学描述是理想化的,并且通常提供算法内给定过程的快照描述。一旦将它们转换为代码,这些描述的含义可能会更加明显。
从零开始实算法将帮助您理解算法的数学描述和扩展。这听起来可能违反直觉。数学描述是理想化的,并且通常提供算法内给定过程的快照描述。一旦将它们转换为代码,这些描述的含义可能会更加明显。
您可以利用算法的教程和开源实现来帮助您完成这些困难的部分。
请注意,算法的“_我的第一个实现_”将比您在机器学习工具或库中找到的生产级实现更不可扩展且更脆弱。
看看我的[教程,在Python](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/ "Tutorial To Implement k-Nearest Neighbors in Python From Scratch") 中从零开始实现k-最近邻居。
看看我的[教程,在Python](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/ "Tutorial To Implement K 最近邻 in Python From Scratch") 中从零开始实现k-最近邻居。
您可能也对我的帖子“[如何实现机器学习算法](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/ "How to Implement a Machine Learning Algorithm")”感兴趣。
......
......@@ -19,7 +19,7 @@
![How To Implement Baseline Machine Learning Algorithms From Scratch With Python](img/a6eef0a4a1a40fdd7d4ea80ebe51c609.jpg)
如何使用Python从零开始实基线机器学习算法
如何使用Python从零开始实基线机器学习算法
照片由 [Vanesser III](https://www.flickr.com/photos/hapinachu/13767713/) ,保留一些权利。
## 描述
......
......@@ -25,7 +25,7 @@
![How To Implement The Decision Tree Algorithm From Scratch In Python](img/6ae5db916a10295dfba3cc0aaba924b8.jpg)
如何在Python中从零开始实决策树算法
如何在Python中从零开始实决策树算法
[Martin Cathrae](https://www.flickr.com/photos/suckamc/4325870801/) 的照片,保留一些权利。
## 说明
......@@ -94,7 +94,7 @@ CART模型的表示是二叉树。这是来自算法和数据结构的相同二
4. 做一个预测。
5. 钞票案例研究。
这些步骤将为您提供从零开始实CART算法所需的基础,并将其应用于您自己的预测建模问题。
这些步骤将为您提供从零开始实CART算法所需的基础,并将其应用于您自己的预测建模问题。
### 基尼系数
......@@ -935,8 +935,8 @@ Mean Accuracy: 97.299%
本节列出了您可能希望探索的本教程的扩展。
* **算法调整**。未调整CART在Bank Note数据集中的应用。尝试使用不同的参数值,看看是否可以获得更好的表现。
* **交叉熵**。用于评估分裂的另一个成本函数是交叉熵(logloss)。您可以实和试验此替代成本函数。
* **树修剪**。减少训练数据集过拟合的一项重要技术是修剪树木。调查并实树修剪方法。
* **交叉熵**。用于评估分裂的另一个成本函数是交叉熵(logloss)。您可以实和试验此替代成本函数。
* **树修剪**。减少训练数据集过拟合的一项重要技术是修剪树木。调查并实树修剪方法。
* **分类数据集**。该示例设计用于具有数字或序数输入属性的输入数据,尝试分类输入数据和可能使用相等而不是排名的拆分。
* **回归**。使用不同的成本函数和方法调整树以进行回归以创建终端节点。
* **更多数据集**。将算法应用于UCI机器学习库中的更多数据集。
......
......@@ -30,7 +30,7 @@
### 学习向量量化
学习向量量化(LVQ)算法很像k-Nearest Neighbors
学习向量量化(LVQ)算法很像K 最近邻
通过在模式库中找到最佳匹配来做出预测。不同之处在于,模式库是从训练数据中学习的,而不是使用训练模式本身。
......@@ -38,7 +38,7 @@
学习算法一次显示一个训练记录,在码本向量中找到最佳匹配单元,如果它们具有相同的类,则将其移动到更接近训练记录,或者如果它们具有不同的类,则更远离训练记录。
一旦准备好,码本向量用于使用k-Nearest Neighbors算法做出预测,其中k = 1。
一旦准备好,码本向量用于使用K 最近邻算法做出预测,其中k = 1。
该算法是为分类预测建模问题而开发的,但可以适用于回归问题。
......
......@@ -98,7 +98,7 @@ b = b - learning_rate * error * x
2. 估计系数。
3. 葡萄酒质量预测。
这将为您自己的预测建模问题提供实和应用具有随机梯度下降的线性回归所需的基础。
这将为您自己的预测建模问题提供实和应用具有随机梯度下降的线性回归所需的基础。
### 1.做出预测
......@@ -177,7 +177,7 @@ Expected=2.000, Predicted=2.800
Expected=5.000, Predicted=4.400
```
现在我们准备实随机梯度下降来优化我们的系数值。
现在我们准备实随机梯度下降来优化我们的系数值。
### 2.估计系数
......
......@@ -103,7 +103,7 @@ Pima Indians数据集涉及在皮马印第安人中预测5年内糖尿病的发
2. 估计系数。
3. 糖尿病预测。
这将为您自己的预测建模问题提供实和应用具有随机梯度下降的逻辑回归所需的基础。
这将为您自己的预测建模问题提供实和应用具有随机梯度下降的逻辑回归所需的基础。
### 1.做出预测
......@@ -205,7 +205,7 @@ Expected=1.000, Predicted=0.999 [1]
Expected=1.000, Predicted=0.905 [1]
```
现在我们准备实随机梯度下降来优化我们的系数值。
现在我们准备实随机梯度下降来优化我们的系数值。
### 2.估计系数
......
......@@ -408,7 +408,7 @@ RMSE值总是略高于MSE值,随着预测误差的增加,MSE值变得更加
* ROC曲线下的面积或分类的AUC。
* 拟合优度或R ^ 2(R平方)用于回归。
**您是否实了这些扩展?**
**您是否实了这些扩展?**
在下面的评论中分享您的经验。
## 评论
......
......@@ -92,7 +92,7 @@ w = w + learning_rate * (expected - predicted) * x
2. 训练网络权重。
3. 声纳数据集建模。
这些步骤将为您提供实Perceptron算法并将其应用于您自己的分类预测建模问题的基础。
这些步骤将为您提供实Perceptron算法并将其应用于您自己的分类预测建模问题的基础。
### 1.做出预测
......@@ -185,7 +185,7 @@ Expected=1, Predicted=1
Expected=1, Predicted=1
```
现在我们准备实随机梯度下降来优化我们的重量值。
现在我们准备实随机梯度下降来优化我们的重量值。
### 2.训练网络权重
......
......@@ -12,7 +12,7 @@
完成本教程后,您将了解:
* 如何实训练并测试您的数据分割。
* 如何实训练并测试您的数据分割。
* 如何实现数据的k折交叉验证拆分。
让我们开始吧。
......@@ -250,7 +250,7 @@ print(folds)
* **LOOCV或Leave One Out Cross Validation** 。这是k折交叉验证的一种形式,其中k的值固定为n(训练样本的数量)。
* **分层**。在分类问题中,这是每组中类值的平衡被迫与原始数据集匹配的地方。
你实了扩展吗?
你实了扩展吗?
在下面的评论中分享您的经历。
## 评论
......@@ -259,7 +259,7 @@ print(folds)
具体来说,你学到了:
* 如何实训练和测试分割方法。
* 如何实训练和测试分割方法。
* 如何实现k-fold交叉验证方法。
* 何时使用每种方法。
......
......@@ -31,7 +31,7 @@
### 叠加泛化算法
堆叠泛化或堆叠是一种集算法,其中训练新模型以组合来自已经训练的两个或更多模型或您的数据集的预测。
堆叠泛化或堆叠是一种集算法,其中训练新模型以组合来自已经训练的两个或更多模型或您的数据集的预测。
来自现有模型或子模型的预测使用新模型组合,并且因为这种堆叠通常被称为混合,因为来自子模型的预测被混合在一起。
......@@ -73,7 +73,7 @@
这部分分为3个部分:
1. 子模型#1:k-Nearest Neighbors
1. 子模型#1:K 最近邻
2. 子模型#2:感知机。
3. 聚合器模型:逻辑回归。
......@@ -81,7 +81,7 @@
#### 1.1子模型#1:k-最近邻居
k-Nearest Neighbors算法或kNN使用整个训练数据集作为模型。
K 最近邻算法或kNN使用整个训练数据集作为模型。
因此,训练模型涉及保留训练数据集。下面是一个名为 **knn_model()**的函数。
......@@ -200,7 +200,7 @@ def logistic_regression_model(train, l_rate=0.01, n_epoch=5000):
可以根据子模型的预测构建新的训练数据集,如下所示:
* 每行代表训练数据集中的一行。
* 第一列包含由第一个子模型制作的训练数据集中每一行的预测,例如k-Nearest Neighbors
* 第一列包含由第一个子模型制作的训练数据集中每一行的预测,例如K 最近邻
* 第二列包含由第二个子模型制作的训练数据集中每一行的预测,例如Perceptron算法。
* 第三列包含训练数据集中行的预期输出值。
......@@ -267,7 +267,7 @@ def to_stacked_row(models, predict_list, row):
我们将使用k-fold交叉验证来估计学习模型在看不见的数据上的表现。这意味着我们将构建和评估k模型并将表现估计为平均模型误差。分类精度将用于评估模型。这些行为在 **cross_validation_split()****accuracy_metric()****evaluate_algorithm()**辅助函数中提供。
我们将使用上面实现的k-Nearest Neighbors,Perceptron和逻辑回归算法。我们还将使用我们的技术来创建上一步中定义的新堆叠数据集。
我们将使用上面实现的K 最近邻,Perceptron和逻辑回归算法。我们还将使用我们的技术来创建上一步中定义的新堆叠数据集。
开发了新的函数名 **stacking()**。这个功能做了4件事:
......@@ -482,7 +482,7 @@ Mean Accuracy: 74.879%
本节列出了您可能有兴趣探索的本教程的扩展。
* **调谐算法**。本教程中用于子模型和聚合模型的算法未经过调整。探索备用配置,看看是否可以进一步提升表现。
* **预测相关性**。如果子模型的预测相关性较弱,则堆叠效果更好。实计算以估计子模型的预测之间的相关性。
* **预测相关性**。如果子模型的预测相关性较弱,则堆叠效果更好。实计算以估计子模型的预测之间的相关性。
* **不同的子模型**。使用堆叠过程实现更多和不同的子模型。
* **不同的聚合模型**。尝试使用更简单的模型(如平均和投票)和更复杂的聚合模型来查看是否可以提高表现。
* **更多数据集**。将堆叠应用于UCI机器学习库中的更多数据集。
......
# K-Nearest Neighbors for Machine Learning
# 机器学习中的 K 最近邻
> 原文: [https://machinelearningmastery.com/k-nearest-neighbors-for-machine-learning/](https://machinelearningmastery.com/k-nearest-neighbors-for-machine-learning/)
在这篇文章中,您将发现用于分类和回归的k-Nearest Neighbors(KNN)算法。阅读这篇文章后你会知道的。
在这篇文章中,您将发现用于分类和回归的K 最近邻(KNN)算法。阅读这篇文章后你会知道的。
* KNN使用的模型表示。
* 如何使用KNN学习模型(暗示,不是)。
......@@ -15,9 +15,9 @@
让我们开始吧。
![K-Nearest Neighbors for Machine Learning](img/59dba4b611cf5b92ccc9d47703a27bb8.jpg)
![K 最近邻 for Machine Learning](img/59dba4b611cf5b92ccc9d47703a27bb8.jpg)
K-Nearest Neighbors for Machine Learning
K 最近邻 for Machine Learning
照片由 [Valentin Ottone](https://www.flickr.com/photos/saneboy/3050001226/) 保留,保留一些权利。
## KNN模型表示
......@@ -121,7 +121,7 @@ KNN适用于少量输入变量(p),但在输入数量非常大时会遇到
3. [做数据科学:从前线直接谈话](http://www.amazon.com/dp/1449358659?tag=inspiredalgor-20),第71页
4. [机器学习](http://www.amazon.com/dp/0070428077?tag=inspiredalgor-20),第8章
还可以在维基百科上查看 [K-Nearest Neighbors](https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm)
还可以在维基百科上查看 [K 最近邻](https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm)
## 摘要
......
# 学习机器学习的向量量化
# 学习机器学习的向量量化
> 原文: [https://machinelearningmastery.com/learning-vector-quantization-for-machine-learning/](https://machinelearningmastery.com/learning-vector-quantization-for-machine-learning/)
K-Nearest Neighbors的缺点是你需要坚持整个训练数据集。
K 最近邻的缺点是你需要坚持整个训练数据集。
学习向量量化算法(或简称LVQ)是一种人工神经网络算法,可让您选择要挂起的训练实例数,并准确了解这些实例的外观。
......@@ -49,7 +49,7 @@ LVQ已经开发出来并且最好被理解为分类算法。它支持二进制
## 使用LVQ模型做出预测
使用LVQ码本向量以与K-Nearest Neighbors相同的方式做出预测。
使用LVQ码本向量以与K 最近邻相同的方式做出预测。
通过搜索K个最相似的实例的所有码本向量并总结那些K个实例的输出变量,对新实例(x)做出预测。对于分类,这是模式(或最常见)类值。
......@@ -97,13 +97,13 @@ learning_rate = alpha *(1 - (epoch / max_epoch))
## LVQ的数据准备
一般来说,为LVQ准备数据是一个好主意,就像为K-Nearest Neighbors准备数据一样。
一般来说,为LVQ准备数据是一个好主意,就像为K 最近邻准备数据一样。
* **分类**:LVQ是一种分类算法,适用于二进制(两类)和多分类算法。该技术已适用于回归。
* **多次通过**:LVQ的良好技术涉及在码本向量上执行训练数据集的多次传递(例如,多次学习运行)。第一个具有较高学习率来解决池码本向量,第二个以较小的学习率来微调向量。
* **多个最佳匹配**:LVQ的扩展选择多个最佳匹配单元以在学习期间进行修改,例如分别针对和远离训练样本绘制的相同类和不同类之一。其他扩展使用每个码本向量的自定义学习率。这些扩展可以改善学习过程。
* **归一化输入**:传统上,输入被归一化(重新缩放)到0到1之间的值。这是为了避免一个属性支配距离测量。如果输入数据被归一化,则可以选择码本向量的初始值作为0和1之间的随机值。
* **特征选择**:可以减少输入变量维数的特征选择可以提高方法的准确率。 LVQ在作为K-Nearest Neighbors做出预测时遭受同样的维度诅咒。
* **特征选择**:可以减少输入变量维数的特征选择可以提高方法的准确率。 LVQ在作为K 最近邻做出预测时遭受同样的维度诅咒。
## 进一步阅读
......@@ -123,7 +123,7 @@ learning_rate = alpha *(1 - (epoch / max_epoch))
在这篇文章中,您发现了LVQ算法。你了解到:
* LVQ的表示是一小部分码本向量,小于训练数据集。
* 码本向量用于使用与K-Nearest Neighbors相同的技术做出预测。
* 码本向量用于使用与K 最近邻相同的技术做出预测。
* 码本向量是从训练数据集中学习的,当它们匹配良好时将它们移近,当它们是不匹配时将它们移开。
* 码本向量是训练数据的压缩,以最好地分离类。
* 传统上,数据准备涉及将输入值标准化为0到1之间的范围。
......
# 机器学习的线性判别分析
# 机器学习的线性判别分析
> 原文: [https://machinelearningmastery.com/linear-discriminant-analysis-for-machine-learning/](https://machinelearningmastery.com/linear-discriminant-analysis-for-machine-learning/)
......
# 机器学习的线性回归
# 机器学习的线性回归
> 原文: [https://machinelearningmastery.com/linear-regression-for-machine-learning/](https://machinelearningmastery.com/linear-regression-for-machine-learning/)
......@@ -105,7 +105,7 @@ y = B0 + B1 * x
该方法将数据视为矩阵,并使用线性代数运算来估计系数的最佳值。这意味着所有数据都必须可用,并且您必须有足够的内存来适应数据并执行矩阵运算。
除非作为线性代数中的练习,否则自己实普通最小二乘法是不常见的。您更有可能在线性代数库中调用过程。此过程计算速度非常快。
除非作为线性代数中的练习,否则自己实普通最小二乘法是不常见的。您更有可能在线性代数库中调用过程。此过程计算速度非常快。
### 3.梯度下降
......
# 使用梯度下降进行机器学习的线性回归教程
# 机器学习中使用梯度下降的线性回归教程
> 原文: [https://machinelearningmastery.com/linear-regression-tutorial-using-gradient-descent-for-machine-learning/](https://machinelearningmastery.com/linear-regression-tutorial-using-gradient-descent-for-machine-learning/)
......
......@@ -322,7 +322,7 @@ Loaded data file iris.csv with 150 rows and 5 columns
考虑到从问题到问题可能需要的各种数据清理和转换,数据加载可能是一项困难的任务。
您可以进行许多扩展,以使这些示例对新的和不同的数据文件更加健壮。以下是您可以考虑自己研究和实的一些想法:
您可以进行许多扩展,以使这些示例对新的和不同的数据文件更加健壮。以下是您可以考虑自己研究和实的一些想法:
* 检测并删除文件顶部或底部的空行。
* 检测并处理列中的缺失值。
......
# 机器学习的逻辑回归
# 机器学习的逻辑回归
> 原文: [https://machinelearningmastery.com/logistic-regression-for-machine-learning/](https://machinelearningmastery.com/logistic-regression-for-machine-learning/)
......
# 机器学习的逻辑回归教程
# 机器学习的逻辑回归教程
> 原文: [https://machinelearningmastery.com/logistic-regression-tutorial-for-machine-learning/](https://machinelearningmastery.com/logistic-regression-tutorial-for-machine-learning/)
......
......@@ -34,7 +34,7 @@
您可能需要一次又一次地回到此帖子,因此您可能想要将其加入书签。
这个迷你课程分为四个部分:算法基础,线性算法,非线性算法和集算法。
这个迷你课程分为四个部分:算法基础,线性算法,非线性算法和集算法。
### 算法基础
......@@ -57,7 +57,7 @@
* **第11课**:学习向量量化
* **第12课**:支持向量机
### 集算法
### 集算法
* **第13课**:套袋和随机森林
* **第14课**:提升和AdaBoost
......@@ -131,7 +131,7 @@ Y = f(X)
方差是如果使用不同的训练数据,目标函数的估计将改变的量。目标函数是通过机器学习算法从训练数据估计的,因此我们应该期望算法具有一些方差,而不是零方差。
k-Nearest Neighbors算法是高方差算法的一个例子,而线性判别分析是低方差算法的一个例子。
K 最近邻算法是高方差算法的一个例子,而线性判别分析是低方差算法的一个例子。
任何预测建模机器学习算法的目标是实现低偏差和低方差。反过来,该算法应该实现良好的预测表现。机器学习算法的参数化通常是平衡偏差和方差的斗争。
......@@ -218,7 +218,7 @@ Naive Bayes是一种简单但令人惊讶的强大的预测建模算法。
朴素贝叶斯被称为朴素,因为它假设每个输入变量是独立的。这是一个强有力的假设,对于实际数据是不现实的,然而,该技术对于大范围的复杂问题非常有效。
## 第10课:K-Nearest Neighbors算法
## 第10课:K 最近邻算法
KNN算法非常简单且非常有效。
......@@ -234,13 +234,13 @@ KNN可能需要大量内存或空间来存储所有数据,但仅在需要预
## 第11课:学习向量量化
K-Nearest Neighbors的缺点是你需要坚持整个训练数据集。
K 最近邻的缺点是你需要坚持整个训练数据集。
学习向量量化算法(或简称LVQ)是一种人工神经网络算法,允许您选择要挂起的训练实例数量,并准确了解这些实例应该是什么样子。
LVQ的表示是码本向量的集合。这些是在开始时随机选择的,并且适于在学习算法的多次迭代中最佳地总结训练数据集。
在学习之后,可以使用码本向量来进行与K-Nearest Neighbors类似的预测。通过计算每个码本向量和新数据实例之间的距离来找到最相似的邻居(最佳匹配码本向量)。然后返回最佳匹配单元的类值或(回归情况下的实际值)作为预测。
在学习之后,可以使用码本向量来进行与K 最近邻类似的预测。通过计算每个码本向量和新数据实例之间的距离来找到最相似的邻居(最佳匹配码本向量)。然后返回最佳匹配单元的类值或(回归情况下的实际值)作为预测。
如果将数据重新缩放到相同范围(例如0到1之间),则可获得最佳结果。
......
......@@ -619,16 +619,16 @@ Split 768 rows into train=514 and test=254 rows
Accuracy: 76.3779527559%
```
## 实扩展
## 实扩展
本节为您提供了可以应用的扩展的概念,并使用您在本教程中实现的Python代码进行调查。
您已经从零开始在python中实现了自己的Gaussian Naive Bayes版本。
您可以进一步扩展实
您可以进一步扩展实
* **计算类概率**:更新示例以概括属于每个类的数据实例的概率作为比率。这可以被计算为属于一个类的数据实例的概率除以属于每个类的数据实例的概率之和。例如,A类的概率为0.02,B类的概率为0.001,属于A类的实例的可能性为(0.02 /(0.02 + 0.001))* 100,约为95.23%。
* **对数概率**:给定属性值的每个类的条件概率很小。当它们相乘时会产生非常小的值,这可能导致浮点下溢(数字太小而无法在Python中表示)。对此的常见修复是将概率的对数组合在一起。研究并实这一改进。
* **对数概率**:给定属性值的每个类的条件概率很小。当它们相乘时会产生非常小的值,这可能导致浮点下溢(数字太小而无法在Python中表示)。对此的常见修复是将概率的对数组合在一起。研究并实这一改进。
* **标称属性**:更新实现以支持名义属性。这非常相似,您可以为每个属性收集的摘要信息是每个类的类别值的比率。深入了解参考资料以获取更多信息。
* **不同的密度函数**`bernoulli`或_多项式_):我们已经看过高斯朴素贝叶斯,但你也可以看看其他分布。实现不同的分布,例如多项式,bernoulli或内核朴素贝叶斯,它们对属性值的分布和/或它们与类值的关系做出不同的假设。
......@@ -647,7 +647,7 @@ Accuracy: 76.3779527559%
### 码
本节链接到流行的机器学习库中朴素贝叶斯的开源实现。如果您正在考虑实自己的方法版本以供操作使用,请查看这些内容。
本节链接到流行的机器学习库中朴素贝叶斯的开源实现。如果您正在考虑实自己的方法版本以供操作使用,请查看这些内容。
* [Scikit-Learn中的朴素贝叶斯](https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/naive_bayes.py):在scikit-learn库中实现朴素的贝叶斯。
* [朴素贝叶斯文档](http://scikit-learn.org/stable/modules/naive_bayes.html):朴素贝叶斯的Scikit-Learn文档和示例代码
......@@ -668,7 +668,7 @@ Accuracy: 76.3779527559%
采取行动。
按照教程从零开始实施Naive Bayes。使示例适应另一个问题。遵循扩展并改进实施
按照教程从零开始实现Naive Bayes。使示例适应另一个问题。遵循扩展并改进实现
发表评论并分享您的经验。
......
# 朴素贝叶斯机器学习
# 机器学习中的朴素贝叶斯
> 原文: [https://machinelearningmastery.com/naive-bayes-for-machine-learning/](https://machinelearningmastery.com/naive-bayes-for-machine-learning/)
......
# 朴素贝叶斯机器学习教程
# 机器学习中的朴素贝叶斯教程
> 原文: [https://machinelearningmastery.com/naive-bayes-tutorial-for-machine-learning/](https://machinelearningmastery.com/naive-bayes-tutorial-for-machine-learning/)
......
# 参数化和非参数机器学习算法
# 参数化和非参数机器学习算法
> 原文: [https://machinelearningmastery.com/parametric-and-nonparametric-machine-learning-algorithms/](https://machinelearningmastery.com/parametric-and-nonparametric-machine-learning-algorithms/)
......
......@@ -492,7 +492,7 @@ Loaded data file pima-indians-diabetes.csv with 768 rows and 9 columns
可能尚不清楚需要提前进行哪些转换。试验和错误以及探索性数据分析(图表和统计数据)的组合可以帮助梳理出可行的方法。
以下是您可能需要考虑研究和实的一些其他变换:
以下是您可能需要考虑研究和实的一些其他变换:
* 允许可配置范围的标准化,例如-1到1和更多。
* 标准化,允许可配置的传播,例如平均值的1,2或更多标准偏差。
......
# 机器学习的简单线性回归教程
# 机器学习的简单线性回归教程
> 原文: [https://machinelearningmastery.com/simple-linear-regression-tutorial-for-machine-learning/](https://machinelearningmastery.com/simple-linear-regression-tutorial-for-machine-learning/)
......
# 用于机器学习的支持向量机
# 机器学习中的支持向量机
> 原文: [https://machinelearningmastery.com/support-vector-machines-for-machine-learning/](https://machinelearningmastery.com/support-vector-machines-for-machine-learning/)
......@@ -17,7 +17,7 @@
SVM是一种令人兴奋的算法,概念相对简单。这篇文章是为那些在统计学和线性代数方面很少或根本没有背景的开发人员编写的。
因此,我们将在此描述中保持高级别,并专注于具体的实问题。关于为何使用特定方程式或如何使用它们的问题未被涵盖,您可能希望深入了解更多阅读部分。
因此,我们将在此描述中保持高级别,并专注于具体的实问题。关于为何使用特定方程式或如何使用它们的问题未被涵盖,您可能希望深入了解更多阅读部分。
让我们开始吧。
......
# 在没有数学背景的情况下理解机器学习算法的5种技
# 在没有数学背景的情况下理解机器学习算法的5种技
> 原文: [https://machinelearningmastery.com/techniques-to-understand-machine-learning-algorithms-without-the-background-in-mathematics/](https://machinelearningmastery.com/techniques-to-understand-machine-learning-algorithms-without-the-background-in-mathematics/)
......@@ -124,7 +124,7 @@
2. 精算资料来源,例如首次描述算法的论文和文章。
3. 最先进的资源,描述了算法的最新扩展和实验。
4. 启发式消息来源,如机器学习竞赛,Q& A网站和会议论文的帖子。
5.源,例如工具和库的开源代码,博客文章和技术报告。
5.源,例如工具和库的开源代码,博客文章和技术报告。
您不需要成为博士研究员也不需要是机器学习算法专家。
......@@ -186,7 +186,7 @@
2. 选择要实现的算法,从容易的事情开始(参见下面的列表)。
3. 在开发时选择一个问题来测试您的实现,2D数据有利于可视化(甚至在Excel中)。
4. 研究算法并利用许多不同的信息来源(例如阅读教程,论文,其他实现等)。
5. 单元测试算法以确认您的理解并验证实
5. 单元测试算法以确认您的理解并验证实
从小处着手,建立信心。
......@@ -200,7 +200,7 @@
另见帖子:
*[从零开始实机器学习算法的好处](http://machinelearningmastery.com/benefits-of-implementing-machine-learning-algorithms-from-scratch/)
*[从零开始实机器学习算法的好处](http://machinelearningmastery.com/benefits-of-implementing-machine-learning-algorithms-from-scratch/)
*[在实现机器学习算法时不要从开源代码开始](http://machinelearningmastery.com/dont-start-with-open-source-code-when-implementing-machine-learning-algorithms/)
## 理论不仅仅适用于数学家
......
# 教程从零开始在Python中实现k-Nearest Neighbors
# 从零开始在Python中实现 K 最近邻
> 原文: [https://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/](https://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/)
k-Nearest Neighbors算法(或简称kNN)是一种易于理解和实现的算法,是您可以随意使用的强大工具。
K 最近邻算法(或简称kNN)是一种易于理解和实现的算法,是您可以随意使用的强大工具。
在本教程中,您将从零开始在Python(2.7)中实现k-Nearest Neighbors算法。实施将特定于分类问题,并将使用虹膜花分类问题进行演示。
在本教程中,您将从零开始在Python(2.7)中实现K 最近邻算法。实现将特定于分类问题,并将使用虹膜花分类问题进行演示。
本教程适合您,如果您是Python程序员,或者可以快速获取python的程序员,并且您对如何从零开始实现k-Nearest Neighbors算法感兴趣。
本教程适合您,如果您是Python程序员,或者可以快速获取python的程序员,并且您对如何从零开始实现K 最近邻算法感兴趣。
[![k-Nearest Neighbors algorithm](img/db0046e6a5d2174b405ded8fd90d8edb.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/09/k-Nearest-Neighbors-algorithm.png)
[![K 最近邻 algorithm](img/db0046e6a5d2174b405ded8fd90d8edb.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/09/k-Nearest-Neighbors-algorithm.png)
k-Nearest Neighbors algorithm
K 最近邻 algorithm
图片来自 [Wikipedia](http://en.wikipedia.org/wiki/File:Map1NN.png) ,保留所有权利
## 什么是k-Nearest Neighbors
## 什么是K 最近邻
kNN的模型是整个训练数据集。当对于看不见的数据实例需要预测时,kNN算法将在训练数据集中搜索k个最相似的实例。总结了最相似实例的预测属性,并将其作为未见实例的预测返回。
......@@ -21,7 +21,7 @@ kNN的模型是整个训练数据集。当对于看不见的数据实例需要
在回归问题的情况下,可以返回预测属性的平均值。在分类的情况下,可以返回最普遍的类别。
## k-Nearest Neighbors是如何工作的
## K 最近邻是如何工作的
kNN算法属于基于实例的竞争学习和懒惰学习算法的家族。
......@@ -55,7 +55,7 @@ kNN算法属于基于实例的竞争学习和懒惰学习算法的家族。
使用文件名“`iris.data`”将文件保存在当前工作目录中。
## 如何在Python中实现k-Nearest Neighbors
## 如何在Python中实现K 最近邻
本教程分为以下几个步骤:
......@@ -357,13 +357,13 @@ Accuracy: 98.0392156862745%
* **回归**:您可以调整实现以适应回归问题(预测实值属性)。最接近的实例的摘要可涉及取预测属性的均值或中值。
* **标准化**:当属性之间的度量单位不同时,属性可能在它们对距离度量的贡献中占主导地位。对于这些类型的问题,您需要在计算相似度之前将所有数据属性重新缩放到0-1范围内(称为规范化)。更新模型以支持数据规范化。
* **替代距离测量**:有许多可用的距离测量,如果您愿意,您甚至可以开发自己的特定于域的距离测量。实替代距离测量,例如曼哈顿距离或向量点积。
* **替代距离测量**:有许多可用的距离测量,如果您愿意,您甚至可以开发自己的特定于域的距离测量。实替代距离测量,例如曼哈顿距离或向量点积。
您可能希望探索此算法的更多扩展。另外两个想法包括支持对预测的k-最相似实例的距离加权贡献以及用于搜索类似实例的更高级的基于数据树的结构。
## 资源了解更多
本节将提供一些资源,您可以使用这些资源来了解k-Nearest Neighbors算法的更多信息,包括它的工作原理和原理以及在代码中实现它的实际问题。
本节将提供一些资源,您可以使用这些资源来了解K 最近邻算法的更多信息,包括它的工作原理和原理以及在代码中实现它的实际问题。
### 问题
......@@ -372,14 +372,14 @@ Accuracy: 98.0392156862745%
### 码
本节链接到流行的机器学习库中的kNN的开源实现。如果您正在考虑实自己的方法版本以供操作使用,请查看这些内容。
本节链接到流行的机器学习库中的kNN的开源实现。如果您正在考虑实自己的方法版本以供操作使用,请查看这些内容。
* [在scikit-learn中实现kNN](https://github.com/scikit-learn/scikit-learn/tree/master/sklearn/neighbors)
* [在Weka中实kNN](https://github.com/baron/weka/blob/master/weka/src/main/java/weka/classifiers/lazy/IBk.java) (非正式)
* [在Weka中实kNN](https://github.com/baron/weka/blob/master/weka/src/main/java/weka/classifiers/lazy/IBk.java) (非正式)
### 图书
您可能有一本或多本关于应用机器学习的书籍。本节重点介绍有关机器学习的常见应用书籍中涉及k-Nearest Neighbors的章节或章节。
您可能有一本或多本关于应用机器学习的书籍。本节重点介绍有关机器学习的常见应用书籍中涉及K 最近邻的章节或章节。
* [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,第159和350页。
* [数据挖掘:实用机器学习工具和技术,第三版(数据管理系统中的Morgan Kaufmann系列)](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20),第76,128和235页。
......
# 通过从零开始实现它们来理解机器学习算法(以及绕过坏代码的策略)
# 通过从零开始实现机器学习算法来理解它们(以及绕过坏代码的策略)
> 原文: [https://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/](https://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/)
......@@ -12,14 +12,14 @@
您还将发现这种看似完美的方法的一些局限性。
您是否已从零开始实机器学习算法以努力了解它发表评论,我很想知道您的体验。
您是否已从零开始实机器学习算法以努力了解它发表评论,我很想知道您的体验。
![Implement machine learning algorithms from scratch](img/35a8ed553b9e6fa81d80e0e3a3f35836.jpg)
从零开始实现机器学习算法!
摄影: [Tambako The Jaguar](https://www.flickr.com/photos/tambako/4283191966) ,保留一些权利。
## 从零开始实机器学习算法的好处
## 从零开始实机器学习算法的好处
我提倡从零开始实现机器学习算法的想法。
......@@ -53,7 +53,7 @@
## 可以用来实现算法的好书
我已经从零开始实了很多算法,直接来自研究论文。这可能非常困难。
我已经从零开始实了很多算法,直接来自研究论文。这可能非常困难。
遵循别人的教程是一个更温和的开始。
......@@ -66,7 +66,7 @@
* 其他人已经找到了算法以及如何将其转换为代码。
* 您可以将其用作修补和实验的已知工作起点。
一些指导您逐步实机器学习算法的优秀书籍包括:
一些指导您逐步实机器学习算法的优秀书籍包括:
### Scratch的数据科学:Joel Grus的Python的第一原理
......@@ -106,7 +106,7 @@
避免下面出现绊脚石的一些好的一般建议是在深入研究教程之前仔细检查书籍的评论(或博客文章的评论)。您希望确保代码有效并且您不会浪费时间。
另一个普遍的策略是无论如何潜入并找出不起作用的部件并自己重新实。这是强迫理解的一个很好的黑客,但它可能不适合初学者,你可能需要一个很好的技术参考。
另一个普遍的策略是无论如何潜入并找出不起作用的部件并自己重新实。这是强迫理解的一个很好的黑客,但它可能不适合初学者,你可能需要一个很好的技术参考。
无论如何,让我们从零开始学习机器学习的5个常见绊脚石:
......@@ -200,8 +200,8 @@
在本节中,我将为您提供3个快速提示,您可以使用它们来充分利用实现机器学习算法的经验。
1. **添加高级功能**。以您的工作代码示例为基础并构建它。如果教程有任何好处,它将列出扩展的想法。如果没有,你可以自己研究一下。列出算法的一些候选扩展并逐个实现它们。这将迫使您至少理解代码足以进行修改。
2. **适应另一个问题**。在不同的数据集上运行算法。修复任何问题,如果它中断。更进一步,使实适应不同的问题。如果代码示例是两级分类,则将其更新为多分类或回归。
3. **可视化算法行为**。我发现即使在今天,实时绘制算法表现和行为也是一种非常有价值的学习工具。您可以通过在测试和训练数据集上绘制迭代级别(所有算法在某种程度上迭代)精度来开始。从那里,您可以选择特定于算法的可视化,例如自组织映射的2D网格,回归中时间序列的系数,以及k-Nearest Neighbors算法的voronoi镶嵌。
2. **适应另一个问题**。在不同的数据集上运行算法。修复任何问题,如果它中断。更进一步,使实适应不同的问题。如果代码示例是两级分类,则将其更新为多分类或回归。
3. **可视化算法行为**。我发现即使在今天,实时绘制算法表现和行为也是一种非常有价值的学习工具。您可以通过在测试和训练数据集上绘制迭代级别(所有算法在某种程度上迭代)精度来开始。从那里,您可以选择特定于算法的可视化,例如自组织映射的2D网格,回归中时间序列的系数,以及K 最近邻算法的voronoi镶嵌。
我认为这些技巧将使您比教程和代码示例更进一步。
......@@ -213,11 +213,11 @@
重要的是,你已经了解了最常见的绊脚石,一些关于它们如何发生的框架,以及一些可以用来将它们变成机会的策略。
您的下一步是显而易见的:从零开始实算法。
您的下一步是显而易见的:从零开始实算法。
### 不确定从哪里开始?
从这里开始,我有一个[温和的教程,用于在Python中实现k-Nearest Neighbors](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/) 算法。
从这里开始,我有一个[温和的教程,用于在Python中实现K 最近邻](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/) 算法。
### 仍然不确定?
......@@ -225,4 +225,4 @@
### 分享您的经验
发表评论并让我了解您从零开始实施机器学习算法的经验。
\ No newline at end of file
发表评论并让我了解您从零开始实现机器学习算法的经验。
\ No newline at end of file
......@@ -12,7 +12,7 @@
![Why Implement a Machine Learning Algorithm From Scratch](img/eb1a35be0f1f24f7f32e26c4fcfc220f.jpg)
为什么从零开始实机器学习算法
为什么从零开始实机器学习算法
照片由 [psyberartist](https://www.flickr.com/photos/psyberartist/3518056742/) ,保留一些权利。
## (重新)实现算法的两个主要原因
......@@ -20,9 +20,9 @@
我认为所有的答案都可以分解为两个阵营:
1. **自学**,其中算法被实现为学习练习。
2. **操作要求**,其中实了一种算法以满足生产系统的需求。
2. **操作要求**,其中实了一种算法以满足生产系统的需求。
## 实自学算法
## 实自学算法
[Charles Gee](http://qr.ae/RgpWsi) 从自学角度给出了很好的答案。他评论道:
......@@ -39,7 +39,7 @@ Charles描述了4种不同的用例,从零开始实现机器学习算法是非
[Xavier Amatriain](http://qr.ae/RgpWnT) 在他的回答中关注这个话题。他评论道:
> 首先我要说的是,我确实认为任何团队都应该默认重新使用现有的实现。 ...但是,公司可能决定实自己版本的ML算法的原因也很多。
> 首先我要说的是,我确实认为任何团队都应该默认重新使用现有的实现。 ...但是,公司可能决定实自己版本的ML算法的原因也很多。
Xavier列出了实现机器学习算法的5个理由,如下所示:
......@@ -62,7 +62,7 @@ Xavier列出了实现机器学习算法的5个理由,如下所示:
关于这个主题的进一步阅读包括:
* [从零开始实机器学习算法的好处](http://machinelearningmastery.com/benefits-of-implementing-machine-learning-algorithms-from-scratch/)
* [通过从零开始实它们来理解机器学习算法(以及解决不良代码的策略)](http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/)
* [从零开始实机器学习算法的好处](http://machinelearningmastery.com/benefits-of-implementing-machine-learning-algorithms-from-scratch/)
* [通过从零开始实它们来理解机器学习算法(以及解决不良代码的策略)](http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/)
* [实现机器学习算法时不要从开源代码开始](http://machinelearningmastery.com/dont-start-with-open-source-code-when-implementing-machine-learning-algorithms/)
* [如何实现机器学习算法](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/)
\ No newline at end of file
......@@ -60,7 +60,7 @@
应用机器学习过程概述
通过对您所处理的每个问题执行此结构化流程,您可以实最低严格程度,并显着提高获得良好(或更可能是优秀)结果的可能性。
通过对您所处理的每个问题执行此结构化流程,您可以实最低严格程度,并显着提高获得良好(或更可能是优秀)结果的可能性。
## 使用 Weka Machine Learning Workbench
......
......@@ -38,7 +38,7 @@
阅读,研究甚至[从多个应用和理论来源构建您自己的算法描述](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/ "How to Learn a Machine Learning Algorithm")
[从零开始实现算法](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/ "Tutorial To Implement k-Nearest Neighbors in Python From Scratch"),以熟悉任何给定的算法实现必须使用的无数微决策。
[从零开始实现算法](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/ "Tutorial To Implement K 最近邻 in Python From Scratch"),以熟悉任何给定的算法实现必须使用的无数微决策。
试验算法。研究他们的行为以及他们的参数对他们的影响,并在多个标准问题实例中进行推广。
......
......@@ -30,7 +30,7 @@
1. 努力学习数学背景。
2. 努力学习机器学习理论。
3. 努力从零开始实算法
3. 努力从零开始实算法
4. **???** (_ 插入魔法 _)
5. 最后开始使用机器学习(**你的目标!**)。
......@@ -137,7 +137,7 @@
Wring Way Go Back
照片由 [Dallas](https://www.flickr.com/photos/begnaud/243996426/) 拍摄,保留一些权利。
## 4)不要从零开始实一切
## 4)不要从零开始实一切
你可以从[从零开始实现算法](http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/)中学到很多东西。
......@@ -171,7 +171,7 @@ Wring Way Go Back
每次想要使用它时实现所有内容都是开始机器学习的一种非常缓慢的方式。
如果您正在实学习,那么请对自己诚实,并将其与学习如何通过应用机器学习提供价值分开。
如果您正在实学习,那么请对自己诚实,并将其与学习如何通过应用机器学习提供价值分开。
## 5)不要一直改变工具
......@@ -218,7 +218,7 @@ Wring Way Go Back
1. 不要从理论开始。
2. 不要学习所有的机器学习。
3. 不要乱用算法。
4. 不要从零开始实一切。
4. 不要从零开始实一切。
5. 不要一直改变工具。
你陷入了这些陷阱吗?
......
......@@ -181,7 +181,7 @@ Process Mining,我的研究领域,与商业智能和数据挖掘领域相关
**Jason** :您已经发布了有关您的方法和源代码的详细说明 - 为什么您在描述中付出了这样的努力并免费发布代码?
好吧,我习惯写科学论文,以这种形式提出描述是有道理的。至于源代码,我认为几乎没有人会遇到实施该方法的麻烦,即使他们这样做也许他们不会采取必要的谨慎措施来确保一切都按照原先的意图实施;这可能会产生关于我的方法的报告,其结果比我用自己的代码获得的结果更糟糕。那么为什么不将源代码作为参考实现发布,就是这样。
好吧,我习惯写科学论文,以这种形式提出描述是有道理的。至于源代码,我认为几乎没有人会遇到实现该方法的麻烦,即使他们这样做也许他们不会采取必要的谨慎措施来确保一切都按照原先的意图实现;这可能会产生关于我的方法的报告,其结果比我用自己的代码获得的结果更糟糕。那么为什么不将源代码作为参考实现发布,就是这样。
**Jason** :回顾一下,您认为计算时间或计算机硬件是否会对您或您的方法产生影响?
......@@ -255,7 +255,7 @@ Process Mining,我的研究领域,与商业智能和数据挖掘领域相关
**杰森**:你尝试过哪些想法或策略没有成功?
使用绘图扩展 Bradley-Terry 模型不起作用。尽管阅读了很多关于它(其他作者的工作)并实它,尽管国际象棋结果受到抽奖的困扰,但使用 Bradley-Terry 模型并结合抽签的可能性对我来说并不适用。我认为这是因为,总而言之,我们所拥有的训练数据对于这一目的来说相对稀缺。
使用绘图扩展 Bradley-Terry 模型不起作用。尽管阅读了很多关于它(其他作者的工作)并实它,尽管国际象棋结果受到抽奖的困扰,但使用 Bradley-Terry 模型并结合抽签的可能性对我来说并不适用。我认为这是因为,总而言之,我们所拥有的训练数据对于这一目的来说相对稀缺。
**杰森**:您在准备私人交叉验证训练/测试数据集时遇到了哪些问题?
......
......@@ -95,7 +95,7 @@
您学习了一个快速的 5 步骤来扩充机器学习工具:
1. 选择要扩充的工具。
2. 确定要实的工具中的限制。
2. 确定要实的工具中的限制。
3. 以补丁,插件或包装器的形式设计扩充。
4. 使用良好的工程实践为机器学习工具构建扩充。
5. 分享您的扩充,以便其他人可以从您的工作中受益,并展示您对该工具的掌握。
......
......@@ -45,7 +45,7 @@
* 学习解决问题的逐步过程( [KDD](http://machinelearningmastery.com/what-is-data-mining-and-kdd/ "What is Data Mining and KDD")[Crisp-DM](http://en.wikipedia.org/wiki/Cross_Industry_Standard_Process_for_Data_Mining)[OSEMN](http://www.dataists.com/2010/09/a-taxonomy-of-data-science/) ,等等)。
* 学习一个现成的工具或工具链,让你重复这个过程(如 [WEKA](http://machinelearningmastery.com/how-to-run-your-first-classifier-in-weka/ "How to Run Your First Classifier in Weka")[scikit-learn](http://machinelearningmastery.com/a-gentle-introduction-to-scikit-learn-a-python-machine-learning-library/ "A Gentle Introduction to Scikit-Learn: A Python Machine Learning Library")[R](http://machinelearningmastery.com/what-is-r/ "What is R") )。
* 在适合内存的小型标准数据集上实该过程(如 [UCI 机器学习库](http://archive.ics.uci.edu/ml/)上的那些)。
* 在适合内存的小型标准数据集上实该过程(如 [UCI 机器学习库](http://archive.ics.uci.edu/ml/)上的那些)。
这将建立您对工作问题的信心,并解决出现的新问题。您还将开始了解算法和技能的适用位置,找出您擅长的内容以及您需要处理的内容,从而优先考虑您接下来要学习的内容。
......
......@@ -18,7 +18,7 @@
这种成熟的重点是从统计领域中大量吸取重新引用方法,并促进该领域方法的统计和概率基础。因此,机器学习 monicker 正在转向统计机器学习。
除了该领域的特性的成熟之外,该领域中使用的方法已经成熟。已经开发了强大的方法,并且在统计和概率框架中很好地理解了它们的原理。实这些方法的工具已经成熟了 10 年和 20 年,工具如 [R 统计工作台](http://www.r-project.org/)[Weka](http://www.cs.waikato.ac.nz/ml/weka/) 框架。这些方法已经并将继续进入主流。
除了该领域的特性的成熟之外,该领域中使用的方法已经成熟。已经开发了强大的方法,并且在统计和概率框架中很好地理解了它们的原理。实这些方法的工具已经成熟了 10 年和 20 年,工具如 [R 统计工作台](http://www.r-project.org/)[Weka](http://www.cs.waikato.ac.nz/ml/weka/) 框架。这些方法已经并将继续进入主流。
## 丰富的数据
......
......@@ -31,7 +31,7 @@
* **第 1 步:调整心态**(_ 相信!_)。
* **第 2 步:选择一个过程**(如何获得结果)。
* **第 3 步:选择工具**(实)。
* **第 3 步:选择工具**(实)。
* **第 4 步:实践数据集**(_ 投入工作 _)。
* **第 5 步:建立投资组合**(_ 展示你的技能 _)。
......
......@@ -81,7 +81,7 @@
我这样做是因为这是应用机器学习的基础,在这个过程中需要学习很多东西,从数据准备到算法,再到沟通结果。
更深层次的涉及专业化。例如,您可以深入了解机器学习算法。你可以[研究它们](http://machinelearningmastery.com/how-to-study-machine-learning-algorithms/ "How to Study Machine Learning Algorithms")[制作列表](http://machinelearningmastery.com/create-lists-of-machine-learning-algorithms/ "Take Control By Creating Targeted Lists of Machine Learning Algorithms")[描述它们](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/ "How to Learn a Machine Learning Algorithm")[从零开始实现它们](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/ "Tutorial To Implement k-Nearest Neighbors in Python From Scratch")。事实上,您可以潜水的深度没有限制,但您确实想要选择一个您觉得引人注目的区域。
更深层次的涉及专业化。例如,您可以深入了解机器学习算法。你可以[研究它们](http://machinelearningmastery.com/how-to-study-machine-learning-algorithms/ "How to Study Machine Learning Algorithms")[制作列表](http://machinelearningmastery.com/create-lists-of-machine-learning-algorithms/ "Take Control By Creating Targeted Lists of Machine Learning Algorithms")[描述它们](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/ "How to Learn a Machine Learning Algorithm")[从零开始实现它们](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/ "Tutorial To Implement K 最近邻 in Python From Scratch")。事实上,您可以潜水的深度没有限制,但您确实想要选择一个您觉得引人注目的区域。
我建议通过自学更深入的一般框架是我的[小项目方法](http://machinelearningmastery.com/self-study-machine-learning-projects/ "4 Self-Study Machine Learning Projects")。这是您定义一个小项目(5 到 10 个小时的努力),执行它们并共享结果,然后重复的地方。
......
......@@ -16,7 +16,7 @@
机器学习工具使应用机器学习更快,更容易,更有趣。
* **更快**:好的工具可以自动化应用机器学习过程中的每一步。这意味着从思想到结果的时间大大缩短。另一种方法是你必须自己实现每个功能。从零开始。这比选择现成的工具要花费更长的时间。
* **更容易**:您可以花时间选择好的工具,而不是研究和实施技术来实现。另一种方法是,您必须成为流程每个步骤的专家才能实施它。这需要研究,更深入的练习以理解技术,以及更高水平的工程以确保其有效实施
* **更容易**:您可以花时间选择好的工具,而不是研究和实现技术来实现。另一种方法是,您必须成为流程每个步骤的专家才能实现它。这需要研究,更深入的练习以理解技术,以及更高水平的工程以确保其有效实现
* **有趣**:初学者获得好成绩的障碍较小。您可以使用额外的时间来获得更好的结果或处理更多项目。另一种方法是,您将花费大部分时间来构建工具而不是获得结果。
### 有目的的工具
......@@ -34,7 +34,7 @@
您希望使用最佳工具来解决您正在处理的问题。如何分辨好机器学习工具和优秀机器学习工具之间的区别?
* **直观界面**:出色的机器学习工具为应用机器学习过程的子任务提供了直观的界面。在任务的界面中有一个很好的映射和适用性。
* **最佳实践**:优秀的机器学习工具体现了流程,配置和实的最佳实践。示例包括机器学习算法的自动配置和内置于工具结构中的良好过程。
* **最佳实践**:优秀的机器学习工具体现了流程,配置和实的最佳实践。示例包括机器学习算法的自动配置和内置于工具结构中的良好过程。
* **可信资源**:优秀的机器学习工具维护得很好,经常更新,并且周围有一群人。查找工具周围的活动作为正在使用的标志。
### 何时使用机器学习工具
......@@ -191,7 +191,7 @@
在这篇文章中,您发现了为什么工具在应用机器学习中如此重要。
您了解到,如果没有良好的机器学习工具,您将不得不从零开始实所有技术,这需要技术和高效工程实践方面的专业知识。
您了解到,如果没有良好的机器学习工具,您将不得不从零开始实所有技术,这需要技术和高效工程实践方面的专业知识。
您学习了三种结构化方法来考虑机器学习工具:
......
......@@ -182,7 +182,7 @@ Gartner 高级分析平台的魔力象限来自 [Gartner](http://www.gartner.com
程序员开发机器学习技能的一个好方法是使用他们现有的编程技能并从零开始实现机器学习算法。
我在博客文章“[通过实他们从零开始](http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/)了解机器学习算法”中谈论了这个方法,并提供了很好的技巧和资源。
我在博客文章“[通过实他们从零开始](http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/)了解机器学习算法”中谈论了这个方法,并提供了很好的技巧和资源。
我从博客文章中推荐的这种方法的三本书是:
......
......@@ -37,14 +37,14 @@
## 4.重塑常见问题的解决方案
成千上万的人可能已经实现了您正在实的算法,或者解决了与您正在解决的问题类似的问题类型,利用他们的经验教训。
成千上万的人可能已经实现了您正在实的算法,或者解决了与您正在解决的问题类似的问题类型,利用他们的经验教训。
有很多关于解决应用机器学习的知识。其中大部分内容可能与书籍和研究出版物有关,但您可以访问它。做好功课,搜索谷歌,谷歌图书,谷歌学术搜索,并联系机器学习社区。
如果要实现算法:
* 你必须实现它吗?您可以在库或工具中重用现有的开源算法实现吗?
* 你必须从零开始实吗?您可以编写审查,学习或移植现有的开源实现吗?
* 你必须从零开始实吗?您可以编写审查,学习或移植现有的开源实现吗?
* 您是否必须解释规范算法描述?您可以查看和学习其他书籍,论文,论文或博客文章中的算法描述吗?
[![Reinvent Solutions to Common Problems](img/5b8e562971591f84858b54cef1484eca.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/01/Reinvent-Solutions-to-Common-Problems.jpg)
......@@ -65,7 +65,7 @@
忽略算法的数学处理可能导致诸如对方法的理解有限或采用算法的有限解释之类的问题。例如,许多机器学习算法在其核心处具有逐步更新的优化。了解正在解决的优化的性质(函数是凸)允许您使用利用这些知识的有效优化算法。
内化算法的数学处理是缓慢的,并且掌握在掌握之中。特别是如果您从零开始实高级算法(包括内部优化算法),请花时间从数学角度学习算法。
内化算法的数学处理是缓慢的,并且掌握在掌握之中。特别是如果您从零开始实高级算法(包括内部优化算法),请花时间从数学角度学习算法。
## 摘要
......
......@@ -40,7 +40,7 @@
在提出一些介绍性资源后,David 继续在现场开始时提供一些实用的建议。
* **不要指望第一次得到任何东西**。 David 建议从多个不同来源阅读相同方法的描述。这与我在[算法描述模板](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/ "How to Learn a Machine Learning Algorithm")中提出的建议相同,我出于必要而提出。
* **实模型**。我同意 David 的观点,在你[自己实现它](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/ "How to Implement a Machine Learning Algorithm")并将其付诸实践之前,你无法完全理解这个模型。 David 建议将您的实现与其他实现进行比较,例如开源中的实现,并寻找并理解所使用的任何提高效率的数学或编程技巧。
* **实模型**。我同意 David 的观点,在你[自己实现它](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/ "How to Implement a Machine Learning Algorithm")并将其付诸实践之前,你无法完全理解这个模型。 David 建议将您的实现与其他实现进行比较,例如开源中的实现,并寻找并理解所使用的任何提高效率的数学或编程技巧。
* **阅读论文**。大卫讲述了一篇关于每日通勤隐藏的论文的轶事。考虑选择算法或问题,并阅读与该论文相关的主要来源。
* **挑选一张纸并在其中生活一周**。大卫建议成为一个有纸的人,并且在你熟悉它之前要思考一周。例如,他建议您填写任何派生方程的进展中的空白。我可以根据经验说话,建议你仔细挑选你的论文。我选择的文件花了我多年的时间来交流。
......
......@@ -26,9 +26,9 @@
* 当数据从原始源导出为适合给定学习方法的形式时。该过程可以是自动化和可重复的,并且导出的数据存储在与原始源分开的目录结构中。
* 当测试不同的机器学习方法时,看哪个是最适合该问题的。方法的测试可以是自动化的,因此结果是可重复的,并且如果在测试协议中发现(何时)错误,则可以重复。
* 选择并实施方法以解决复杂问题时。它可以根据问题进行定制,并实施为可测试和记录良好,以确保其满足项目的更广泛要求,包括非功能性要求,如表现验收标准和算法准确率。
* 选择并实现方法以解决复杂问题时。它可以根据问题进行定制,并实现为可测试和记录良好,以确保其满足项目的更广泛要求,包括非功能性要求,如表现验收标准和算法准确率。
## 生产水平实
## 生产水平实
一种新颖的机器学习方法通​​常由机器学习研究人员或研究人员团队提出。新颖方法通常用算法的原型或演示实现来呈现。
......
......@@ -59,7 +59,7 @@
新手已阅读一些书籍并完成了一些课程。他们知道如何驱动一些工具并编写了一堆代码来实现简单的算法和完成教程。一个中间人正在自己爆发,设计自己的项目来学习新技术,并与更大的社区进行互动和学习。
中级正在学习如何准确,有效和稳健地实和运用算法。他们还建立了预先花费大量时间处理数据,清理,总结和思考可以回答的问题类型的技能。
中级正在学习如何准确,有效和稳健地实和运用算法。他们还建立了预先花费大量时间处理数据,清理,总结和思考可以回答的问题类型的技能。
中间体的一些活动和资源是:
......
......@@ -103,14 +103,14 @@
选择要实现的适度复杂度的算法。我建议对要实现的算法进行一些详细的研究,或者选择您喜欢的实现并将其移植到您选择的目标编程语言。
从零开始实算法是了解在将算法描述转换为功能系统时必须做出的无数微决策的好方法。通过使用多种算法重复此过程,您将很快获得如何阅读研究论文和书籍中算法的数学描述的直觉。
从零开始实算法是了解在将算法描述转换为功能系统时必须做出的无数微决策的好方法。通过使用多种算法重复此过程,您将很快获得如何阅读研究论文和书籍中算法的数学描述的直觉。
![Implement a Machine Leaning Algorithm](img/4346aca8b34bc122f0f2b4e3caa907f4.jpg)
实现机器学习算法
[Nic 的事件](http://www.flickr.com/photos/nics_events/2227330536/sizes/l/),保留一些权利
从零开始实机器学习算法可能有助于您的五种策略是:
从零开始实机器学习算法可能有助于您的五种策略是:
* 从移植开始。将开源算法实现从一种语言移植到另一种语言将教会您如何实现算法并使其成为您自己的算法。这是最快的入门方式,强烈推荐。
* 选择一个算法描述来处理并收集其他算法描述以支持您消除主要参考资料的歧义
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册