提交 e93e5f14 编写于 作者: W wizardforcel

2021-12-15 23:18:27

上级 a6c76fa2
......@@ -2,9 +2,9 @@
> 原文: [https://machinelearningmastery.com/5-benefits-of-competitive-machine-learning/](https://machinelearningmastery.com/5-benefits-of-competitive-machine-learning/)
Jeremy Howard, [Kaggle](http://www.kaggle.com/) 的正式演出于2013年中期在[旧金山大学](http://www.usfca.edu/)进行了演示。在那次演讲中他谈到了机器学习比赛的一些更广泛的好处,比如那些Kaggle。
Jeremy Howard, [Kaggle](http://www.kaggle.com/) 的正式演出于 2013 年中期在[旧金山大学](http://www.usfca.edu/)进行了演示。在那次演讲中他谈到了机器学习比赛的一些更广泛的好处,比如那些 Kaggle。
在这篇文章中,你将发现我从这次演讲中提取的5分,这将激励你想要开始参加机器学习比赛
在这篇文章中,你将发现我从这次演讲中提取的 5 分,这将激励你想要开始参加机器学习比赛
[![Competitive Machine Learning is a Meritocracy](img/5dab5e85e1fd800e2906680bb1b7db51.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/08/Competitive-Machine-Learning-is-a-Meritocracy.jpg)
......@@ -13,13 +13,13 @@ Jeremy Howard, [Kaggle](http://www.kaggle.com/) 的正式演出于2013年中
## 南佛罗里达大学的大数据
霍华德的演讲名为“ [_Kaggle的Jeremy Howard在旧金山大学_](https://www.youtube.com/watch?v=OKOlO9nIHUE) 讲述大数据。标题用词不当。这次演讲主要关注霍华德的背景,他是如何进行机器学习以及简单地谈论讨人喜欢的。
霍华德的演讲名为“ [_Kaggle 的 Jeremy Howard 在旧金山大学 _](https://www.youtube.com/watch?v=OKOlO9nIHUE) 讲述大数据。标题用词不当。这次演讲主要关注霍华德的背景,他是如何进行机器学习以及简单地谈论讨人喜欢的。
霍华德有一个初创企业的背景,这个讲话很好地总结了这一背景以及他必须从那次旅程中传授的教训。
<iframe allowfullscreen="" frameborder="0" height="281" src="https://www.youtube.com/embed/OKOlO9nIHUE?feature=oembed" width="500"></iframe>
在演讲结束时,霍华德接触了Kaggle及其使命,这是激发这5点的灵感。他们是:
在演讲结束时,霍华德接触了 Kaggle 及其使命,这是激发这 5 点的灵感。他们是:
1. **Meritocracy** :状态完全基于能力。
2. **角色模型**:最佳表演者及其原创故事成为榜样。
......@@ -35,17 +35,17 @@ Jeremy Howard, [Kaggle](http://www.kaggle.com/) 的正式演出于2013年中
这样的系统是公平的,像工作场所那样存在的偏差不会影响结果。该系统也是透明的,每个人都可以访问相同的源材料(训练数据)和表现评估(排行榜)。
我们在之前的帖子中已经触及过这个问题[应用机器学习是一个Meritocracy](http://machinelearningmastery.com/applied-machine-learning-is-a-meritocracy/ "Applied Machine Learning is a Meritocracy")
我们在之前的帖子中已经触及过这个问题[应用机器学习是一个 Meritocracy](http://machinelearningmastery.com/applied-machine-learning-is-a-meritocracy/ "Applied Machine Learning is a Meritocracy")
## 2.角色模型
比赛创造了榜样。
比赛的结果表明,通常不是学术上做得好,但那些具有适应性工程思维的人使用有效的方法来获得最好的结果。具有多样化和有趣背景的人在该平台上的所有数据科学家中排名前10位或前100名。
比赛的结果表明,通常不是学术上做得好,但那些具有适应性工程思维的人使用有效的方法来获得最好的结果。具有多样化和有趣背景的人在该平台上的所有数据科学家中排名前 10 位或前 100 名。
这具有创建角色模型的效果。他们的故事是不同的,例如一年前在免费的Coursera课程中遇到过机器学习。这些有趣的故事吸引你,“_,如果他能做到,我可以做到_”。
这具有创建角色模型的效果。他们的故事是不同的,例如一年前在免费的 Coursera 课程中遇到过机器学习。这些有趣的故事吸引你,“_,如果他能做到,我可以做到 _”。
你还看到,当一位“知名”数据科学家加入竞争时,就像 [Netflix](http://en.wikipedia.org/wiki/Netflix_Prize)中的明星一样,这引起了更多的关注,“_我想打败做得好的人在Nextfix奖_中。
你还看到,当一位“知名”数据科学家加入竞争时,就像 [Netflix](http://en.wikipedia.org/wiki/Netflix_Prize)中的明星一样,这引起了更多的关注,“_ 我想打败做得好的人在 Nextfix 奖 _ 中。
## 3.推限制
......@@ -53,7 +53,7 @@ Jeremy Howard, [Kaggle](http://www.kaggle.com/) 的正式演出于2013年中
只要知道一个人知道你所做的事情,即使你已经全部给了它,也可以推动你去寻找那一条额外的信息。
排行榜的实时反馈对可以实现的结果产生心理影响。这可能会像四分一英里那样削减两种方式,直到 [Roger Bannister打破它](http://en.wikipedia.org/wiki/Four-minute_mile),证明它可以完成。
排行榜的实时反馈对可以实现的结果产生心理影响。这可能会像四分一英里那样削减两种方式,直到 [Roger Bannister 打破它](http://en.wikipedia.org/wiki/Four-minute_mile),证明它可以完成。
## 4.创新
......@@ -77,4 +77,4 @@ Jeremy Howard, [Kaggle](http://www.kaggle.com/) 的正式演出于2013年中
在这篇文章中,您发现了机器学习竞赛的五大好处。它们是:精英管理,榜样,推动极限,创新和社区。
这在机器学习方面并不新鲜,与学术会议合作已有近20年的竞争。新的是参与规模和进入门槛低。无论您的背景如何,这都是进入应用机器学习的激动人心的机会主义时刻。
\ No newline at end of file
这在机器学习方面并不新鲜,与学术会议合作已有近 20 年的竞争。新的是参与规模和进入门槛低。无论您的背景如何,这都是进入应用机器学习的激动人心的机会主义时刻。
\ No newline at end of file
......@@ -5,9 +5,9 @@
+ [作为搜索问题的应用机器学习的温和介绍](applied-machine-learning-as-a-search-problem.md)
+ [为什么应用机器学习很难](applied-machine-learning-is-hard.md)
+ [为什么我的结果不如我想的那么好?你可能过拟合了](arent-results-good-thought-youre-probably-overfitting.md)
+ [使用ROC曲线评估和比较分类器表现](assessing-comparing-classifier-performance-roc-curves-2.md)
+ [BigML评论:发现机器学习即服务平台的聪明功能](bigml-review-discover-the-clever-features-in-this-machine-learning-as-a-service-platform.md)
+ [BigML教程:开发您的第一个决策树并做出预测](bigml-tutorial-develop-your-first-decision-tree-and-make-predictions.md)
+ [使用 ROC 曲线评估和比较分类器表现](assessing-comparing-classifier-performance-roc-curves-2.md)
+ [BigML 评论:发现机器学习即服务平台的聪明功能](bigml-review-discover-the-clever-features-in-this-machine-learning-as-a-service-platform.md)
+ [BigML 教程:开发您的第一个决策树并做出预测](bigml-tutorial-develop-your-first-decision-tree-and-make-predictions.md)
+ [构建生产环境的机器学习基础设施](building-a-production-machine-learning-infrastructure.md)
+ [分类准确率不够:可以使用更多表现测量](classification-accuracy-is-not-enough-more-performance-measures-you-can-use.md)
+ [一种预测模型的巧妙应用](clever-application-of-a-predictive-model.md)
......@@ -20,7 +20,7 @@
+ [参数和超参数之间有什么区别?](difference-between-a-parameter-and-a-hyperparameter.md)
+ [测试和验证数据集之间有什么区别?](difference-test-validation-datasets.md)
+ [探索特征工程,如何设计特征以及如何获得它](discover-feature-engineering-how-to-engineer-features-and-how-to-get-good-at-it.md)
+ [如何开始使用Kaggle](get-started-with-kaggle.md)
+ [如何开始使用 Kaggle](get-started-with-kaggle.md)
+ [超越预测](going-beyond-predictions.md)
+ [如何在评估机器学习算法时选择正确的测试选项](how-to-choose-the-right-test-options-when-evaluating-machine-learning-algorithms.md)
+ [如何定义机器学习问题](how-to-define-your-machine-learning-problem.md)
......@@ -37,7 +37,7 @@
+ [如何使用机器学习结果](how-to-use-machine-learning-results.md)
+ [如何像数据科学家一样解决问题](how-to-work-through-a-problem-like-a-data-scientist.md)
+ [通过数据预处理提高模型准确率](improve-model-accuracy-with-data-pre-processing.md)
+ [处理机器学习的大数据文件的7种方法](large-data-files-machine-learning.md)
+ [处理机器学习的大数据文件的 7 种方法](large-data-files-machine-learning.md)
+ [建立机器学习系统的经验教训](lessons-learned-building-machine-learning-systems.md)
+ [如何使用机器学习清单可靠地获得准确的预测(即使您是初学者)](machine-learning-checklist.md)
+ [机器学习模型运行期间要做什么](machine-learning-model-running.md)
......@@ -49,14 +49,14 @@
+ [如何系统地规划和运行机器学习实验](plan-run-machine-learning-experiments-systematically.md)
+ [应用机器学习的过程](process-for-working-through-machine-learning-problems.md)
+ [默认情况下可重现的机器学习结果](reproducible-machine-learning-results-by-default.md)
+ [10个实践应用机器学习的标准数据集](standard-machine-learning-datasets.md)
+ [10 个实践应用机器学习的标准数据集](standard-machine-learning-datasets.md)
+ [通往最佳机器学习算法的简单三步法](steps-to-the-best-machine-learning-algorithm.md)
+ [对抗机器学习数据集中不平衡类别的8种策略](tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset.md)
+ [对抗机器学习数据集中不平衡类别的 8 种策略](tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset.md)
+ [模型表现不匹配问题(以及如何处理)](the-model-performance-mismatch-problem.md)
+ [黑盒机器学习的诱惑陷阱](the-seductive-trap-of-black-box-machine-learning.md)
+ [如何训练最终的机器学习模型](train-final-machine-learning-model.md)
+ [使用探索性数据分析了解您的问题并获得更好的结果](understand-problem-get-better-results-using-exploratory-data-analysis.md)
+ [什么是数据挖掘和KDD](what-is-data-mining-and-kdd.md)
+ [什么是数据挖掘和 KDD](what-is-data-mining-and-kdd.md)
+ [为什么在机器学习中单热编码数据?](why-one-hot-encode-data-in-machine-learning.md)
+ [为什么你应该在你的机器学习问题上采样检查算法](why-you-should-be-spot-checking-algorithms-on-your-machine-learning-problems.md)
+ [所以,你正在研究机器学习问题......](working-machine-learning-problem.md)
......@@ -72,7 +72,7 @@
例如,一旦精度停止提高,您可能希望停止训练模型。在这种情况下,训练集的准确率将继续提高,但看不见的数据的准确率开始下降。
你可能会想到自己:“_所以我会训练训练数据集并在我去_时查看测试数据集”。一个好主意,但现在测试数据集不再是看不见的数据,因为它已经涉及并影响了训练数据集。
你可能会想到自己:“_ 所以我会训练训练数据集并在我去 _ 时查看测试数据集”。一个好主意,但现在测试数据集不再是看不见的数据,因为它已经涉及并影响了训练数据集。
## 解决过拟合问题
......@@ -83,7 +83,7 @@
解决过拟合
照片由 [Adrian Fallace Design&摄影](http://www.flickr.com/photos/69187071@N02/12688141173/sizes/l/),保留一些权利。
将数据分成66%/ 34%用于测试数据集的训练是一个良好的开端。使用交叉验证更好,并且使用多次交叉验证更好。您希望花时间并在看不见的数据上获得准确的模型的最佳估计。
将数据分成 66%/ 34%用于测试数据集的训练是一个良好的开端。使用交叉验证更好,并且使用多次交叉验证更好。您希望花时间并在看不见的数据上获得准确的模型的最佳估计。
您可以通过降低模型的复杂性来提高模型的准确率。
......
......@@ -27,7 +27,7 @@
特征选择不同于降维。两种方法都试图减少数据集中的属性数量,但维度降低方法通过创建新的属性组合来实现,其中特征选择方法包括和排除数据中存在的属性而不更改它们。
维数降低方法的示例包括主成分分析,奇异值分解和Sammon映射。
维数降低方法的示例包括主成分分析,奇异值分解和 Sammon 映射。
> 功能选择本身很有用,但它主要用作过滤器,可以清除除现有功能之外无用的功能。
......@@ -43,7 +43,7 @@
> 变量选择的目标有三个方面:提高预测变量的预测表现,提供更快,更具成本效益的预测变量,并更好地理解生成数据的基础过程。
- Guyon和Elisseeff的“[变量和特征选择介绍](http://jmlr.csail.mit.edu/papers/volume3/guyon03a/guyon03a.pdf)”(PDF)
- Guyon 和 Elisseeff 的“[变量和特征选择介绍](http://jmlr.csail.mit.edu/papers/volume3/guyon03a/guyon03a.pdf)”(PDF)
## 特征选择算法
......@@ -69,15 +69,15 @@
正则化方法也称为惩罚方法,其将额外约束引入预测算法(例如回归算法)的优化中,该预测算法将模型偏向于较低复杂度(较少系数)。
正则化算法的例子是LASSO,弹性网和岭回归。
正则化算法的例子是 LASSO,弹性网和岭回归。
## 功能选择教程和秘籍
我们在此博客上看到过许多功能选择示例。
* **Weka** :有关如何使用Weka执行特征选择的教程,请参阅“[特征选择以提高准确率并缩短训练时间](http://machinelearningmastery.com/feature-selection-to-improve-accuracy-and-decrease-training-time/ "Feature Selection to Improve Accuracy and Decrease Training Time")”。
* **Scikit-Learn** :有关使用scikit-learn在Python中进行递归特征消除的秘籍,请参阅“使用Scikit-Learn 在Python中使用[特征选择”。](http://machinelearningmastery.com/feature-selection-in-python-with-scikit-learn/ "Feature Selection in Python with Scikit-Learn")
* **R** :使用Caret R软件包进行递归特征消除的秘籍,请参阅“使用Caret R软件包”选择“[特征”](http://machinelearningmastery.com/feature-selection-with-the-caret-r-package/ "Feature Selection with the Caret R Package")
* **Weka** :有关如何使用 Weka 执行特征选择的教程,请参阅“[特征选择以提高准确率并缩短训练时间](http://machinelearningmastery.com/feature-selection-to-improve-accuracy-and-decrease-training-time/ "Feature Selection to Improve Accuracy and Decrease Training Time")”。
* **Scikit-Learn** :有关使用 scikit-learn 在 Python 中进行递归特征消除的秘籍,请参阅“使用 Scikit-Learn 在 Python 中使用[特征选择”。](http://machinelearningmastery.com/feature-selection-in-python-with-scikit-learn/ "Feature Selection in Python with Scikit-Learn")
* **R** :使用 Caret R 软件包进行递归特征消除的秘籍,请参阅“使用 Caret R 软件包”选择“[特征”](http://machinelearningmastery.com/feature-selection-with-the-caret-r-package/ "Feature Selection with the Caret R Package")
## 选择功能时的陷阱
......@@ -87,23 +87,23 @@
> ...应该在不同的数据集上进行特征选择,而不是训练[预测模型] ...不这样做的效果是你会过度训练你的训练数据。
- Ben Allison回答“[是否使用相同的数据进行特征选择和交叉验证是否有偏差?](http://stats.stackexchange.com/questions/40576/is-using-the-same-data-for-feature-selection-and-cross-validation-biased-or-not)
- Ben Allison 回答“[是否使用相同的数据进行特征选择和交叉验证是否有偏差?](http://stats.stackexchange.com/questions/40576/is-using-the-same-data-for-feature-selection-and-cross-validation-biased-or-not)
例如,当您使用精确度估计方法(如交叉验证)时,必须在内循环中包含要素选择。这意味着在训练模型之前,在准备好的折叠上执行特征选择。错误是首先执行特征选择以准备数据,然后对所选特征执行模型选择和训练。
> 如果我们采用适当的程序,并在每个折叠中执行特征选择,则在该折叠中使用的特征的选择中不再存在关于所保持的情况的任何信息。
- Dikran Marsupial在机器学习中执行交叉验证时回答“[最终模型的特征选择”](http://stats.stackexchange.com/questions/2306/feature-selection-for-final-model-when-performing-cross-validation-in-machine)
- Dikran Marsupial 在机器学习中执行交叉验证时回答“[最终模型的特征选择”](http://stats.stackexchange.com/questions/2306/feature-selection-for-final-model-when-performing-cross-validation-in-machine)
原因是选择特征的决策是在整个训练集上进行的,而这些决策又被传递到模型上。这可能会导致一种模式,即所选择的特征比其他正在测试的模型增强的模型可以获得看似更好的结果,而实际上它是有偏差的结果。
> 如果对所有数据执行特征选择然后交叉验证,则交叉验证过程的每个折叠中的测试数据也用于选择特征,这是表现分析的偏差。
- Dikran Marsupial回答“[特征选择和交叉验证](http://stats.stackexchange.com/questions/27750/feature-selection-and-cross-validation)
- Dikran Marsupial 回答“[特征选择和交叉验证](http://stats.stackexchange.com/questions/27750/feature-selection-and-cross-validation)
## 功能选择清单
Isabelle Guyon和Andre Elisseeff是“[变量和特征选择简介](http://jmlr.csail.mit.edu/papers/volume3/guyon03a/guyon03a.pdf)”(PDF)的作者提供了一个很好的清单,您可以在下次需要为预测性建模问题选择数据特征时使用它。
Isabelle Guyon 和 Andre Elisseeff 是“[变量和特征选择简介](http://jmlr.csail.mit.edu/papers/volume3/guyon03a/guyon03a.pdf)”(PDF)的作者提供了一个很好的清单,您可以在下次需要为预测性建模问题选择数据特征时使用它。
我在这里复制了清单的重要部分:
......@@ -113,8 +113,8 @@ Isabelle Guyon和Andre Elisseeff是“[变量和特征选择简介](http://jmlr.
4. **您是否需要修剪输入变量(例如成本,速度或数据理解原因)?** 如果不是,则构造析取特征或特征的加权和
5. **您是否需要单独评估功能(例如,了解它们对系统的影响,或者因为它们的数量太大而您需要进行首次过滤)?** 如果是,请使用变量排名方法;否则,无论如何都要获得基线结果。
6. **你需要预测器吗?** 如果不是,请停止
7. **你怀疑你的数据是“脏”的(有一些无意义的输入模式和/或嘈杂的输出或错误的类标签)?** 如果是,则使用在步骤5中获得的排名最高的变量检测异常值示例作为表示;检查和/或丢弃它们。
8. **你知道先尝试一下吗?** 如果不是,请使用线性预测器。使用具有“探测”方法的前向选择方法作为停止标准或使用0范数嵌入方法进行比较,遵循步骤5的排序,使用增加的特征子集构建相同性质的预测变量序列。您可以使用较小的子集匹配或改善表现吗?如果是,请尝试使用该子集的非线性预测器。
7. **你怀疑你的数据是“脏”的(有一些无意义的输入模式和/或嘈杂的输出或错误的类标签)?** 如果是,则使用在步骤 5 中获得的排名最高的变量检测异常值示例作为表示;检查和/或丢弃它们。
8. **你知道先尝试一下吗?** 如果不是,请使用线性预测器。使用具有“探测”方法的前向选择方法作为停止标准或使用 0 范数嵌入方法进行比较,遵循步骤 5 的排序,使用增加的特征子集构建相同性质的预测变量序列。您可以使用较小的子集匹配或改善表现吗?如果是,请尝试使用该子集的非线性预测器。
9. **你有新的想法,时间,计算资源和足够的例子吗?** 如果是,请比较几种特征选择方法,包括新想法,相关系数,后向选择和嵌入方法。使用线性和非线性预测变量。选择具有模型选择的最佳方法
10. **您想要一个稳定的解决方案(以提高表现和/或理解)吗?** 如果是,请对您的数据进行子采样并重新分析几个“bootstrap”。
......@@ -122,9 +122,9 @@ Isabelle Guyon和Andre Elisseeff是“[变量和特征选择简介](http://jmlr.
在特定平台上需要有关功能选择的帮助吗?以下是一些可以帮助您快速入门的教程:
* [如何在Weka](http://machinelearningmastery.com/perform-feature-selection-machine-learning-data-weka/) 中执行特征选择(无代码)
* [如何使用scikit-learn](http://machinelearningmastery.com/feature-selection-machine-learning-python/) 在Python中执行功能选择
* [如何用插入符号](http://machinelearningmastery.com/feature-selection-with-the-caret-r-package/)R中执行特征选择
* [如何在 Weka](http://machinelearningmastery.com/perform-feature-selection-machine-learning-data-weka/) 中执行特征选择(无代码)
* [如何使用 scikit-learn](http://machinelearningmastery.com/feature-selection-machine-learning-python/) 在 Python 中执行功能选择
* [如何用插入符号](http://machinelearningmastery.com/feature-selection-with-the-caret-r-package/) R 中执行特征选择
要深入了解该主题,您可以选择一本关于该主题的专用书籍,例如以下任何一个:
......
......@@ -25,7 +25,7 @@
## 概观
这篇文章分为5部分;他们是:
这篇文章分为 5 部分;他们是:
1. 函数逼近问题
2. 函数逼近作为搜索
......@@ -41,7 +41,7 @@
学习系统的目标是学习输入和输出数据之间的通用映射,以便可以对从输出变量未知的域中提取的新实例进行熟练的预测。
在统计学习中,从机器学习的统计角度来看,该问题被定义为给定输入数据(`X`)和相关输出数据(_的映射函数(`f`)的学习。 ]_ )。
在统计学习中,从机器学习的统计角度来看,该问题被定义为给定输入数据(`X`)和相关输出数据(_ 的映射函数(`f`)的学习。 ]_ )。
```py
y = f(X)
......@@ -96,7 +96,7 @@ yhat = fprime(Xhat)
* 选择给定物种及其相关亚种的花的测量值。
* 选择一个特定托儿所中的鲜花进行测量,以收集训练数据。
* 选择决策树模型表示,以便可以向利益相关者解释预测。
* 选择CART算法以适合决策树模型。
* 选择 CART 算法以适合决策树模型。
* 选择分类准确度来评估模型的技能。
等等。
......@@ -171,15 +171,15 @@ yhat = fprime(Xhat)
我们还可以看到一个好的框架和仔细选择的训练数据如何打开一个候选映射的空间,可以通过一套现代强大的机器学习算法找到。
这为在给定的机器学习问题上对一套算法进行抽查,并在显示最有希望的算法上加倍,或者选择最简约的解决方案(例如Occam的剃刀)提供了理由。
这为在给定的机器学习问题上对一套算法进行抽查,并在显示最有希望的算法上加倍,或者选择最简约的解决方案(例如 Occam 的剃刀)提供了理由。
## 进一步阅读
如果您希望深入了解,本节将提供有关该主题的更多资源。
* [2章,机器学习](http://amzn.to/2yclAGZ),1997。
* [ 2 章,机器学习](http://amzn.to/2yclAGZ),1997。
* [作为搜索的泛化](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.121.5764&rep=rep1&type=pdf),1982。
* [1章,数据挖掘:实用机器学习工具和技术](http://amzn.to/2wvHUPq),2016。
* [ 1 章,数据挖掘:实用机器学习工具和技术](http://amzn.to/2wvHUPq),2016。
* [关于算法选择,应用于组合搜索问题](https://research-repository.st-andrews.ac.uk/handle/10023/2841),2012。
* 维基百科上的[算法选择](https://en.wikipedia.org/wiki/Algorithm_Selection)
......
......@@ -6,7 +6,7 @@
应用机器学习具有挑战性。
对于您的具体问题,您必须做出许多已知“_正确答案_”的决定,例如:
对于您的具体问题,您必须做出许多已知“_ 正确答案 _”的决定,例如:
* 使用什么框架的问题?
* 要使用哪些输入和输出数据?
......@@ -20,14 +20,14 @@
阅读这篇文章后,你会知道:
* 如何为自己和他人制定明确的学习问题定义。
* 在为您的问题设计学习系统时必须考虑的4个决策点。
* 您可以使用3种策略来专门解决在实践中设计学习系统的棘手问题。
* 在为您的问题设计学习系统时必须考虑的 4 个决策点。
* 您可以使用 3 种策略来专门解决在实践中设计学习系统的棘手问题。
让我们开始吧。
## 概观
这篇文章分为6个部分,灵感来自 [Tom Mitchell的](http://www.cs.cmu.edu/~tom/)优秀的1997年书[机器学习](http://amzn.to/2yclAGZ)的第1章;他们是:
这篇文章分为 6 个部分,灵感来自 [Tom Mitchell 的](http://www.cs.cmu.edu/~tom/)优秀的 1997 年书[机器学习](http://amzn.to/2yclAGZ)的第 1 章;他们是:
1. 良好的学习问题
2. 选择训练数据
......@@ -40,13 +40,13 @@
我们可以将应用机器学习领域中的一般学习任务定义为根据特定绩效测量从某些任务的经验中学习的程序。
Tom Mitchell在其1997年出版的“机器学习”一书中明确指出:
Tom Mitchell 在其 1997 年出版的“机器学习”一书中明确指出:
> 据说计算机程序从经验E中学习关于某类任务T和表现测量P,如果其在T中的任务中的表现(由P测量)随经验E而改善。
> 据说计算机程序从经验 E 中学习关于某类任务 T 和表现测量 P,如果其在 T 中的任务中的表现(由 P 测量)随经验 E 而改善。
-2页,[机器学习](http://amzn.to/2yclAGZ),1997。
- 2 页,[机器学习](http://amzn.to/2yclAGZ),1997。
我们将此作为我们可能对应用机器学习感兴趣的学习任务类型的一般定义,例如预测性建模。 Tom列举了几个例子来说明这一点,例如:
我们将此作为我们可能对应用机器学习感兴趣的学习任务类型的一般定义,例如预测性建模。 Tom 列举了几个例子来说明这一点,例如:
* 学会识别口语。
* 学习驾驶自动驾驶汽车。
......@@ -78,7 +78,7 @@ Tom Mitchell在其1997年出版的“机器学习”一书中明确指出:
> 可用的训练体验类型会对学习器的成功或失败产生重大影响。
-5页,[机器学习](http://amzn.to/2yclAGZ),1997。
- 5 页,[机器学习](http://amzn.to/2yclAGZ),1997。
它很少格式化并且可以随时使用;通常,您必须收集所需的数据(或认为您可能需要)以解决学习问题。
......@@ -108,9 +108,9 @@ y = f(X)
更一般地,这是一个称为函数逼近的问题。结果将是近似值,意味着它将有错误。我们将尽最大努力将此错误降至最低,但在给定数据噪声的情况下,总会存在一些错误。
> ......在这种情况下,我们将学习任务减少到发现理想目标函数V的操作描述的问题。一般来说,完全学习V的这种操作形式可能是非常困难的。实际上,我们经常期望学习算法仅获得对目标函数的一些近似,因此学习目标函数的过程通常被称为函数逼近。
> ......在这种情况下,我们将学习任务减少到发现理想目标函数 V 的操作描述的问题。一般来说,完全学习 V 的这种操作形式可能是非常困难的。实际上,我们经常期望学习算法仅获得对目标函数的一些近似,因此学习目标函数的过程通常被称为函数逼近。
-8页,[机器学习](http://amzn.to/2yclAGZ),1997。
- 8 页,[机器学习](http://amzn.to/2yclAGZ),1997。
该步骤是关于准确选择要用作该函数的输入的数据,例如,输入特征或输入变量以及准确预测的内容,例如输出变量。
......@@ -122,7 +122,7 @@ y = f(X)
将此视为您希望拥有的最终模型类型,然后您可以使用它来做出预测。您必须选择此模型的形式,数据结构(如果您愿意)。
> 现在我们已经指定了理想的目标函数V,我们必须选择一个学习程序将用来描述它将学习的函数Vprime的表示。
> 现在我们已经指定了理想的目标函数 V,我们必须选择一个学习程序将用来描述它将学习的函数 Vprime 的表示。
— Page 8, [Machine Learning](http://amzn.to/2yclAGZ), 1997.
......@@ -150,24 +150,24 @@ y = f(X)
在此过程中,没有人可以告诉你每个决定的最佳答案;对于您的特定学习问题,最佳答案是未知的。
Mitchell帮助澄清了这一点,并描述了设计学习系统以进行跳棋的选择。
Mitchell 帮助澄清了这一点,并描述了设计学习系统以进行跳棋的选择。
![Depiction of Choices in Designing a Checker-Playing Learning System](img/de821f1cb6c18d39cbdd6bfc32f986f0.jpg)
设计棋盘游戏学习系统的选择描述。
取自“机器学习”,1997年。
取自“机器学习”,1997 年。
这些选择充当了设计过程的约束点。米切尔继续说:
> 这些设计选择以多种方式限制了学习任务。我们已将可获得的知识类型限制为单个线性评估函数。此外,我们将此评估功能限制为仅依赖于所提供的六个特定板功能。如果真正的目标函数V确实可以通过这些特定特征的线性组合来表示,那么我们的程序很有可能学习它。如果没有,那么我们所希望的最好的是它将学习一个很好的近似,因为一个程序肯定永远不会学到任何它至少不能代表的东西。
> 这些设计选择以多种方式限制了学习任务。我们已将可获得的知识类型限制为单个线性评估函数。此外,我们将此评估功能限制为仅依赖于所提供的六个特定板功能。如果真正的目标函数 V 确实可以通过这些特定特征的线性组合来表示,那么我们的程序很有可能学习它。如果没有,那么我们所希望的最好的是它将学习一个很好的近似,因为一个程序肯定永远不会学到任何它至少不能代表的东西。
-13-14页,[机器学习](http://amzn.to/2yclAGZ),1997年。
- 13-14 页,[机器学习](http://amzn.to/2yclAGZ),1997 年。
我喜欢这段经文,因为它确实推动了这些约束对于简化问题的重要性,以及做出限制或阻止系统充分了解问题的选择的风险。
通常,您不能分析地计算这些选择的答案,例如:要使用的数据,要使用的算法或要使用的算法配置。
尽管如此,一切都不会丢失;这里有3种可以在实践中使用的策略:
尽管如此,一切都不会丢失;这里有 3 种可以在实践中使用的策略:
1. **复制**。查看文献或专家,了解与您的问题相同或类似问题的学习系统,并复制学习系统的设计。您很可能不是第一个处理给定类型问题的人。在最糟糕的情况下,复制的设计为您自己的设计提供了一个起点。
2. **搜索**。列出每个决策点的可用选项,并根据实际情况对每个决策点进行评估,以了解哪些方法最适合您的特定数这可能是应用机器学习中最强大和最实践的方法。
......@@ -183,8 +183,8 @@ Mitchell帮助澄清了这一点,并描述了设计学习系统以进行跳棋
如果您希望深入了解,本节将提供有关该主题的更多资源。
*1章,[机器学习](http://amzn.to/2yclAGZ),1997。
* [Tom Mitchell的主页](http://www.cs.cmu.edu/~tom/)
* 1 章,[机器学习](http://amzn.to/2yclAGZ),1997。
* [Tom Mitchell 的主页](http://www.cs.cmu.edu/~tom/)
* [维基百科问题很好](https://en.wikipedia.org/wiki/Well-posed_problem)
* [维基百科上的难以理解](https://en.wikipedia.org/wiki/Computational_complexity_theory#Intractability)
* [如何定义机器学习问题](https://machinelearningmastery.com/how-to-define-your-machine-learning-problem/)
......@@ -197,8 +197,8 @@ Mitchell帮助澄清了这一点,并描述了设计学习系统以进行跳棋
具体来说,你学到了:
* 如何为自己和他人制定明确的学习问题定义。
* 在为您的问题设计学习系统时必须考虑的4个决策点。
* 您可以使用3种策略来专门解决在实践中设计学习系统的棘手问题。
* 在为您的问题设计学习系统时必须考虑的 4 个决策点。
* 您可以使用 3 种策略来专门解决在实践中设计学习系统的棘手问题。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
\ No newline at end of file
......@@ -21,10 +21,10 @@
* 机械问题,例如热量或湿度改变记录装置的特性;
* 身体问题:有些老鼠比其他老鼠大;
* 或者只是被调查系统中的固有噪音。例如,来自DNA的蛋白质的产生本质上是有噪声的,不是如通常可视化的那样在稳定的流中发生,而是在一系列步骤中,每个步骤是随机的,取决于在适当时间存在合适的分子。
* 或者只是被调查系统中的固有噪音。例如,来自 DNA 的蛋白质的产生本质上是有噪声的,不是如通常可视化的那样在稳定的流中发生,而是在一系列步骤中,每个步骤是随机的,取决于在适当时间存在合适的分子。
* 从人类受试者收集的数据同样受到诸如一天中的时间,受试者的健康状况,甚至他们的情感等因素的影响。
随着数据集中参数数量的增加,情况会恶化。例如,具有100个记录的数据集(每个具有500个观测值)非常容易过拟合,而具有5个观测值的1000个记录每个将远不是问题。
随着数据集中参数数量的增加,情况会恶化。例如,具有 100 个记录的数据集(每个具有 500 个观测值)非常容易过拟合,而具有 5 个观测值的 1000 个记录每个将远不是问题。
> 当您的模型相对于数据点数量的参数太多时,您很容易高估模型的效用。
......@@ -50,7 +50,7 @@
道德分析师如何克服过拟合的问题?最简单,最难实现的解决方案就是拥有大量的数据。有了足够的数据,分析师就可以在一组数据(训练集)上开发和算法,然后在一个全新的,看不见的数据集上测试其表现,这些数据集由相同的方法(测试集)生成。
仅使用两个数据集的问题是,只要您使用测试集,它就会被污染。对集合1进行训练,对集合2进行测试,然后使用这些测试的结果来修改算法的过程意味着集合2实际上是训练数据的一部分。
仅使用两个数据集的问题是,只要您使用测试集,它就会被污染。对集合 1 进行训练,对集合 2 进行测试,然后使用这些测试的结果来修改算法的过程意味着集合 2 实际上是训练数据的一部分。
为了完全客观,需要第三个数据集(验证集)。验证集应保持光荣隔离,直到所有训练完成。验证集上训练的分类器的结果是应该报告的结果。
......@@ -61,28 +61,28 @@
这个过程因此变成:
1. 开发算法;
2.1组训练(训练集);
3. 测试第2组(测试装置);
4. 使用步骤3的结果修改算法或停止训练;
5. 迭代步骤1到4直到满意算法的结果;
6. 在第3组(验证集)上运行算法;
7. 报告步骤6的结果。
2. 1 组训练(训练集);
3. 测试第 2 组(测试装置);
4. 使用步骤 3 的结果修改算法或停止训练;
5. 迭代步骤 1 到 4 直到满意算法的结果;
6. 在第 3 组(验证集)上运行算法;
7. 报告步骤 6 的结果。
可悲的是,很少有项目产生足够的数据,使分析师能够沉迷于三数据集方法的奢侈品。必须找到一种替代方案,其中每个结果由分类器生成,该分类器在其训练中未使用该数据项。
### 交叉验证
通过交叉验证,整个可用数据集被分成大小相等或更小的子集。假设我们有100个观测数据集。我们可以将它分成33个,33个和34个观察值的三个子集。我们将这三个子集称为set1,set2和set3。
通过交叉验证,整个可用数据集被分成大小相等或更小的子集。假设我们有 100 个观测数据集。我们可以将它分成 33 个,33 个和 34 个观察值的三个子集。我们将这三个子集称为 set1,set2 和 set3。
为了开发我们的分类器,我们使用了三分之二的数据;说set1和set2,训练算法。然后,我们在set3上运行分类器,到目前为止看不见,并记录这些结果。
为了开发我们的分类器,我们使用了三分之二的数据;说 set1 和 set2,训练算法。然后,我们在 set3 上运行分类器,到目前为止看不见,并记录这些结果。
然后使用另外的三分之二,例如set1和set3重复该过程,并记录set2上的结果。类似地,在set2和set3上训练的分类器产生set1的结果。
然后使用另外的三分之二,例如 set1 和 set3 重复该过程,并记录 set2 上的结果。类似地,在 set2 和 set3 上训练的分类器产生 set1 的结果。
然后组合三个结果集,并成为整个数据集的结果。
上述过程称为三重交叉验证,因为使用了三个数据集。可以使用任意数量的子集;十倍交叉验证被广泛使用。当然,最终的交叉验证方案是在除了一个案例之外的所有数据上训练每个分类器,然后在左边的情况下运行它。这种做法被称为留一法验证。
> 交叉验证对于防止数据建议的测试假设(称为“III型错误”)非常重要,特别是在进一步的样品有害,昂贵或无法收集的情况下。
> 交叉验证对于防止数据建议的测试假设(称为“III 型错误”)非常重要,特别是在进一步的样品有害,昂贵或无法收集的情况下。
— Overfitting, [Wikipedia](http://en.wikipedia.org/wiki/Overfitting).
......@@ -106,21 +106,21 @@
由于过拟合是一个普遍存在的问题,因此已经有大量研究使用统计方法来避免这个问题。一些标准教科书对这些方法有很好的报道,包括:
* Duda,R。O.,Hart,P。E.,& Stork,D.G。(2012)。 [模式分类](http://www.amazon.com/dp/0471056693?tag=inspiredalgor-20):John Wiley&儿子。
* Bishop,C。M.(2006)。 [模式识别和机器学习](http://www.amazon.com/dp/0387310738?tag=inspiredalgor-20)(第1卷):施普林格纽约。
* Bishop,C。M.(2006)。 [模式识别和机器学习](http://www.amazon.com/dp/0387310738?tag=inspiredalgor-20)(第 1 卷):施普林格纽约。
## 避免过拟合的教程
例如,使用R统计语言,使用R统计语言,请参阅“[评估模型表现 - 过拟合和数据大小对预测影响的实际示例](http://www.r-bloggers.com/evaluating-model-performance-a-practical-example-of-the-effects-of-overfitting-and-data-size-on-prediction/)”。
例如,使用 R 统计语言,使用 R 统计语言,请参阅“[评估模型表现 - 过拟合和数据大小对预测影响的实际示例](http://www.r-bloggers.com/evaluating-model-performance-a-practical-example-of-the-effects-of-overfitting-and-data-size-on-prediction/)”。
有关使用SPSS的详细教程,请参阅幻灯片“ [逻辑回归 - 完整问题](http://www.utexas.edu/courses/schwab/sw388r7/SolvingProblems/LogisticRegression_CompleteProblems.ppt)”(PPT)。
有关使用 SPSS 的详细教程,请参阅幻灯片“ [逻辑回归 - 完整问题](http://www.utexas.edu/courses/schwab/sw388r7/SolvingProblems/LogisticRegression_CompleteProblems.ppt)”(PPT)。
有关SAS用户指南的介绍,请参阅“ [GLMSELECT程序](http://support.sas.com/documentation/cdl/en/statug/65328/HTML/default/viewer.htm#statug_glmselect_details25.htm)”。
有关 SAS 用户指南的介绍,请参阅“ [GLMSELECT 程序](http://support.sas.com/documentation/cdl/en/statug/65328/HTML/default/viewer.htm#statug_glmselect_details25.htm)”。
## 进一步阅读
有关过拟合的实际效果的有趣概述可以在麻省理工学院技术评论中找到,题为“[大数据临近预报的新兴陷阱](http://www.technologyreview.com/view/530131/the-emerging-pitfalls-of-nowcasting-with-big-data/)”。
来自CalTech的优秀入门讲座在YouTube上提供,名为“ [Overfitting](https://www.youtube.com/watch?v=EQWr3GGCdzw) ”:
来自 CalTech 的优秀入门讲座在 YouTube 上提供,名为“ [Overfitting](https://www.youtube.com/watch?v=EQWr3GGCdzw) ”:
<iframe allowfullscreen="" frameborder="0" height="281" src="https://www.youtube.com/embed/EQWr3GGCdzw?feature=oembed" width="500"></iframe>
......
# 使用ROC曲线评估和比较分类器表现
# 使用 ROC 曲线评估和比较分类器表现
> 原文: [https://machinelearningmastery.com/assessing-comparing-classifier-performance-roc-curves-2/](https://machinelearningmastery.com/assessing-comparing-classifier-performance-roc-curves-2/)
......@@ -10,19 +10,19 @@
分类器表现不仅仅是正确分类的数量。
为了兴趣,考虑筛查相对罕见的病症如宫颈癌的问题,其患病率约为10%([实际统计](http://www.cancerresearchuk.org/cancer-info/cancerstats/types/cervix/incidence/uk-cervical-cancer-incidence-statistics))。如果一个懒惰的巴氏涂片筛选器将每个幻灯片归类为“正常”,那么它们的准确度将达到90%。非常令人印象深刻!但是,这个数字完全忽略了这样一个事实,即10%确实患有这种疾病的女性根本没有被诊断出来。
为了兴趣,考虑筛查相对罕见的病症如宫颈癌的问题,其患病率约为 10%([实际统计](http://www.cancerresearchuk.org/cancer-info/cancerstats/types/cervix/incidence/uk-cervical-cancer-incidence-statistics))。如果一个懒惰的巴氏涂片筛选器将每个幻灯片归类为“正常”,那么它们的准确度将达到 90%。非常令人印象深刻!但是,这个数字完全忽略了这样一个事实,即 10%确实患有这种疾病的女性根本没有被诊断出来。
### 一些表现指标
在之前的博客文章中,我们讨论了可用于评估分类器的一些其他表现指标。回顾:
大多数分类器产生分数,然后对其进行阈值处理以确定分类。如果分类器产生的分数在0.0(绝对为负)和1.0(绝对为正)之间,则通常将0.5以上的任何分数视为正数。
大多数分类器产生分数,然后对其进行阈值处理以确定分类。如果分类器产生的分数在 0.0(绝对为负)和 1.0(绝对为正)之间,则通常将 0.5 以上的任何分数视为正数。
但是,应用于数据集的任何阈值(其中PP是阳性群体,NP是阴性群体)将产生真阳性(TP),假阳性(FP),真阴性(TN)和假阴性(FN) (图1)。我们需要一种考虑所有这些数字的方法。
但是,应用于数据集的任何阈值(其中 PP 是阳性群体,NP 是阴性群体)将产生真阳性(TP),假阳性(FP),真阴性(TN)和假阴性(FN) (图 1)。我们需要一种考虑所有这些数字的方法。
[![ROC Curve Explaination](img/df79b24f4bd4a610b7985c177240e4c7.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/11/ROC1.png)
图1.重叠数据集将始终生成误报和否定以及真正的正数和负数
1.重叠数据集将始终生成误报和否定以及真正的正数和负数
获得所有这些度量的数字后,就可以计算出一些有用的指标。
......@@ -30,40 +30,40 @@
* **灵敏度** = TP /(TP + FN)= TP / PP =测试在患病个体群体中检测疾病的能力。
* **特异性** = TN /(TN + FP)= TN / NP =测试在无病人群中正确排除疾病的能力。
让我们为一些合理的现实世界数字计算这些指标。如果我们有100,000名患者,其中200名(20%)实际上患有癌症,我们可能会看到以下测试结果(表1):
让我们为一些合理的现实世界数字计算这些指标。如果我们有 100,000 名患者,其中 200 名(20%)实际上患有癌症,我们可能会看到以下测试结果(表 1):
[![Table of sample data](img/f3b3efa1d15a9cd160194d0d62de8f13.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/11/Table.png)
表1.巴氏涂片筛查的“合理”值的诊断测试表现的图示
1.巴氏涂片筛查的“合理”值的诊断测试表现的图示
对于这些数据:
* **灵敏度** = TP /(TP + FN)= 160 /(160 + 40)= 80.0%
**特异性** = TN /(TN + FP)= 69,860 /(69,860 + 29,940)= 70.0%
换句话说,我们的测试将正确识别80%患有该疾病的人,但30%的健康人将错误地测试阳性。通过仅考虑测试的灵敏度(或准确度),可能丢失重要信息。
换句话说,我们的测试将正确识别 80%患有该疾病的人,但 30%的健康人将错误地测试阳性。通过仅考虑测试的灵敏度(或准确度),可能丢失重要信息。
通过考虑我们错误的结果以及正确的结果,我们可以更深入地了解分类器的表现。
克服必须选择截止的问题的一种方法是以0.0的阈值开始,以便每种情况都被认为是正的。我们正确地对所有阳性病例进行分类,并错误地将所有阴性病例分类。然后,我们将阈值移动到介于0.0和1.0之间的每个值,逐渐减少误报的数量并增加真阳性的数量。
克服必须选择截止的问题的一种方法是以 0.0 的阈值开始,以便每种情况都被认为是正的。我们正确地对所有阳性病例进行分类,并错误地将所有阴性病例分类。然后,我们将阈值移动到介于 0.0 和 1.0 之间的每个值,逐渐减少误报的数量并增加真阳性的数量。
然后可以针对所使用的每个阈值针对FP(1-特异性)绘制TP(灵敏度)。结果图称为接收器工作特性(ROC)曲线(图2)。 ROC曲线被开发用于20世纪50年代雷达回波中的信号检测,并且已经应用​​于广泛的问题。
然后可以针对所使用的每个阈值针对 FP(1-特异性)绘制 TP(灵敏度)。结果图称为接收器工作特性(ROC)曲线(图 2)。 ROC 曲线被开发用于 20 世纪 50 年代雷达回波中的信号检测,并且已经应用​​于广泛的问题。
[![Example ROC Curves](img/7abcb18fb49c85daaaf3923372d3b795.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/11/ROC2.png)
2\. ROC曲线的示例
2\. ROC 曲线的示例
对于完美的分类器,ROC曲线将沿Y轴向上,然后沿X轴向上。没有力量的分类器将位于对角线上,而大多数分类器位于两者之间。
对于完美的分类器,ROC 曲线将沿 Y 轴向上,然后沿 X 轴向上。没有力量的分类器将位于对角线上,而大多数分类器位于两者之间。
> ROC分析提供了用于选择可能的最优模型并且独立于(并且在指定之前)成本上下文或类分布的情况下丢弃次优模型的工具
> ROC 分析提供了用于选择可能的最优模型并且独立于(并且在指定之前)成本上下文或类分布的情况下丢弃次优模型的工具
- [维基百科有关接收器操作特性的文章](http://en.wikipedia.org/wiki/Receiver_operating_characteristic)
## 使用ROC曲线
## 使用 ROC 曲线
### 阈值选择
很明显,ROC曲线可用于选择最大化真阳性的分类器的阈值,同时最小化误报。
很明显,ROC 曲线可用于选择最大化真阳性的分类器的阈值,同时最小化误报。
然而,不同类型的问题具有不同的最佳分类器阈值。例如,对于癌症筛查测试,我们可能准备忍受相对较高的假阳性率以获得高真阳性,最重要的是识别可能的癌症患者。
......@@ -71,34 +71,34 @@
### 绩效评估
ROC曲线还使我们能够评估分类器在整个操作范围内的表现。最广泛使用的衡量指标是曲线下面积(AUC)。从图2中可以看出,没有功率,基本上是随机猜测的分类器的AUC是0.5,因为曲线跟随对角线。神秘存在的AUC,完美的分类器,是1.0。大多数分类器的AUC介于这两个值之间。
ROC 曲线还使我们能够评估分类器在整个操作范围内的表现。最广泛使用的衡量指标是曲线下面积(AUC)。从图 2 中可以看出,没有功率,基本上是随机猜测的分类器的 AUC 是 0.5,因为曲线跟随对角线。神秘存在的 AUC,完美的分类器,是 1.0。大多数分类器的 AUC 介于这两个值之间。
AUC小于0.5可能表明发生了一些有趣的事情。非常低的AUC可能表明问题已被错误地设置,分类器在数据中找到一个基本上与预期相反的关系。在这种情况下,检查整个ROC曲线可能会给出一些线索:正面和负面是否有错误的标签?
AUC 小于 0.5 可能表明发生了一些有趣的事情。非常低的 AUC 可能表明问题已被错误地设置,分类器在数据中找到一个基本上与预期相反的关系。在这种情况下,检查整个 ROC 曲线可能会给出一些线索:正面和负面是否有错误的标签?
### 分类器比较
AUC可用于比较两个或更多分类器的表现。可以选择单个阈值并且比较该分类器在该点的表现,或者可以通过考虑AUC来比较整体表现。
AUC 可用于比较两个或更多分类器的表现。可以选择单个阈值并且比较该分类器在该点的表现,或者可以通过考虑 AUC 来比较整体表现。
大多数已发表的报告以绝对值比较AUC:“_分类器1的AUC为0.85,分类器2的AUC为0.79,因此分类器1显然更好_”。然而,可以计算AUC的差异是否具有统计学意义。有关详细信息,请参阅Hanley& McNeil(1982)的论文如下。
大多数已发表的报告以绝对值比较 AUC:“_ 分类器 1 的 AUC 为 0.85,分类器 2 的 AUC 为 0.79,因此分类器 1 显然更好 _”。然而,可以计算 AUC 的差异是否具有统计学意义。有关详细信息,请参阅 Hanley& McNeil(1982)的论文如下。
## ROC曲线分析教程
## ROC 曲线分析教程
* [使用SigmaPlot软件生成ROC曲线的教程](http://www.sigmaplot.com/products/sigmaplot/ROC_Curves_Analysis.pdf)(PDF)
* [TheRMUoHP生物统计资源频道](https://www.youtube.com/watch?v=_2zN2a3MgmU)的SPSS YouTube教程
* [pROC包的文档](http://cran.r-project.org/web/packages/pROC/pROC.pdf)(PDF)
* [使用 SigmaPlot 软件生成 ROC 曲线的教程](http://www.sigmaplot.com/products/sigmaplot/ROC_Curves_Analysis.pdf)(PDF)
* [TheRMUoHP 生物统计资源频道](https://www.youtube.com/watch?v=_2zN2a3MgmU)的 SPSS YouTube 教程
* [pROC 包的文档](http://cran.r-project.org/web/packages/pROC/pROC.pdf)(PDF)
<iframe allowfullscreen="" frameborder="0" height="281" src="https://www.youtube.com/embed/_2zN2a3MgmU?feature=oembed" width="500"></iframe>
## 何时使用ROC曲线分析
## 何时使用 ROC 曲线分析
在这篇文章中,我使用了一个生物医学的例子,ROC曲线被广泛用于生物医学科学。然而,该技术适用于为每种情况产生分数的任何分类器,而不是二元决策。
在这篇文章中,我使用了一个生物医学的例子,ROC 曲线被广泛用于生物医学科学。然而,该技术适用于为每种情况产生分数的任何分类器,而不是二元决策。
神经网络和许多统计算法是适当分类器的示例,而诸如决策树之类的方法则不太适合。只有两种可能结果的算法(例如此处使用的癌症/无癌症例子)最适合这种方法。
可以将任何种类的数据输入适当的分类器中进行ROC曲线分析。
可以将任何种类的数据输入适当的分类器中进行 ROC 曲线分析。
## 进一步阅读
* 关于使用ROC曲线的经典论文,陈旧但仍然非常相关:Hanley,J。A.和B. J. McNeil(1982)。 “[接收器工作特性(ROC)曲线下面积的含义和用途](http://www.med.mcgill.ca/epidemiology/Hanley/software/Hanley_McNeil_Radiology_82.pdf)。”放射学143(1):29-36。
* 关于使用 ROC 曲线的经典论文,陈旧但仍然非常相关:Hanley,J。A.和 B. J. McNeil(1982)。 “[接收器工作特性(ROC)曲线下面积的含义和用途](http://www.med.mcgill.ca/epidemiology/Hanley/software/Hanley_McNeil_Radiology_82.pdf)。”放射学 143(1):29-36。
* 还有一篇很好的,最新的评论文章,主要关注医学诊断:Hajian-Tilaki K.“[接收器操作特性(ROC)曲线分析,用于医疗诊断测试评估](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3755824/)”。 Caspian Journal of Internal Medicine 2013; 4(2):627-635。
* 仅仅是为了证明在金融应用中使用ROC曲线:Petro Lisowsky(2010)“[寻求庇护:使用财务报表信息](http://www.researchgate.net/publication/228281204_Seeking_Shelter_Empirically_Modeling_Tax_Shelters_Using_Financial_Statement_Information/file/60b7d51ffaecc015a2.pdf)”对税收避难所进行实证建模。会计评论:2010年9月,卷。 85,第5期,第1693-1720页。
\ No newline at end of file
* 仅仅是为了证明在金融应用中使用 ROC 曲线:Petro Lisowsky(2010)“[寻求庇护:使用财务报表信息](http://www.researchgate.net/publication/228281204_Seeking_Shelter_Empirically_Modeling_Tax_Shelters_Using_Financial_Statement_Information/file/60b7d51ffaecc015a2.pdf)”对税收避难所进行实证建模。会计评论:2010 年 9 月,卷。 85,第 5 期,第 1693-1720 页。
\ No newline at end of file
# BigML教程:开发您的第一个决策树并做出预测
# BigML 教程:开发您的第一个决策树并做出预测
> 原文: [https://machinelearningmastery.com/bigml-tutorial-develop-your-first-decision-tree-and-make-predictions/](https://machinelearningmastery.com/bigml-tutorial-develop-your-first-decision-tree-and-make-predictions/)
BigML是一家全新的,有趣的机器学习服务公司,总部位于美国俄勒冈州的Corvallis。
BigML 是一家全新的,有趣的机器学习服务公司,总部位于美国俄勒冈州的 Corvallis。
在上一篇文章中,我们[审阅了BigML服务](http://machinelearningmastery.com/bigml-review-discover-the-clever-features-in-this-machine-learning-as-a-service-platform/ "BigML Review: Discover the Clever Features in This Machine Learning as a Service Platform"),关键功能以及您在业务中使用此服务的方式,在您方项目或向客户展示。在本教程中,我们将逐步介绍使用BigML平台开发预测模型的分步教程,并使用它来预测未用于创建模型的数据。该模型将是[决策树](http://en.wikipedia.org/wiki/Decision_tree)
在上一篇文章中,我们[审阅了 BigML 服务](http://machinelearningmastery.com/bigml-review-discover-the-clever-features-in-this-machine-learning-as-a-service-platform/ "BigML Review: Discover the Clever Features in This Machine Learning as a Service Platform"),关键功能以及您在业务中使用此服务的方式,在您方项目或向客户展示。在本教程中,我们将逐步介绍使用 BigML 平台开发预测模型的分步教程,并使用它来预测未用于创建模型的数据。该模型将是[决策树](http://en.wikipedia.org/wiki/Decision_tree)
您可以通过注册[免费试用BigML帐户](https://bigml.com/)来跟进。将您的帐户配置为“_开发模式_”,您将不需要任何学分来完成本教程中的任务。
您可以通过注册[免费试用 BigML 帐户](https://bigml.com/)来跟进。将您的帐户配置为“_ 开发模式 _”,您将不需要任何学分来完成本教程中的任务。
## 虹膜种类分类问题
在本教程中,我们将使用经过充分研究的Iris花卉数据集。该数据集由150个描述鸢尾花测量的实例组成,每个鸢尾花被归类为三种虹膜中的一种。属性是数字,问题是多分类问题。
在本教程中,我们将使用经过充分研究的 Iris 花卉数据集。该数据集由 150 个描述鸢尾花测量的实例组成,每个鸢尾花被归类为三种虹膜中的一种。属性是数字,问题是多分类问题。
[![Sample of the Iris flower dataset](img/d5bf2d9a92922f6159afb16efbbd7a4f.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/03/iris-dataset-sample.png)
Iris花卉数据集的样本,来自 [Wikipedia](http://en.wikipedia.org/wiki/Iris_flower_data_set) 的截图
Iris 花卉数据集的样本,来自 [Wikipedia](http://en.wikipedia.org/wiki/Iris_flower_data_set) 的截图
您可以在 [Wikipedia页面](http://en.wikipedia.org/wiki/Iris_flower_data_set)上阅读有关此问题的更多信息,并从UCI机器学习库上的 [Iris页面下载数据。](http://archive.ics.uci.edu/ml/datasets/Iris)
您可以在 [Wikipedia 页面](http://en.wikipedia.org/wiki/Iris_flower_data_set)上阅读有关此问题的更多信息,并从 UCI 机器学习库上的 [Iris 页面下载数据。](http://archive.ics.uci.edu/ml/datasets/Iris)
## 1.加载数据和创建数据集
在本节中,您将准备数据源和数据集,以便在BigML中使用。
在本节中,您将准备数据源和数据集,以便在 BigML 中使用。
### 1.1。创建数据源
首先,我们需要创建一个数据源。这是原始数据,我们可以从中创建原始数据的数据集或视图。
1. 登录您的BigML帐户。
2. 单击“`Dashboard`”按钮转到BigML仪表板。
1. 登录您的 BigML 帐户。
2. 单击“`Dashboard`”按钮转到 BigML 仪表板。
3. 单击“`Source`”选项卡列出您帐户的所有数据源。
4. 单击“链接”按钮以指定远程数据文件。
5. 输入网址( [http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data](http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data) )和说明(“_鸢尾花数据源_] “)用于UCI机器学习库中的Iris花数据集。
5. 输入网址( [http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data](http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data) )和说明(“_ 鸢尾花数据源 _] “)用于 UCI 机器学习库中的 Iris 花数据集。
6. 单击“`Create`”按钮创建新数据源。
7. 点击“_鸢尾花数据源_”进行查看。
7. 点击“_ 鸢尾花数据源 _”进行查看。
[![BigML Data Source](img/b42317d54affb3d3c1fe0614eee3b0aa.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/04/bigml-data-source.png)
BigML数据源
BigML 数据源
您将注意到属性数据类型已正确识别为数字,并且类标签是最后一个属性(field5)。
......@@ -44,16 +44,16 @@ BigML数据源
现在我们已经加载了原始数据的数据源,我们可以创建该数据源的数据集视图。然后,我们将创建另外两个数据集,一个称为训练,我们将用于训练预测模型,另一个称为测试,我们将用它来评估创建的预测模型,并将用作做出预测的基础。
1. 点击“_来源_”标签中的“_鸢尾花数据源_”打开它,如果尚未打开的话。
2. 单击云按钮并选择“_单击数据集_”。
1. 点击“_ 来源 _”标签中的“_ 鸢尾花数据源 _”打开它,如果尚未打开的话。
2. 单击云按钮并选择“_ 单击数据集 _”。
3. 这将从数据源创建新数据集。这是对数据源的视图,可以对其进行修改以准备建模。
4. 单击或悬停在小sigma上以查看给定属性的摘要。
5. 单击云按钮并选择“ _1单击”训练“|测试_“。
6. 单击“_数据集_”选项卡,查看我们创建的3个数据集。
4. 单击或悬停在小 sigma 上以查看给定属性的摘要。
5. 单击云按钮并选择“ _1 单击”训练“|测试 _“。
6. 单击“_ 数据集 _”选项卡,查看我们创建的 3 个数据集。
[![BigML Dataset](img/192e3433300ac6f084cc2a96c7c827b0.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/04/bigml-dataset.png)
BigML数据集
BigML 数据集
## 2.创建和评估模型
......@@ -63,55 +63,55 @@ BigML数据集
现在,您将从训练数据集创建预测模型。
1. 点击“_虹膜花数据源的数据集|训练(80%)_“_数据集_”选项卡中的数据集。
1. 点击“_ 虹膜花数据源的数据集|训练(80%)_“_ 数据集 _”选项卡中的数据集。
2. 单击云图标,然后选择“ _1-Click Model_ ”。
3. 将鼠标悬停在模型中的不同节点上,以通过决策树查看数据流。
4. 单击“`Sunburst`”按钮打开模型的旭日视图并浏览决策树。
5. 单击“_模型摘要报告_”按钮以查看从决策树模型派生的规则的文本描述。
5. 单击“_ 模型摘要报告 _”按钮以查看从决策树模型派生的规则的文本描述。
[![BigML Predictive Model](img/4b96afd25e23a1f342469ed70a9e0441.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/04/bigml-predictive-model.png)
BigML预测模型
BigML 预测模型
### 2.2。评估预测模型
现在,您将评估使用测试数据集创建的预测模型的预测准确率。
1. 单击“`Models`”选项卡中的虹膜花型。
2. 单击云按钮并选择“_评估_”
3. 评估将自动选择您之前创建的测试数据集,该数据集包含预测模型之前未见过的原始数据集的20%。
4. 单击“_评估_”按钮以评估模型。
5. 根据分类准确度,精确度,召回率,F分数和phi分数来总结模型的准确率。我们可以看到准确率为93.33%。
6. 单击“_混淆矩阵_”以查看模型预测的混淆矩阵。
2. 单击云按钮并选择“_ 评估 _”
3. 评估将自动选择您之前创建的测试数据集,该数据集包含预测模型之前未见过的原始数据集的 20%。
4. 单击“_ 评估 _”按钮以评估模型。
5. 根据分类准确度,精确度,召回率,F 分数和 phi 分数来总结模型的准确率。我们可以看到准确率为 93.33%。
6. 单击“_ 混淆矩阵 _”以查看模型预测的混淆矩阵。
[![BigML Evaluate Predictive Model](img/90e0bf8578fdc098979e106ea1406e9a.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/04/bigml-evaluate-predictive-model-confusion-matrix.png)
BigML评估预测模型,显示混淆矩阵
BigML 评估预测模型,显示混淆矩阵
## 3.做出预测
现在,您将使用模型之前未见过的数据的预测模型做出预测。
1. 单击“`Models`”选项卡中的虹膜花型。
2. 单击云按钮并选择“_批量预测_”。
3. 单击“_搜索数据集..._ ”下拉菜单并键入“`iris`”。
4. 选择“_鸢尾花数据源的数据集|测试20%_“数据集。
5. 单击“_预测_”按钮
6. 单击“_下载批量预测_”文件,以获取测试数据集中每行的预测。
2. 单击云按钮并选择“_ 批量预测 _”。
3. 单击“_ 搜索数据集..._ ”下拉菜单并键入“`iris`”。
4. 选择“_ 鸢尾花数据源的数据集|测试 20%_“数据集。
5. 单击“_ 预测 _”按钮
6. 单击“_ 下载批量预测 _”文件,以获取测试数据集中每行的预测。
[![BigML Download Model Predictions](img/cdd9665290fb0941f9f1479dc5c05d4c.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/04/bigml-download-predictions.png)
BigML下载模型预测
BigML 下载模型预测
## 摘要
在本教程中,您学习了如何创建数据源,数据集,创建预测模型,评估它,最后使用准备好的预测模型对看不见的数据做出预测。 BigML是一个易于使用的平台,您应该能够在5-10分钟内完成所有这些工作。
在本教程中,您学习了如何创建数据源,数据集,创建预测模型,评估它,最后使用准备好的预测模型对看不见的数据做出预测。 BigML 是一个易于使用的平台,您应该能够在 5-10 分钟内完成所有这些工作。
从这里开始,您可以做很多事情来扩展本教程:
* 您可以使用不同的修剪方法创建新的决策树,并将其评估与您已创建的决策树进行比较,以查看它是否更准确。
* 您可以使用决策树的集合来对问题进行建模,并通过将集合的评估与您已创建的决策树的评估进行比较来查看是否可以提高分类准确率。
* 您可以编写脚本或使用BigML命令行工具(称为 [bigmle​​r](http://bigmler.readthedocs.org/en/latest/) )在新数据可用时做出预测。
* 您可以编写脚本或使用 BigML 命令行工具(称为 [bigmle​​r](http://bigmler.readthedocs.org/en/latest/) )在新数据可用时做出预测。
* 您可以使用 [BigML API](https://bigml.com/developers) 将远程模型的使用集成到网页中,并在新数据从其他来源提供时自动做出预测。
如果您对使用BigML的有趣教程有所了解,请发表评论。让你的想象力疯狂。
\ No newline at end of file
如果您对使用 BigML 的有趣教程有所了解,请发表评论。让你的想象力疯狂。
\ No newline at end of file
......@@ -2,11 +2,11 @@
> 原文: [https://machinelearningmastery.com/building-a-production-machine-learning-infrastructure/](https://machinelearningmastery.com/building-a-production-machine-learning-infrastructure/)
[Midwest.io](http://www.midwest.io/)2014年7月14日至15日在堪萨斯城召开。
[Midwest.io](http://www.midwest.io/) 2014 年 7 月 14 日至 15 日在堪萨斯城召开。
在会议上,Josh Wills在一个题为“[从实验室到工厂:构建生产机器学习基础设施](https://www.youtube.com/watch?v=IgfRdDjLxe0)”的演讲中,就如何构建生产机器学习基础设施进行了讨论。
在会议上,Josh Wills 在一个题为“[从实验室到工厂:构建生产机器学习基础设施](https://www.youtube.com/watch?v=IgfRdDjLxe0)”的演讲中,就如何构建生产机器学习基础设施进行了讨论。
Josh Wills是Cloudera数据科学高级总监,正式参与Google的广告拍卖系统。
Josh Wills 是 Cloudera 数据科学高级总监,正式参与 Google 的广告拍卖系统。
在这篇文章中,您将了解构建生产机器学习基础架构所需的知识。
......@@ -14,17 +14,17 @@ Josh Wills是Cloudera数据科学高级总监,正式参与Google的广告拍
## 数据科学
Josh称自己为数据科学家,负责对数据科学家所做的更为切实的描述。最好表达为推文:
Josh 称自己为数据科学家,负责对数据科学家所做的更为切实的描述。最好表达为推文:
> Data Scientist(数据科学家):在统计学方面比任何软件工程师都要好的人,在软件工程方面比任何统计学家都要好。
>
> - Josh Wills(@josh_wills) [2012年5月3日](https://twitter.com/josh_wills/status/198093512149958656)
> - Josh Wills(@josh_wills) [2012 年 5 月 3 日](https://twitter.com/josh_wills/status/198093512149958656)
他说,有两种类型的数据科学家,第一种是擅长编程的统计学家。第二个是一个聪明的软件工程师,并参与了有趣的项目。他说他自己就是第二类数据科学家。
## 学术不是工业机器学习
Josh还将学术机器学习与工业机器学习区分开来。他评论说,学术机器学习基本上是应用数学,特别是应用优化理论,这就是它在学术环境和教科书中的教学方式。
Josh 还将学术机器学习与工业机器学习区分开来。他评论说,学术机器学习基本上是应用数学,特别是应用优化理论,这就是它在学术环境和教科书中的教学方式。
工业机器学习是不同的。
......@@ -35,35 +35,35 @@ Josh还将学术机器学习与工业机器学习区分开来。他评论说,
## 工业机器学习框架
Josh评论说这是工业机器学习的黄金时代。他说这是因为可用的工具以及正在进行的共享和协作的数量。
Josh 评论说这是工业机器学习的黄金时代。他说这是因为可用的工具以及正在进行的共享和协作的数量。
他接触了 [Oryx](https://github.com/cloudera/oryx) ,Cloudera在Apache Hadoop之上使用他们的工业机器学习平台。
他接触了 [Oryx](https://github.com/cloudera/oryx) ,Cloudera 在 Apache Hadoop 之上使用他们的工业机器学习平台。
Josh在他们的博客文章“[构建风险机器学习系统](http://nerds.airbnb.com/architecting-machine-learning-system-risk/)”中谈到Airbnb分享其工业机器学习系统的细节。他发现airbnb构建一个分析模型离线存储它作为PMLL文件并上传它在生产中运行的事实。
Josh 在他们的博客文章“[构建风险机器学习系统](http://nerds.airbnb.com/architecting-machine-learning-system-risk/)”中谈到 Airbnb 分享其工业机器学习系统的细节。他发现 airbnb 构建一个分析模型离线存储它作为 PMLL 文件并上传它在生产中运行的事实。
Josh还谈到了Etsy的工业机器学习系统[猜想](https://github.com/etsy/Conjecture),在博客文章“[猜想:Hadoop中的可伸缩机器学习与烫伤](http://codeascraft.com/2014/06/18/conjecture-scalable-machine-learning-in-hadoop-with-scalding/)”中描述。在他们的系统中,离线准备模型并以JSON格式描述,然后转换为PHP代码以在生产中运行。
Josh 还谈到了 Etsy 的工业机器学习系统[猜想](https://github.com/etsy/Conjecture),在博客文章“[猜想:Hadoop 中的可伸缩机器学习与烫伤](http://codeascraft.com/2014/06/18/conjecture-scalable-machine-learning-in-hadoop-with-scalding/)”中描述。在他们的系统中,离线准备模型并以 JSON 格式描述,然后转换为 PHP 代码以在生产中运行。
Josh指出这些系统中的共性是将数据管理为键/值对。他还指出,他所谓的“分析模式”离线模型的准备以及那些用于生产或“生产模式”的模型的转变。
Josh 指出这些系统中的共性是将数据管理为键/值对。他还指出,他所谓的“分析模式”离线模型的准备以及那些用于生产或“生产模式”的模型的转变。
## 特色工程
Josh说,他目前的热情是[特色工程](http://machinelearningmastery.com/discover-feature-engineering-how-to-engineer-features-and-how-to-get-good-at-it/ "Discover Feature Engineering, How to Engineer Features and How to Get Good at It"),这是工业机器学习的黑暗艺术。实际上,他在演讲结束时发表了轻率的评论,人们喜欢最喜欢的算法,所使用的算法并不重要,并且所有的辛勤工作都在于特征工程。
Josh 说,他目前的热情是[特色工程](http://machinelearningmastery.com/discover-feature-engineering-how-to-engineer-features-and-how-to-get-good-at-it/ "Discover Feature Engineering, How to Engineer Features and How to Get Good at It"),这是工业机器学习的黑暗艺术。实际上,他在演讲结束时发表了轻率的评论,人们喜欢最喜欢的算法,所使用的算法并不重要,并且所有的辛勤工作都在于特征工程。
Josh说,与生产模式相比,分析模型中数据的使用方式非常低效。
Josh 说,与生产模式相比,分析模型中数据的使用方式非常低效。
模型的分析准备可以离线访问星型模式,以汇集所需的所有数据。生产数据只能访问用户或观察。他的问题是如何将在线使用的线路转换为在线使用而不费力(并且目前没有使用kludges)。
模型的分析准备可以离线访问星型模式,以汇集所需的所有数据。生产数据只能访问用户或观察。他的问题是如何将在线使用的线路转换为在线使用而不费力(并且目前没有使用 kludges)。
他说他探索了一种失败的DSL方法,但发现了数据模型的核心问题。他说,所需要的是根据固定属性和重复属性对用户实体进行建模。用户实体存储为非规范化,并且诸如事务和日志(重复属性)之类的用户数据存储在数组中。他以JSON格式给出了一个示例,并将其称为超新星模式。
他说他探索了一种失败的 DSL 方法,但发现了数据模型的核心问题。他说,所需要的是根据固定属性和重复属性对用户实体进行建模。用户实体存储为非规范化,并且诸如事务和日志(重复属性)之类的用户数据存储在数组中。他以 JSON 格式给出了一个示例,并将其称为超新星模式。
[![Supernova Schemas](img/1411b14b7f9d93391d486e249d21cfef.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/10/Supernova-Schemas.png)
Supernova Schema
来自Josh Wills 2014年7月在Midwest.io的演讲
来自 Josh Wills 2014 年 7 月在 Midwest.io 的演讲
## 摘要
这是一个引人入胜的演讲,并提醒我们,从像Cloudera,Airbnb和Etsy那样的大型工业机器学习系统的讨论中可以学到很多东西。
这是一个引人入胜的演讲,并提醒我们,从像 Cloudera,Airbnb 和 Etsy 那样的大型工业机器学习系统的讨论中可以学到很多东西。
您可以在这里完整地观看演讲:“[从实验室到工厂:构建生产机器学习基础设施](https://www.youtube.com/watch?v=IgfRdDjLxe0)”。
您可以在 [@josh_wills](https://twitter.com/josh_wills) 的Twitter上关注Josh,并在 [Linkedin](https://www.linkedin.com/pub/josh-wills/0/82b/138) 上查看他的背景。
\ No newline at end of file
您可以在 [@josh_wills](https://twitter.com/josh_wills) 的 Twitter 上关注 Josh,并在 [Linkedin](https://www.linkedin.com/pub/josh-wills/0/82b/138) 上查看他的背景。
\ No newline at end of file
......@@ -13,33 +13,33 @@
[![Classification Accuracy](img/7a329bed5d17347b0e270df35266f1fe.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/03/classification-accuracy.jpg)
分类准确度
摄影:Nina Matthews摄影,保留一些权利
摄影:Nina Matthews 摄影,保留一些权利
在这篇文章中,我们将介绍Precision和Recall表现度量,您可以使用它们来评估模型的二分类问题。
在这篇文章中,我们将介绍 Precision 和 Recall 表现度量,您可以使用它们来评估模型的二分类问题。
## 乳腺癌复发
[乳腺癌数据集](http://archive.ics.uci.edu/ml/datasets/Breast+Cancer)是标准的机器学习数据集。它包含9个属性,描述了286名患有乳腺癌并且在乳腺癌中存活并且在5年内是否复发的女性。
[乳腺癌数据集](http://archive.ics.uci.edu/ml/datasets/Breast+Cancer)是标准的机器学习数据集。它包含 9 个属性,描述了 286 名患有乳腺癌并且在乳腺癌中存活并且在 5 年内是否复发的女性。
这是一个二分类问题。在286名女性中,201名患者未复发乳腺癌,剩下的85名女性患乳腺癌。
这是一个二分类问题。在 286 名女性中,201 名患者未复发乳腺癌,剩下的 85 名女性患乳腺癌。
我认为对于这个问题,假阴性可能比误报更糟糕。你同意吗?更详细的筛查可以清除误报,但是假阴性被送回家并丢失以进行后续评估。
## 分类准确率
[分类精度](http://en.wikipedia.org/wiki/Accuracy_and_precision)是我们的出发点。它是正确预测的数量除以预测的总数,乘以100将其变为百分比。
[分类精度](http://en.wikipedia.org/wiki/Accuracy_and_precision)是我们的出发点。它是正确预测的数量除以预测的总数,乘以 100 将其变为百分比。
### 一切都没有复发
仅预测不会复发乳腺癌的模型将达到(201/286)* 100或70.28%的准确度。我们称之为“所有不复发”。这是一个高精度,但一个可怕的模型。如果它被单独用于决策支持以告知医生(不可能,但一起玩),它会将85名妇女误认为他们的乳腺癌不会再发生(高假阴性)。
仅预测不会复发乳腺癌的模型将达到(201/286)* 100 或 70.28%的准确度。我们称之为“所有不复发”。这是一个高精度,但一个可怕的模型。如果它被单独用于决策支持以告知医生(不可能,但一起玩),它会将 85 名妇女误认为他们的乳腺癌不会再发生(高假阴性)。
### 所有复发
仅预测乳腺癌复发的模型将达到(85/286)* 100或29.72%的准确度。我们称之为“所有复发”。这个模型具有可怕的准确率,并且会让201名女性认为乳腺癌复发,但实际上没有(高假阳性)。
仅预测乳腺癌复发的模型将达到(85/286)* 100 或 29.72%的准确度。我们称之为“所有复发”。这个模型具有可怕的准确率,并且会让 201 名女性认为乳腺癌复发,但实际上没有(高假阳性)。
### 大车
CART[分类和回归树](http://en.wikipedia.org/wiki/Predictive_analytics#Classification_and_regression_trees)是一种功能强大但简单的决策树算法。在这个问题上,CART可以达到69.23%的准确率。这低于我们的“All No Recurrence”模型,但这个模型更有价值吗?
CART[分类和回归树](http://en.wikipedia.org/wiki/Predictive_analytics#Classification_and_regression_trees)是一种功能强大但简单的决策树算法。在这个问题上,CART 可以达到 69.23%的准确率。这低于我们的“All No Recurrence”模型,但这个模型更有价值吗?
我们可以看出,单独的分类准确率不足以为此问题选择模型。
......@@ -47,13 +47,13 @@ CART或[分类和回归树](http://en.wikipedia.org/wiki/Predictive_analytics#Cl
用于呈现分类器的预测结果的清晰且明确的方式是使用[混淆矩阵](http://en.wikipedia.org/wiki/Table_of_confusion#Table_of_confusion)(也称为[列联表](http://en.wikipedia.org/wiki/Contingency_table))。
对于二分类问题,该表有2行2列。顶部是观察到的类标签,而旁边是预测的类标签。每个单元格包含落入该单元格的分类器所做的预测数量。
对于二分类问题,该表有 2 行 2 列。顶部是观察到的类标签,而旁边是预测的类标签。每个单元格包含落入该单元格的分类器所做的预测数量。
[![Truth Table Confusion Matrix](img/77dddc6647d29c6f5b500f602293112c.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/03/truth_table.png)
真相表混淆矩阵
在这种情况下,一个完美的分类器将正确预测201没有复发和85复发,这将进入左上角的细胞没有复发/没有复发(真阴性)和右下角细胞复发/复发(真阳性)。
在这种情况下,一个完美的分类器将正确预测 201 没有复发和 85 复发,这将进入左上角的细胞没有复发/没有复发(真阴性)和右下角细胞复发/复发(真阳性)。
不正确的预测显然会分解为另外两个单元格。假阴性是分类器标记为不再发生的重复。我们没有这些。假阳性不是分类器标记为重复的重复。
......@@ -75,13 +75,13 @@ CART或[分类和回归树](http://en.wikipedia.org/wiki/Predictive_analytics#Cl
所有递归混淆矩阵
### CART混淆矩阵
### CART 混淆矩阵
这看起来像一个更有价值的分类器,因为它正确地预测了10个重复事件以及188个没有重复事件。该模型还显示了适度数量的假阴性(75)和假阳性(13)。
这看起来像一个更有价值的分类器,因为它正确地预测了 10 个重复事件以及 188 个没有重复事件。该模型还显示了适度数量的假阴性(75)和假阳性(13)。
[![CART Confusion Matrix](img/a0eba0e35ba562edceef57a31926c486.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/03/cart_confusion_matrix.png)
CART混淆矩阵
CART 混淆矩阵
## 准确率悖论
......@@ -97,11 +97,11 @@ CART混淆矩阵
精度可以被认为是分类器精确度的度量。低精度也可以表示大量的误报。
* All No Reurrence模型的精度为0 /(0 + 0)或不是数字,或0。
* All Recurrence模型的精度为85 /(85 + 201)或0.30。
* CART模型的精度为10 /(10 + 13)或0.43。
* All No Reurrence 模型的精度为 0 /(0 + 0)或不是数字,或 0。
* All Recurrence 模型的精度为 85 /(85 + 201)或 0.30。
* CART 模型的精度为 10 /(10 + 13)或 0.43。
精度表明CART是一个更好的模型,即使它具有较低的准确度,所有重复发生比全无重复模型更有用。 All Reurrence模型和CART之间的精确度差异可以通过All Recurrence模型预测的大量误报来解释。
精度表明 CART 是一个更好的模型,即使它具有较低的准确度,所有重复发生比全无重复模型更有用。 All Reurrence 模型和 CART 之间的精确度差异可以通过 All Recurrence 模型预测的大量误报来解释。
## 召回
......@@ -109,24 +109,24 @@ CART混淆矩阵
召回可以被认为是分类器完整性的度量。低召回率表示许多假阴性。
* All No Recurrence模型的召回是0 /(0 + 85)或0。
* 召回全复发模型为85 /(85 + 0)或1。
* 召回CART为10 /(10 + 75)或0.12。
* All No Recurrence 模型的召回是 0 /(0 + 85)或 0。
* 召回全复发模型为 85 /(85 + 0)或 1。
* 召回 CART 为 10 /(10 + 75)或 0.12。
正如您所料,All Reurrence模型具有完美的回忆,因为它预测所有实例的“重复”。 CART的召回率低于All Recurrence模型的召回率。这可以通过CART模型预测的大量(75)假阴性来解释。
正如您所料,All Reurrence 模型具有完美的回忆,因为它预测所有实例的“重复”。 CART 的召回率低于 All Recurrence 模型的召回率。这可以通过 CART 模型预测的大量(75)假阴性来解释。
## F1得分
## F1 得分
[F1分数](http://en.wikipedia.org/wiki/F1_score)是2 *((精确*召回)/(精确+召回))。它也被称为F分数或F量度。换句话说,F1分数表达了精确度和召回之间的平衡。
[F1 分数](http://en.wikipedia.org/wiki/F1_score)是 2 *((精确*召回)/(精确+召回))。它也被称为 F 分数或 F 量度。换句话说,F1 分数表达了精确度和召回之间的平衡。
* 全无复发模型的F1为2 *((0 * 0)/ 0 + 0)或0。
* 全复发模型的F1为2 *((0.3 * 1)/0.3+1)或0.46。
* CART模型的F1为2 *((0.43 * 0.12)/0.43+0.12)或0.19。
* 全无复发模型的 F1 为 2 *((0 * 0)/ 0 + 0)或 0。
* 全复发模型的 F1 为 2 *((0.3 * 1)/0.3+1)或 0.46。
* CART 模型的 F1 为 2 *((0.43 * 0.12)/0.43+0.12)或 0.19。
如果我们希望基于精确度和召回之间的平衡来选择模型,F1测量表明所有重复模型都是最佳模型,并且CART模型还没有足够的竞争力。
如果我们希望基于精确度和召回之间的平衡来选择模型,F1 测量表明所有重复模型都是最佳模型,并且 CART 模型还没有足够的竞争力。
## 摘要
在这篇文章中,您了解了准确率悖论以及类别不平衡的问题,因为单独的分类准确率无法被信任以选择表现良好的模型。
通过示例,您了解了混淆矩阵,以此来描述未见数据集的预测中的错误细分。您了解了总结模型准确率(准确率)和召回(完整性)的措施,以及F1分数中两者之间平衡的描述。
\ No newline at end of file
通过示例,您了解了混淆矩阵,以此来描述未见数据集的预测中的错误细分。您了解了总结模型准确率(准确率)和召回(完整性)的措施,以及 F1 分数中两者之间平衡的描述。
\ No newline at end of file
......@@ -4,7 +4,7 @@
如果您可以使用预测模型来查找数据中不存在但可能有价值的新属性组合,该怎么办?
[Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) 的第10章中,Kuhn和Johnson提供了一个案例研究。这是一个如何使用预测模型的迷人和创造性的例子。
[Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) 的第 10 章中,Kuhn 和 Johnson 提供了一个案例研究。这是一个如何使用预测模型的迷人和创造性的例子。
在这篇文章中,我们将发现这种不太明显的预测模型的使用以及它所属的实验设计的类型。
......@@ -27,7 +27,7 @@
所得混合物所关注的性质是混凝土的抗压强度。需要具有较少或较便宜成分的强混凝土。
请参阅 [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) 的第10章,以深入了解该问题。
请参阅 [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) 的第 10 章,以深入了解该问题。
### 预测模型
......@@ -37,10 +37,10 @@
* 径向偏置函数支持向量机(SVM)
* 神经网络
* 火星
* 回归树(CART和条件推理树)
* Bagged和Boosted决策树
* 回归树(CART 和条件推理树)
* Bagged 和 Boosted 决策树
根据预测的RMSE和R ^ 2考虑模型准确率。一些表现更好的方法是神经网络,Boosted决策树,立体主义和随机森林。
根据预测的 RMSE 和 R ^ 2 考虑模型准确率。一些表现更好的方法是神经网络,Boosted 决策树,立体主义和随机森林。
### 优化压缩强度
......@@ -48,7 +48,7 @@
在创建和选择精确模型(神经网络和立体模型)之后,使用模型来定位新的混合物量,从而提高混凝土压缩强度。
这涉及使用称为 [Nelder Mead算法](http://en.wikipedia.org/wiki/Nelder%E2%80%93Mead_method)的直接搜索方法(也称为[模式搜索](http://en.wikipedia.org/wiki/Pattern_search_(optimization)))来搜索参数空间中的混合量的组合,当传递给预测模型时,预测具体压缩强度大于数据集中的任何压缩强度。
这涉及使用称为 [Nelder Mead 算法](http://en.wikipedia.org/wiki/Nelder%E2%80%93Mead_method)的直接搜索方法(也称为[模式搜索](http://en.wikipedia.org/wiki/Pattern_search_(optimization)))来搜索参数空间中的混合量的组合,当传递给预测模型时,预测具体压缩强度大于数据集中的任何压缩强度。
发现了许多新的混合物,并在相对于提供的数据的投影域中绘制。这些新混合物代表了可以进行实际商业实验的基础,以便找到改进的混凝土混合物。
......@@ -56,7 +56,7 @@
该方法与称为[响应面方法](http://en.wikipedia.org/wiki/Response_surface_methodology)(RSM)的特定类型的实验设计有关。
当您想要开发,改进或优化新产品或现有产品的流程时,可以使用RSM。它通常用于工业设置。它用于输入和输出之间的关系不能很好理解并需要估计的问题。
当您想要开发,改进或优化新产品或现有产品的流程时,可以使用 RSM。它通常用于工业设置。它用于输入和输出之间的关系不能很好理解并需要估计的问题。
执行设计的实验以收集输入和响应变量或变量的示例。输入变量可以是过程中的数量或时间,输出或响应变量是强度或质量等结果所需的。
......@@ -68,7 +68,7 @@
## 代理模型
[代理建模](http://en.wikipedia.org/wiki/Surrogate_model)是指使用RSM构建的模型代替问题的模拟。例如,在航空领域,您可以设计和制造飞机机翼,在软件中进行设计并在模拟器中进行测试,并对实验结果或模拟结果进行建模,并估算要测试的新设计。
[代理建模](http://en.wikipedia.org/wiki/Surrogate_model)是指使用 RSM 构建的模型代替问题的模拟。例如,在航空领域,您可以设计和制造飞机机翼,在软件中进行设计并在模拟器中进行测试,并对实验结果或模拟结果进行建模,并估算要测试的新设计。
模型可以更精细地捕获输入和响应变量之间的复杂非线性关系。例如,可以使用支持向量机和神经网络。另外,可以使用更强大的直接搜索方法,其使用随机过程,例如模拟退火或进化算法。
......@@ -79,7 +79,7 @@
3. 根据实验数据构建代理模型
4. 使用代理模型将搜索方法应用于变量
5. 基于替代模型的优化预测顺序执行实验
6. 迭代步骤3到5,直到满足停止条件
6. 迭代步骤 3 到 5,直到满足停止条件
## 摘要
......
......@@ -2,22 +2,22 @@
> 原文: [https://machinelearningmastery.com/common-pitfalls-machine-learning-projects/](https://machinelearningmastery.com/common-pitfalls-machine-learning-projects/)
在最近的一次演讲中, [Ben Hamner](https://www.linkedin.com/pub/ben-hamner/12/597/987) 描述了他和他的同事在Kaggle比赛期间观察到的机器学习项目的常见缺陷。
在最近的一次演讲中, [Ben Hamner](https://www.linkedin.com/pub/ben-hamner/12/597/987) 描述了他和他的同事在 Kaggle 比赛期间观察到的机器学习项目的常见缺陷。
这次演讲名为“[机器学习小鬼](https://www.youtube.com/watch?v=tleeC-KlsKA)”,于2014年2月在Strata 的[上发表。](http://strataconf.com/strata2014/public/schedule/detail/32168)
这次演讲名为“[机器学习小鬼](https://www.youtube.com/watch?v=tleeC-KlsKA)”,于 2014 年 2 月在 Strata 的[上发表。](http://strataconf.com/strata2014/public/schedule/detail/32168)
在这篇文章中,我们来看看Ben的演讲中的陷阱,它们的样子以及如何避免它们。
在这篇文章中,我们来看看 Ben 的演讲中的陷阱,它们的样子以及如何避免它们。
## 机器学习过程
在演讲的早期,Ben介绍了端到端地处理机器学习问题的过程。
在演讲的早期,Ben 介绍了端到端地处理机器学习问题的过程。
[![Machine Learning Process](img/998899258133eac8dd50bad4c8b81238.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/12/Machine-Learning-Process.png)
机器学习过程
取自Ben Hamner的“机器学习小鬼”
取自 Ben Hamner 的“机器学习小鬼”
此快照包括9个步骤,如下所示:
此快照包括 9 个步骤,如下所示:
1. 从业务问题开始
2. 来源数据
......@@ -35,12 +35,12 @@
## 辨别狗和猫
Ben提出了一个案例研究问题,用于建造一个自动猫门,可以让猫进来并让狗出门。这是一个有启发性的例子,因为它涉及到处理数据问题时的一些关键问题。
Ben 提出了一个案例研究问题,用于建造一个自动猫门,可以让猫进来并让狗出门。这是一个有启发性的例子,因为它涉及到处理数据问题时的一些关键问题。
[![Discriminating Dogs and Cats](img/9021592e933f483325488a2245a5f0c8.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/12/Discriminating-Dogs-and-Cats.png)
辨别狗和猫
取自Ben Hamner的“机器学习小鬼”
取自 Ben Hamner 的“机器学习小鬼”
### 样本量
......@@ -56,23 +56,23 @@ Ben提出了一个案例研究问题,用于建造一个自动猫门,可以
## 机器学习项目中的陷阱
在继续研究机器学习问题时,Ben继续讨论了四个常见的陷阱。
在继续研究机器学习问题时,Ben 继续讨论了四个常见的陷阱。
虽然这些问题很常见,但他指出可以相对容易地识别和解决这些问题。
[![Overfitting](img/fdfb6540917cf5d696956e3fd516df67.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/12/Overfitting.png)
过拟合
取自Ben Hamner的“机器学习小鬼”
取自 Ben Hamner 的“机器学习小鬼”
* **数据泄漏**:利用生产系统无法访问的模型中的数据的问题。这在时间序列问题中尤为常见。也可能发生系统ID等可能表示类标签的数据。运行模型并仔细查看有助于模型成功的属性。理智检查并考虑是否有意义。 (查看参考文献“[数据挖掘漏洞](http://dstillery.com/wp-content/uploads/2014/05/Leakage-in-Data-Mining-Formulation-Detection-and-Avoidance.pdf)”PDF)
* **数据泄漏**:利用生产系统无法访问的模型中的数据的问题。这在时间序列问题中尤为常见。也可能发生系统 ID 等可能表示类标签的数据。运行模型并仔细查看有助于模型成功的属性。理智检查并考虑是否有意义。 (查看参考文献“[数据挖掘漏洞](http://dstillery.com/wp-content/uploads/2014/05/Leakage-in-Data-Mining-Formulation-Detection-and-Avoidance.pdf)”PDF)
* **过拟合**:过于紧密地对训练数据建模,使得模型还包括模型中的噪声。结果是推广能力差。这在更高维度中变得更成问题,具有更复杂的类边界。
* **数据采样和拆分**:与数据泄漏有关,您需要非常小心,训练/测试/验证集确实是独立的样本。时间序列问题需要大量的思考和工作,以确保您可以按时间顺序回复数据并验证模型的准确率。
* **数据质量**:检查数据的一致性。 Ben给出了一些飞行数据的例子,其中一些飞机在起飞前着陆。需要识别和明确处理不一致,重复和损坏的数据。它可以直接损害建模问题和模型推广的能力。
* **数据质量**:检查数据的一致性。 Ben 给出了一些飞行数据的例子,其中一些飞机在起飞前着陆。需要识别和明确处理不一致,重复和损坏的数据。它可以直接损害建模问题和模型推广的能力。
## 摘要
Ben的演讲“[机器学习小精灵](https://www.youtube.com/watch?v=tleeC-KlsKA)”是一个快速而实用的演讲。
Ben 的演讲“[机器学习小精灵](https://www.youtube.com/watch?v=tleeC-KlsKA)”是一个快速而实用的演讲。
您将在我们在处理数据问题时容易受到的常见陷阱中获得有用的速成课程。
......
......@@ -2,9 +2,9 @@
> 原文: [https://machinelearningmastery.com/data-cleaning-turn-messy-data-into-tidy-data/](https://machinelearningmastery.com/data-cleaning-turn-messy-data-into-tidy-data/)
数据准备很困难,因为这个过程不客观,或者至少它没有这种感觉。诸如“_之类的问题,描述问题的最佳数据形式是什么?_ “不客观。您必须从您想要解决的问题的角度思考,并通过您的管道尝试一些不同的表示。
数据准备很困难,因为这个过程不客观,或者至少它没有这种感觉。诸如“_ 之类的问题,描述问题的最佳数据形式是什么?_ “不客观。您必须从您想要解决的问题的角度思考,并通过您的管道尝试一些不同的表示。
[Hadley Wickham](http://had.co.nz) 是莱斯大学的[兼职教授](http://www.linkedin.com/pub/hadley-wickham/13/9b6/31)和首席科学家以及 [RStudio](https://www.rstudio.com/) ,他对这个问题非常感兴趣。他撰写了一些最受欢迎的R软件包,用于组织和呈现您的数据,例如reshape,plyr和ggplot2。在他的期刊文章 [Tidy Data](http://vita.had.co.nz/papers/tidy-data.pdf) 中,Wickham展示了他对数据清理的看法,并通过整洁的数据来定义他的意思。
[Hadley Wickham](http://had.co.nz) 是莱斯大学的[兼职教授](http://www.linkedin.com/pub/hadley-wickham/13/9b6/31)和首席科学家以及 [RStudio](https://www.rstudio.com/) ,他对这个问题非常感兴趣。他撰写了一些最受欢迎的 R 软件包,用于组织和呈现您的数据,例如 reshape,plyr 和 ggplot2。在他的期刊文章 [Tidy Data](http://vita.had.co.nz/papers/tidy-data.pdf) 中,Wickham 展示了他对数据清理的看法,并通过整洁的数据来定义他的意思。
[![tidy data](img/1aae24a59d7cb52444eb8b05c331ba00.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/05/tidy-data.jpg)
......@@ -12,18 +12,18 @@ Tidy Data,照片由 [Andrew King](https://www.flickr.com/photos/watt_dabney/55
## 数据清理
大量的数据分析时间用于[数据清理和准备数据](http://en.wikipedia.org/wiki/Data_cleansing),高达80%的时间。威克姆指出,这不是一次性的过程,它是迭代的,因为你在每次连续传递中更深入地理解问题。目标是构建数据以便于您计划执行的数据分析。
大量的数据分析时间用于[数据清理和准备数据](http://en.wikipedia.org/wiki/Data_cleansing),高达 80%的时间。威克姆指出,这不是一次性的过程,它是迭代的,因为你在每次连续传递中更深入地理解问题。目标是构建数据以便于您计划执行的数据分析。
## 整洁的数据
Wickham的想法充分利用了关系数据库的思想和计算机科学的数据库规范化,尽管他的受众是统计学家和数据分析师。他从定义术语开始,建议谈论行和列不够丰富:
Wickham 的想法充分利用了关系数据库的思想和计算机科学的数据库规范化,尽管他的受众是统计学家和数据分析师。他从定义术语开始,建议谈论行和列不够丰富:
* 数据是给定类型的值的集合
* 每个值都属于一个变量
* 每个变量都属于一个观察
* 观察是单位的变量(如对象或事件)。
变量是列,观察是行,观察类型是表。传统上,Wickham将此与关系数据库理论中的第三范式相关联。他还将变量的类型描述为固定和测量,并建议在表中测量之前组织固定。
变量是列,观察是行,观察类型是表。传统上,Wickham 将此与关系数据库理论中的第三范式相关联。他还将变量的类型描述为固定和测量,并建议在表中测量之前组织固定。
* **固定变量**:一个变量,它是实验设计的一部分,在实验开始之前就已知(如人口统计学)
* **测量变量**:在研究中测量的变量。
......@@ -32,7 +32,7 @@ Wickham的想法充分利用了关系数据库的思想和计算机科学的数
## 工作的例子
Wickham说真实数据集违反了整洁数据的原则。他描述了5个常见问题:
Wickham 说真实数据集违反了整洁数据的原则。他描述了 5 个常见问题:
* 列标题是值,而不是变量名
* 多个变量存储在一列中
......@@ -46,7 +46,7 @@ Wickham说真实数据集违反了整洁数据的原则。他描述了5个常见
[![tidy data](img/0390eac54610b78fbfb4868fa0401233.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/05/tidy-data.png)
Hadley Wickham提供的整洁数据
Hadley Wickham 提供的整洁数据
## 整洁的数据工具
......@@ -56,21 +56,21 @@ Hadley Wickham提供的整洁数据
* **可视化**:使用图形和图表汇总数据以进行探索和展示。
* **建模**:这是整洁数据的驱动灵感,建模就是我们要做的。
Wickham小心地指出,整洁的数据只是数据清理过程的一部分。整洁数据的其他区域包括解析变量类型(日期和数字),处理缺失值,字符编码,拼写错误和异常值。
Wickham 小心地指出,整洁的数据只是数据清理过程的一部分。整洁数据的其他区域包括解析变量类型(日期和数字),处理缺失值,字符编码,拼写错误和异常值。
他评论说,这项工作是基于他自己的咨询和教学经验,而且他的经验是相当可观的,因为他的R套餐是下载最多的。
他评论说,这项工作是基于他自己的咨询和教学经验,而且他的经验是相当可观的,因为他的 R 套餐是下载最多的。
## 资源
Wickham似乎在2011年发布了这些想法。您可以在题为 [Timey Data on Vimeo](http://vimeo.com/33727555)[审查幻灯片](http://stat405.had.co.nz/lectures/18-tidy-data.pdf)(PDF)的演示文稿中观看类似想法的演示。
Wickham 似乎在 2011 年发布了这些想法。您可以在题为 [Timey Data on Vimeo](http://vimeo.com/33727555)[审查幻灯片](http://stat405.had.co.nz/lectures/18-tidy-data.pdf)(PDF)的演示文稿中观看类似想法的演示。
<iframe allowfullscreen="" frameborder="0" height="281" src="https://www.youtube.com/embed/TaxJwC_MP9Q?feature=oembed" width="500"></iframe>
Wickam还在2011年就#HTG0工程数据分析(使用R和ggplot2)提出了相同的想法。我也建议看这个演讲。他强调了特定领域语言在这项工作中的重要性,如ggplot2(图形语法)等。他还强调了使用编程语言进行这项工作(而不是excel)来获得透明度,可重复性和自动化等属性的重要性。使用相同的死亡率案例研究。
Wickam 还在 2011 年就#HTG0 工程数据分析(使用 R 和 ggplot2)提出了相同的想法。我也建议看这个演讲。他强调了特定领域语言在这项工作中的重要性,如 ggplot2(图形语法)等。他还强调了使用编程语言进行这项工作(而不是 excel)来获得透明度,可重复性和自动化等属性的重要性。使用相同的死亡率案例研究。
Wickam在他的论文中提到的一些你可能想要研究的好书包括:
Wickam 在他的论文中提到的一些你可能想要研究的好书包括:
* [数据库管理的关系模型:第2](http://www.amazon.com/dp/0201141922?tag=inspiredalgor-20)关于关系数据库理论和数据规范化。
* [数据库管理的关系模型:第 2 ](http://www.amazon.com/dp/0201141922?tag=inspiredalgor-20)关于关系数据库理论和数据规范化。
* [探索性数据挖掘和数据清理](http://www.amazon.com/dp/0471268518?tag=inspiredalgor-20)关于数据清理和数据准备的最佳实践。
* [图形语法](http://www.amazon.com/dp/0387245448?tag=inspiredalgor-20)关于R和python图表库ggplot上使用的现在着名的图形语法。
* [Lattice:R的多变量数据可视化(使用R!)](http://www.amazon.com/dp/0387759689?tag=inspiredalgor-20)在Lattice R软件包上绘制数据图表。
\ No newline at end of file
* [图形语法](http://www.amazon.com/dp/0387245448?tag=inspiredalgor-20)关于 R 和 python 图表库 ggplot 上使用的现在着名的图形语法。
* [Lattice:R 的多变量数据可视化(使用 R!)](http://www.amazon.com/dp/0387759689?tag=inspiredalgor-20)在 Lattice R 软件包上绘制数据图表。
\ No newline at end of file
......@@ -67,7 +67,7 @@
> “太好了不可能”表现是它存在的“死亡赠品”
-13章,[做数据科学:从前线直接谈话](http://www.amazon.com/dp/1449358659?tag=inspiredalgor-20)
- 13 章,[做数据科学:从前线直接谈话](http://www.amazon.com/dp/1449358659?tag=inspiredalgor-20)
数据泄漏通常是复杂数据集的一个问题,例如:
......@@ -98,7 +98,7 @@
> 现实情况是,作为一名数据科学家,您在准备,清理数据,估算缺失值,删除异常值等任何时候都存在产生数据泄漏情况的风险。您可能在准备数据时扭曲数据到了你将构建一个在你的“干净”数据集上运行良好的模型,但是在你真正想要应用它的真实情况中应用时会非常糟糕。
-313页,[做数据科学:从前线直接谈话](http://www.amazon.com/dp/1449358659?tag=inspiredalgor-20)
- 313 页,[做数据科学:从前线直接谈话](http://www.amazon.com/dp/1449358659?tag=inspiredalgor-20)
更一般地说,非泄漏数据准备必须在交叉验证周期的每个折叠内进行。
......@@ -108,9 +108,9 @@
> 如果对所有数据执行特征选择然后交叉验证,则交叉验证过程的每个折叠中的测试数据也用于选择特征,这是表现分析的偏差。
- Dikran Marsupial,回答Cross Validated上的问题“[特征选择和交叉验证](http://stats.stackexchange.com/questions/27750/feature-selection-and-cross-validation)”。
- Dikran Marsupial,回答 Cross Validated 上的问题“[特征选择和交叉验证](http://stats.stackexchange.com/questions/27750/feature-selection-and-cross-validation)”。
R中的R和scikit-learn这样的平台有助于自动化这种良好实践,使用中的[插入符包和scikit-learn](http://machinelearningmastery.com/caret-r-package-for-applied-predictive-modeling/) 中的[管道。](http://machinelearningmastery.com/automate-machine-learning-workflows-pipelines-python-scikit-learn/)
R 中的 R 和 scikit-learn 这样的平台有助于自动化这种良好实践,使用中的[插入符包和 scikit-learn](http://machinelearningmastery.com/caret-r-package-for-applied-predictive-modeling/) 中的[管道。](http://machinelearningmastery.com/automate-machine-learning-workflows-pipelines-python-scikit-learn/)
### 2.阻止验证数据集
......@@ -122,14 +122,14 @@
> 基本上,真正解决这个问题的唯一方法是保留一个独立的测试集并保持它直到研究完成并用它进行最终验证。
- Dikran Marsupial回答问题“[我如何帮助确保测试数据不会泄漏到训练数据中?](http://stats.stackexchange.com/questions/20010/how-can-i-help-ensure-testing-data-does-not-leak-into-training-data) “在Cross验证
- Dikran Marsupial 回答问题“[我如何帮助确保测试数据不会泄漏到训练数据中?](http://stats.stackexchange.com/questions/20010/how-can-i-help-ensure-testing-data-does-not-leak-into-training-data) “在 Cross 验证
## 5个防止数据泄漏的技巧
## 5 个防止数据泄漏的技巧
* **时间截止**。在感兴趣事件发生之前删除所有数据,重点关注您了解事实或观察的时间,而不是观察发生的时间。
* **添加噪音**。将随机噪声添加到输入数据以尝试平滑可能泄漏变量的影响。
* **删除Leaky变量**。使用帐号和ID等变量评估简单的基于规则的模型行OneR,以查看这些变量是否泄漏,如果是,则删除它们。如果您怀疑变量是否泄漏,请考虑将其删除。
* **使用管道**。大量使用管道架构,允许在交叉验证折叠中执行一系列数据准备步骤,例如R中的插入符包和scikit-learn中的管道。
* **删除 Leaky 变量**。使用帐号和 ID 等变量评估简单的基于规则的模型行 OneR,以查看这些变量是否泄漏,如果是,则删除它们。如果您怀疑变量是否泄漏,请考虑将其删除。
* **使用管道**。大量使用管道架构,允许在交叉验证折叠中执行一系列数据准备步骤,例如 R 中的插入符包和 scikit-learn 中的管道。
* **使用保持数据集**。在使用模型之前,请暂停一个看不见的验证数据集作为模型的最终完整性检查。
## 进一步阅读数据泄漏
......@@ -140,10 +140,10 @@
* [数据挖掘中的泄漏:秘籍,检测和避免](https://www.cs.umb.edu/~ding/history/470_670_fall_2011/papers/cs670_Tran_PreferredPaper_LeakingInDataMining.pdf) [pdf],2011。(推荐!)
* [关于数据怀疑播客](http://dataskeptic.com/epnotes/leakage.php)数据泄漏的迷你剧集。
*13章:从数据竞争中吸取的教训:数据泄漏和模型评估,来自[做数据科学:直接从前线谈话](http://www.amazon.com/dp/1449358659?tag=inspiredalgor-20),2013。
* [询问数据科学家:数据泄漏](http://insidebigdata.com/2014/11/26/ask-data-scientist-data-leakage/),2014年
* [Kaggle Wiki上的数据泄漏](https://www.kaggle.com/wiki/Leakage)
* [有关ICML 2013鲸鱼挑战赛](https://www.kaggle.com/c/the-icml-2013-whale-challenge-right-whale-redux/forums/t/4865/the-leakage-and-how-it-was-fixed/25839#post25839)数据泄漏的精彩讨论
* 13 章:从数据竞争中吸取的教训:数据泄漏和模型评估,来自[做数据科学:直接从前线谈话](http://www.amazon.com/dp/1449358659?tag=inspiredalgor-20),2013。
* [询问数据科学家:数据泄漏](http://insidebigdata.com/2014/11/26/ask-data-scientist-data-leakage/),2014
* [Kaggle Wiki 上的数据泄漏](https://www.kaggle.com/wiki/Leakage)
* [有关 ICML 2013 鲸鱼挑战赛](https://www.kaggle.com/c/the-icml-2013-whale-challenge-right-whale-redux/forums/t/4865/the-leakage-and-how-it-was-fixed/25839#post25839)数据泄漏的精彩讨论
## 摘要
......
......@@ -12,7 +12,7 @@
机器学习方法从实例中学习。掌握输入数据和描述数据时使用的各种术语非常重要。在本节中,您将学习在引用数据时机器学习中使用的术语。
当我想到数据时,我会想到行和列,比如数据库表或Excel电子表格。这是一种传统的数据结构,是机器学习领域的常见结构。目前不考虑其他数据,如图像,视频和文本,即所谓的非结构化数据。
当我想到数据时,我会想到行和列,比如数据库表或 Excel 电子表格。这是一种传统的数据结构,是机器学习领域的常见结构。目前不考虑其他数据,如图像,视频和文本,即所谓的非结构化数据。
![Table of Data Showing an Instance, Feature, and Train-Test Datasets](img/a0d93936402854bdfbae105daf15c287.jpg)
......
......@@ -50,31 +50,31 @@
有几种不同类型的数据存储库具有不同的用途。这些包括,从最简单到最复杂:
**数据库**:“_有组织的相关信息_”([定义](http://wordnet.princeton.edu/perl/webwn)
**数据库**:“_ 有组织的相关信息 _”([定义](http://wordnet.princeton.edu/perl/webwn)
这里的关键术语是有条理的。简单的关系数据库以明确定义的结构化方式存储记录和记录之间关系的最基本信息。结构是关键,数据库不一定需要掌握有关存储的数据或它们的含义的任何知识。许多类型的数据甚至可以存储为二进制大对象(BLOBS)。
**数据仓库**:“_来自多个可能异构数据源的数据集成存储库,具有一致且一致的语义_”([定义](http://www.genomicglossaries.com/content/algorithms_glossary.asp)
**数据仓库**:“_ 来自多个可能异构数据源的数据集成存储库,具有一致且一致的语义 _”([定义](http://www.genomicglossaries.com/content/algorithms_glossary.asp)
随着数据仓库的语义被添加到数据结构中。语义算法试图通常以本体的形式为数据添加含义。基于受控词汇表的本体,在词汇术语之间具有明确定义的关系(例如,“_醇脱氢酶_”是A“_蛋白质_”)。
随着数据仓库的语义被添加到数据结构中。语义算法试图通常以本体的形式为数据添加含义。基于受控词汇表的本体,在词汇术语之间具有明确定义的关系(例如,“_ 醇脱氢酶 _”是 A“_ 蛋白质 _”)。
**数据存档**:“_保存用于历史或参考目的的文档版本_”([定义](http://www.bbn.com/glossary)
**数据存档**:“_ 保存用于历史或参考目的的文档版本 _”([定义](http://www.bbn.com/glossary)
数据存档通常保存在可靠的媒体上,并且不一定必须快速访问,因为数据是为了历史目的而保存的。许多组织要求将数据保留一段特定的时间,即使在分析数据并公布结果之后也是如此。
**数据集成**:“_组合驻留在不同来源的数据并为用户提供这些数据的统一视图的过程_”([定义](http://en.wikipedia.org/wiki/Data%20integration)
**数据集成**:“_ 组合驻留在不同来源的数据并为用户提供这些数据的统一视图的过程 _”([定义](http://en.wikipedia.org/wiki/Data%20integration)
前三种类型的存储库通常处理单一类型的数据:就业记录,或蛋白质 - 蛋白质相互作用数据。数据集成不是一个存储库,而是一组用于将不同数据类型组合到单个数据集中的算法,以便允许更有用的分析。例如,将人口统计量(年龄,性别,BMI等)与血液检测结果和经济数据相结合,可以让您比单独的血液检查更深入地了解您的健康状况。
前三种类型的存储库通常处理单一类型的数据:就业记录,或蛋白质 - 蛋白质相互作用数据。数据集成不是一个存储库,而是一组用于将不同数据类型组合到单个数据集中的算法,以便允许更有用的分析。例如,将人口统计量(年龄,性别,BMI 等)与血液检测结果和经济数据相结合,可以让您比单独的血液检查更深入地了解您的健康状况。
### 2.备份数据
每个人都知道应该定期备份所有硬盘驱动器,尽管可怕的比例人们并不经常这样做。这样做吧!数据备份应包括:
每日增量备份到不同的硬盘驱动器,甚至是USB记忆棒。有许多备份解决方案,包括免费和专有。 [维基百科有一个相当全面的清单](http://en.wikipedia.org/wiki/List_of_backup_software)
每日增量备份到不同的硬盘驱动器,甚至是 USB 记忆棒。有许多备份解决方案,包括免费和专有。 [维基百科有一个相当全面的清单](http://en.wikipedia.org/wiki/List_of_backup_software)
文件同步软件不会尝试从一个驱动器备份到另一个驱动器的所有内容,但会跟踪每个文件的上次更新版本,并保存最新版本。如果文件已在两个位置同时更新,则大多数应用程序将询问用户选择哪一个。 [请参阅维基百科列表](http://en.wikipedia.org/wiki/Comparison_of_file_synchronization_software)
对于它的价值,我使用Unison,并且对它的表现非常满意。
对于它的价值,我使用 Unison,并且对它的表现非常满意。
除每日增量备份外,还应定期执行完整备份。备份的一个副本应存储在现场,以便在发生灾难时快速访问,并且至少有一个异地,以防发生真正的灾难。如果您有硬盘故障并需要访问您的文件,它们应该在抽屉中。如果您的办公室烧毁,文件应该在您家或妈妈的家里。
......@@ -102,9 +102,9 @@
数据维护的另一个重要问题是媒体问题。存储介质变得过时,真正令人恐惧。
如今,大多数数据集都存储在硬盘上,并备份到DVD或USB记忆棒。这些媒体将不可避免地变得过时,在比现在看来可能更少的年代,机器学习从业者必须非常了解这一趋势。特别是在档案数据集(可能无法经常访问)的情况下,定期检查以确保数据仍然可读并且采用现代格式是必不可少的。
如今,大多数数据集都存储在硬盘上,并备份到 DVD 或 USB 记忆棒。这些媒体将不可避免地变得过时,在比现在看来可能更少的年代,机器学习从业者必须非常了解这一趋势。特别是在档案数据集(可能无法经常访问)的情况下,定期检查以确保数据仍然可读并且采用现代格式是必不可少的。
> 十多年来,1976年维京火星登陆的磁带未经处理。后来分析时,数据是不可读的,因为它是一种未知的格式,原来的程序员已经死亡或者离开了NASA
> 十多年来,1976 年维京火星登陆的磁带未经处理。后来分析时,数据是不可读的,因为它是一种未知的格式,原来的程序员已经死亡或者离开了 NASA
- 来自[数字黑暗时代](http://en.wikipedia.org/wiki/Digital_dark_age)的维基百科文章。
......@@ -123,7 +123,7 @@
<iframe allowfullscreen="" frameborder="0" height="281" src="https://www.youtube.com/embed/k6dosJ9phWY?feature=oembed" width="500"></iframe>
密歇根大学的Todd Austin撰写的一篇(大部分)计算机安全简介:
密歇根大学的 Todd Austin 撰写的一篇(大部分)计算机安全简介:
<iframe allowfullscreen="" frameborder="0" height="375" src="https://www.youtube.com/embed/o6pgd8gLFHg?feature=oembed" width="500"></iframe>
......@@ -131,4 +131,4 @@
* 关于数字黑暗时代的优秀文章,当存储媒体变得不可读时[可在维基百科](http://en.wikipedia.org/wiki/Digital_dark_age)上找到。
* 计算机存储介质的老化速度有多快? [查看这篇文章?](http://www.zetta.net/history-of-computer-storage/)
* 有关生物学和生物医学最低信息标准的概要,请参阅[开放生物学和生物医学本体](http://www.obofoundry.org/)
* Web应用程序访问控制的一个很好的概述,来自名为[访问控制备忘单](https://www.owasp.org/index.php/Access_Control_Cheat_Sheet)的Open Web Application Security Project。
\ No newline at end of file
* Web 应用程序访问控制的一个很好的概述,来自名为[访问控制备忘单](https://www.owasp.org/index.php/Access_Control_Cheat_Sheet)的 Open Web Application Security Project。
\ No newline at end of file
......@@ -2,9 +2,9 @@
> 原文: [https://machinelearningmastery.com/deploy-machine-learning-model-to-production/](https://machinelearningmastery.com/deploy-machine-learning-model-to-production/)
### 5个实现机器学习的最佳实践。
### 5 个实现机器学习的最佳实践。
并非所有预测模型都是Google规模的。
并非所有预测模型都是 Google 规模的。
有时,您需要开发一个小型预测模型,并将其放入软件中。
......@@ -28,13 +28,13 @@
* 也许你想创建一个可以进行临时预测的独立程序。
* 也许您希望将模型合并到现有软件中。
我们假设您的软件是适度的。您不是在寻找Google规模的部署。也许它只适合你,也许只是一个客户或者可能是一些工作站。
我们假设您的软件是适度的。您不是在寻找 Google 规模的部署。也许它只适合你,也许只是一个客户或者可能是一些工作站。
**到目前为止还不错?**
现在,我们需要了解一些最佳实践,以便将准确可靠的模型投入运营。
## 5模型部署最佳实践
## 5 模型部署最佳实践
为什么不将模型打入您的软件并发布?
......@@ -61,9 +61,9 @@
### 2.从模型系数中分离预测算法
您可能已使用库来创建预测模型。例如,R,scikit-learnWeka。
您可能已使用库来创建预测模型。例如,R,scikit-learnWeka。
您可以选择使用该库部署模型,或者在软件中重新实现模型的预测方面。您甚至可能希望[将您的模型设置为Web服务](https://www.quora.com/What-is-the-easiest-way-to-deploy-a-machine-learning-model-say-a-regression-for-production)
您可以选择使用该库部署模型,或者在软件中重新实现模型的预测方面。您甚至可能希望[将您的模型设置为 Web 服务](https://www.quora.com/What-is-the-easiest-way-to-deploy-a-machine-learning-model-say-a-regression-for-production)
无论如何,最好将从模型内部做出预测的算法分开。这是从训练数据中学习的模型中的特定系数或结构。
......@@ -73,7 +73,7 @@
例如,使用回归算法做出预测非常简单,并且易于以您选择的语言实现。这将是重新实现的明显算法的示例,而不是模型训练中使用的库。
如果您决定使用该库做出预测,请熟悉API和依赖项。
如果您决定使用该库做出预测,请熟悉 API 和依赖项。
用于做出预测的软件就像应用程序中的所有其他软件一样。
......@@ -83,7 +83,7 @@
#### 2B。序列化您的模型系数
让我们调用模型学习的数字或结构:_系数_。
让我们调用模型学习的数字或结构:_ 系数 _。
这些数据不是您的应用程序的配置。
......@@ -130,7 +130,7 @@
设置完成后,每晚或每周运行一次,并自动报告。
**接下来,添加一个Now-Test。**
**接下来,添加一个 Now-Test。**
这是对最新数据的生产模型的测试。
......@@ -138,7 +138,7 @@
这可能是由内容漂移引起的,其中模型利用的数据中的关系随着时间的推移而微妙地变化。
如果表现低于最低表现要求,此Now-Test还可以吐出报告并发出警报(通过电子邮件)。
如果表现低于最低表现要求,此 Now-Test 还可以吐出报告并发出警报(通过电子邮件)。
### 5.挑战然后试用模型更新
......@@ -152,7 +152,7 @@
测试模型并且非常关键。给每个模型一个新的模型。
使用上面第4点中的Back-Test和Now-Test基础架构评估新模型的表现。仔细检查结果。
使用上面第 4 点中的 Back-Test 和 Now-Test 基础架构评估新模型的表现。仔细检查结果。
使用回归测试评估更改,作为最终的自动检查。
......@@ -168,7 +168,7 @@
将小型模型添加到操作软件是非常可行的。
在这篇文章中,您发现了5个步骤,以确保您覆盖您的基础并遵循良好的工程实践。
在这篇文章中,您发现了 5 个步骤,以确保您覆盖您的基础并遵循良好的工程实践。
总之,这些步骤是:
......@@ -182,7 +182,7 @@
* [建立生产机器学习基础设施](http://machinelearningmastery.com/building-a-production-machine-learning-infrastructure/)
这更多是关于Google规模的机器学习模型部署。观看所提及的视频,并查看AirBnB和Etsy生产管道的重要链接。
这更多是关于 Google 规模的机器学习模型部署。观看所提及的视频,并查看 AirBnB 和 Etsy 生产管道的重要链接。
您对此帖子有任何疑问或将您的模型投入生产吗?
在评论中提出您的问题,我会尽力回答。
\ No newline at end of file
......@@ -6,7 +6,7 @@
有许多术语可供使用,许多术语可能无法一致使用。如果您来自另一个可能使用与机器学习相同的术语的研究领域,尤其如此,但它们的使用方式不同。
例如:术语“_模型参数_”和“_模型超参数_”。
例如:术语“_ 模型参数 _”和“_ 模型超参数 _”。
对这些术语没有明确的定义是初学者的共同斗争,尤其是那些来自统计学或经济学领域的初学者。
......@@ -36,7 +36,7 @@
* **统计**:在统计中,您可以假设变量的分布,例如高斯分布。高斯分布的两个参数是平均值(`mu`)和标准偏差(`sigma`)。这适用于机器学习,其中这些参数可以从数据估计并用作预测模型的一部分。
* **编程**:在编程中,您可以将参数传递给函数。在这种情况下,参数是一个函数参数,可以具有一系列值。在机器学习中,您使用的特定模型是函数,需要参数才能对新数据做出预测。
模型是否具有固定或可变数量的参数确定它是否可被称为“_参数_”或“_非参数_”。
模型是否具有固定或可变数量的参数确定它是否可被称为“_ 参数 _”或“_ 非参数 _”。
模型参数的一些示例包括:
......@@ -57,9 +57,9 @@
当针对特定问题调整机器学习算法时,例如当您使用网格搜索或随机搜索时,您正在调整模型的超参数或命令以发现导致最熟练的模型参数预测。
> 许多模型具有不能从数据直接估计的重要参数。例如,在K-最近邻分类模型中......这种类型的模型参数被称为调整参数,因为没有可用于计算适当值的分析公式。
> 许多模型具有不能从数据直接估计的重要参数。例如,在 K-最近邻分类模型中......这种类型的模型参数被称为调整参数,因为没有可用于计算适当值的分析公式。
-64-65页, [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,2013
- 64-65 页, [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,2013
模型超参数通常被称为模型参数,这可能使事情变得混乱。克服这种混乱的一个好的经验法则如下:
......@@ -69,15 +69,15 @@
模型超参数的一些示例包括:
* 训练神经网络的学习率。
* 支持向量机的C和sigma超参数。
* k-最近邻居中的k。
* 支持向量机的 C 和 sigma 超参数。
* k-最近邻居中的 k。
## 进一步阅读
* 维基百科上的 [Hyperparameter](https://en.wikipedia.org/wiki/Hyperparameter)
* [什么是机器学习中的超参数? Quora上的](https://www.quora.com/What-are-hyperparameters-in-machine-learning)
* [模型超参数和模型参数有什么区别? StackExchange上的](https://datascience.stackexchange.com/questions/14187/what-is-the-difference-between-model-hyperparameters-and-model-parameters)
* [什么被认为是超参数?](https://www.reddit.com/r/MachineLearning/comments/40tfc4/what_is_considered_a_hyperparameter/)Reddit
* [什么是机器学习中的超参数? Quora 上的](https://www.quora.com/What-are-hyperparameters-in-machine-learning)
* [模型超参数和模型参数有什么区别? StackExchange 上的](https://datascience.stackexchange.com/questions/14187/what-is-the-difference-between-model-hyperparameters-and-model-parameters)
* [什么被认为是超参数?](https://www.reddit.com/r/MachineLearning/comments/40tfc4/what_is_considered_a_hyperparameter/) Reddit
## 摘要
......
......@@ -25,7 +25,7 @@
## 教程概述
本教程分为4个部分;他们是:
本教程分为 4 个部分;他们是:
1. 什么是专家的验证数据集?
2. 训练,验证和测试数据集的定义
......@@ -38,33 +38,33 @@
在本节中,我们将根据一些顶级机器学习文本和参考资料,查看训练,测试和验证数据集的定义方式以及它们的区别。
通常,术语“_验证集_”可与术语“_测试集_”互换使用,并且是指从训练模型中阻止的数据集的样本。
通常,术语“_ 验证集 _”可与术语“_ 测试集 _”互换使用,并且是指从训练模型中阻止的数据集的样本。
对训练数据集的模型技能的评估将导致偏差得分。因此,在保留的样本上评估模型,以给出模型技能的无偏估计。这通常称为算法评估的训练测试分割方法。
> 假设我们想要估计与在一组观察上拟合特定统计学习方法相关的测试误差。验证集方法[...]是一项非常简单的策略。它涉及将可用的观察组随机分成两部分,即训练集和验证集或保持集。该模型适合训练集,拟合模型用于预测验证集中观察的响应。得到的验证集错误率 - 通常在定量响应的情况下使用MSE评估 - 提供测试错误率的估计。
> 假设我们想要估计与在一组观察上拟合特定统计学习方法相关的测试误差。验证集方法[...]是一项非常简单的策略。它涉及将可用的观察组随机分成两部分,即训练集和验证集或保持集。该模型适合训练集,拟合模型用于预测验证集中观察的响应。得到的验证集错误率 - 通常在定量响应的情况下使用 MSE 评估 - 提供测试错误率的估计。
- Gareth James等,第176页,[统计学习导论:应用于R](http://www.amazon.com/dp/1461471370?tag=inspiredalgor-20) ,2013。
- Gareth James 等,第 176 页,[统计学习导论:应用于 R](http://www.amazon.com/dp/1461471370?tag=inspiredalgor-20) ,2013。
我们可以直接在Kuhn和Johnson的优秀文本“Applied Predictive Modeling”中看到可互换性。在这个例子中,他们清楚地指出,最终的模型评估必须在先前未使用过的数据集上进行,用于训练模型或调整模型参数。
我们可以直接在 Kuhn 和 Johnson 的优秀文本“Applied Predictive Modeling”中看到可互换性。在这个例子中,他们清楚地指出,最终的模型评估必须在先前未使用过的数据集上进行,用于训练模型或调整模型参数。
> 理想情况下,应该对未用于构建或微调模型的样本评估模型,以便它们提供无偏见的模型有效性。当手头有大量数据时,可以留出一组样本来评估最终模型。 “训练”数据集是用于创建模型的样本的通用术语,而“测试”或“验证”数据集用于限定表现。
- Max Kuhn和Kjell Johnson,第67页, [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,2013
- Max Kuhn 和 Kjell Johnson,第 67 页, [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,2013
传统上,用于评估最终模型表现的数据集可称为“测试集”。 Russell和Norvig在其开创性的AI教科书中重申了保持测试集完全分离的重要性。他们指的是以任何方式使用来自测试集的信息“偷看”。他们建议完全锁定测试装置,直到所有模型调整完成。
传统上,用于评估最终模型表现的数据集可称为“测试集”。 Russell 和 Norvig 在其开创性的 AI 教科书中重申了保持测试集完全分离的重要性。他们指的是以任何方式使用来自测试集的信息“偷看”。他们建议完全锁定测试装置,直到所有模型调整完成。
> 偷看是使用测试集表现来选择假设并对其进行评估的结果。避免这种情况的方法是真正保持测试集的锁定,直到你完全完成学习,并希望获得对最终假设的独立评估。 (然后,如果你不喜欢结果......如果你想回去找一个更好的假设,你必须获得并锁定一个全新的测试集。)
- Stuart Russell和Peter Norvig,第709页,[人工智能:现代方法](http://www.amazon.com/dp/0136042597?tag=inspiredalgor-20),2009(第3版)
- Stuart Russell 和 Peter Norvig,第 709 页,[人工智能:现代方法](http://www.amazon.com/dp/0136042597?tag=inspiredalgor-20),2009(第 3 版)
重要的是,Russell和Norvig评论说,用于拟合模型的训练数据集可以进一步分为训练集和验证集,并且它是训练数据集的这个子集,称为验证集,可用于获取早期估计模型的技能。
重要的是,Russell 和 Norvig 评论说,用于拟合模型的训练数据集可以进一步分为训练集和验证集,并且它是训练数据集的这个子集,称为验证集,可用于获取早期估计模型的技能。
> 如果测试集被锁定,但您仍希望测量未见数据的表现,作为选择良好假设的一种方法,则将可用数据(不包括测试集)划分为训练集和验证集。
- Stuart Russell和Peter Norvig,第709页,[人工智能:现代方法](http://www.amazon.com/dp/0136042597?tag=inspiredalgor-20),2009(第3版)
- Stuart Russell 和 Peter Norvig,第 709 页,[人工智能:现代方法](http://www.amazon.com/dp/0136042597?tag=inspiredalgor-20),2009(第 3 版)
验证集的这一定义得到了该领域其他开创性文本的证实。一个好的(和更老的)例子是Ripley的书“模式识别和神经网络”中的术语表。具体来说,训练,验证和测试集的定义如下:
验证集的这一定义得到了该领域其他开创性文本的证实。一个好的(和更老的)例子是 Ripley 的书“模式识别和神经网络”中的术语表。具体来说,训练,验证和测试集的定义如下:
> - 训练集:用于学习的一组示例,即适合分类器的参数。
>
......@@ -72,15 +72,15 @@
>
> - 测试集:一组仅用于评估完全指定分类器表现的示例。
- Brian Ripley,第354页,[模式识别和神经网络](http://www.amazon.com/dp/0521717701?tag=inspiredalgor-20),1996
- Brian Ripley,第 354 页,[模式识别和神经网络](http://www.amazon.com/dp/0521717701?tag=inspiredalgor-20),1996
这些是这些术语的推荐定义和用法。
这些定义是规范的一个很好的例子是它们在着名的神经网络常见问题解答中的重复。除了重申Ripley的词汇表定义之外,它继续讨论在应用机器学习中常见的滥用术语“测试集”和“验证集”。
这些定义是规范的一个很好的例子是它们在着名的神经网络常见问题解答中的重复。除了重申 Ripley 的词汇表定义之外,它继续讨论在应用机器学习中常见的滥用术语“测试集”和“验证集”。
> 关于机器学习的文献经常颠倒“验证”和“测试”集的含义。这是人工智能研究中最常见的术语混淆的例子。
>
> 关键的一点是,根据NN [神经网络]文献中的标准定义,测试集从不用于在两个或更多网络中进行选择,因此测试集上的误差提供了对泛化误差的无偏估计(假设测试集代表人口等)。
> 关键的一点是,根据 NN [神经网络]文献中的标准定义,测试集从不用于在两个或更多网络中进行选择,因此测试集上的误差提供了对泛化误差的无偏估计(假设测试集代表人口等)。
- [主题:人口,样本,训练集,设计集,验证集和测试集是什么?](ftp://ftp.sas.com/pub/neural/FAQ.html#A_data)
......@@ -125,7 +125,7 @@ skill = evaluate(model, test)
还有其他方法可以计算无偏见的(或在验证数据集的情况下逐渐更偏向)对未见数据的模型技能的估计。
一个流行的例子是使用k-fold交叉验证来调整模型超参数而不是单独的验证数据集。
一个流行的例子是使用 k-fold 交叉验证来调整模型超参数而不是单独的验证数据集。
在他们的书中,库恩和约翰逊有一个标题为“数据拆分建议”的部分,其中列出了使用唯一“测试集”(或验证集)的限制:
......@@ -138,17 +138,17 @@ skill = evaluate(model, test)
> - 测试集的不确定性可能相当大,以至于不同的测试集可能产生非常不同的结果。
> - 重采样方法可以合理预测模型在未来样本上的表现。
- Max Kuhn和Kjell Johnson,第78页, [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,2013
- Max Kuhn 和 Kjell Johnson,第 78 页, [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,2013
由于表现估计的理想低偏差和方差特性,他们继续推荐使用10倍交叉验证的小样本量。在比较模型表现的情况下,他们建议使用自举法,因为表现估计的方差很小。
由于表现估计的理想低偏差和方差特性,他们继续推荐使用 10 倍交叉验证的小样本量。在比较模型表现的情况下,他们建议使用自举法,因为表现估计的方差很小。
对于较大的样本量,他们再次建议采用10倍交叉验证方法。
对于较大的样本量,他们再次建议采用 10 倍交叉验证方法。
## 验证和测试数据集消失
在现代应用机器学习中,您很可能不会看到对训练,验证和测试数据集的引用。
如果从业者选择使用与训练数据集的k折交叉验证来调整模型超参数,则对“验证数据集”的引用消失。
如果从业者选择使用与训练数据集的 k 折交叉验证来调整模型超参数,则对“验证数据集”的引用消失。
我们可以使用伪代码草图使这个具体如下:
......@@ -184,7 +184,7 @@ skill = evaluate(model, test)
* 维基百科上的[测试集](https://en.wikipedia.org/wiki/Test_set)
* [主题:人口,样本,训练集,设计集,验证集和测试集是什么?](ftp://ftp.sas.com/pub/neural/FAQ.html#A_data) 神经网络常见问题解答
* [统计学习简介:应用于R](http://www.amazon.com/dp/1461471370?tag=inspiredalgor-20) ,2013
* [统计学习简介:应用于 R](http://www.amazon.com/dp/1461471370?tag=inspiredalgor-20) ,2013
* [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,2013
* [人工智能:现代方法](http://www.amazon.com/dp/0136042597?tag=inspiredalgor-20),2009
* [模式识别和神经网络](http://www.amazon.com/dp/0521717701?tag=inspiredalgor-20),1996
......@@ -199,7 +199,7 @@ skill = evaluate(model, test)
* 在评估模型时,“训练数据集”,“验证数据集”和“测试数据集”指的是明确的先例。
* “验证数据集”主要用于描述调整超参数和数据准备时的模型评估,“测试数据集”主要用于描述最终调整模型在与其他最终模型进行比较时的评估。
* 当采用k-fold交叉验证等替代重采样方法时,“验证数据集”和“测试数据集”的概念可能会消失,尤其是在重采样方法嵌套时。
* 当采用 k-fold 交叉验证等替代重采样方法时,“验证数据集”和“测试数据集”的概念可能会消失,尤其是在重采样方法嵌套时。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
\ No newline at end of file
......@@ -10,7 +10,7 @@
如果您阅读一篇关于特征工程的文章,我希望它是这一篇。
> 特征工程是另一个主题,似乎不值得任何评论论文或书籍,甚至书籍章节,但它对ML的成功绝对至关重要。 [...]机器学习的大部分成功实际上是学习器可以理解的工程特征的成功。
> 特征工程是另一个主题,似乎不值得任何评论论文或书籍,甚至书籍章节,但它对 ML 的成功绝对至关重要。 [...]机器学习的大部分成功实际上是学习器可以理解的工程特征的成功。
- Scott Locklin,“[被忽视的机器学习思路](https://scottlocklin.wordpress.com/2014/07/22/neglected-machine-learning-ideas/)
......@@ -55,9 +55,9 @@
**更好的功能意味着更好的结果**
> 我们使用的算法对于Kagglers来说非常标准。 [...]我们将大部分精力投入到功能工程中。
> 我们使用的算法对于 Kagglers 来说非常标准。 [...]我们将大部分精力投入到功能工程中。
- Xavier Conort,在“ [Q& A与Xavier Conort](http://blog.kaggle.com/2013/04/10/qa-with-xavier-conort/) ”上赢得了对Kaggle的Flight Quest挑战
- Xavier Conort,在“ [Q& A 与 Xavier Conort](http://blog.kaggle.com/2013/04/10/qa-with-xavier-conort/) ”上赢得了对 Kaggle 的 Flight Quest 挑战
## 什么是特色工程?
......@@ -72,7 +72,7 @@
* 你正在使用的预测模型(SVM?)
* 您选择和准备的原始数据(样本?格式化?清洁?)
> 特征工程是手动设计输入x应该是什么
> 特征工程是手动设计输入 x 应该是什么
- Tomasz Malisiewicz,回答“[什么是特征工程?](http://www.quora.com/What-is-feature-engineering)
......@@ -82,7 +82,7 @@
在此上下文中,特征工程要求:学习问题解决方案的样本数据的最佳表示是什么?
它太深了。在机器学习方面做得很好,即使在人工智能方面,也可以回到表示问题。知道要使用的最佳表示,_先验_,这可能是不可知的(或者至多是难以处理的)。
它太深了。在机器学习方面做得很好,即使在人工智能方面,也可以回到表示问题。知道要使用的最佳表示,_ 先验 _,这可能是不可知的(或者至多是难以处理的)。
> 你必须把你的输入变成算法可以理解的东西
......@@ -108,7 +108,7 @@
例如,对我来说很长一段时间,特征工程是特征构造。
我想我自己“_我现在正在进行特征工程_”并且我会追问“_我如何分解或聚合原始数据以更好地描述潜在问题?_ “目标是正确的,但这种做法是其中之一。
我想我自己“_ 我现在正在进行特征工程 _”并且我会追问“_ 我如何分解或聚合原始数据以更好地描述潜在问题?_ “目标是正确的,但这种做法是其中之一。
在本节中,我们将介绍这些方法以及它们要解决的具体子问题。每个都可以是他们自己的深度文章,因为它们是实践和研究的重要和重要领域。
......@@ -120,7 +120,7 @@
与属性分离的特征的概念在问题的上下文中更有意义。功能是对您的问题有用或有意义的属性。它是了解正在建模的问题结构的观察的重要部分。
我使用“_有意义的_”来区分属性和属性。有些人可能没有。我认为没有一个没有意义的功能。如果某个功能对问题没有影响,则不是问题的一部分。
我使用“_ 有意义的 _”来区分属性和属性。有些人可能没有。我认为没有一个没有意义的功能。如果某个功能对问题没有影响,则不是问题的一部分。
在计算机视觉中,图像是观察,但是特征可以是图像中的线。在自然语言处理中,文档或推文可以是观察,并且短语或单词计数可以是特征。在语音识别中,话语可以是观察,但是特征可以是单个单词或音素。
......@@ -134,7 +134,7 @@
如果特征与因变量(被预测的事物)高度相关,则该特征可能是重要的。相关系数和其他单变量(每个属性被独立考虑)方法是常用方法。
更复杂的预测性建模算法在构建模型时在内部执行特征重要性和选择。一些例子包括MARS, [Random Forest](http://en.wikipedia.org/wiki/Random_forest#Variable_importance)Gradient Boosted Machines。这些模型还可以报告在模型准备过程中确定的变量重要性。
更复杂的预测性建模算法在构建模型时在内部执行特征重要性和选择。一些例子包括 MARS, [Random Forest](http://en.wikipedia.org/wiki/Random_forest#Variable_importance)Gradient Boosted Machines。这些模型还可以报告在模型准备过程中确定的变量重要性。
### 特征提取:从原始数据自动构建新特征
......@@ -144,7 +144,7 @@
[特征提取](http://en.wikipedia.org/wiki/Feature_extraction)是一个将这些类型的观察的维度自动降低为可以建模的更小集合的过程。
对于表格数据,这可能包括主成分分析和无监督聚类方法等投影方法。对于图像数据,这可能包括线或边缘检测。根据域,图像,视频和音频观察结果适用于许多相同类型的DSP方法。
对于表格数据,这可能包括主成分分析和无监督聚类方法等投影方法。对于图像数据,这可能包括线或边缘检测。根据域,图像,视频和音频观察结果适用于许多相同类型的 DSP 方法。
特征提取的关键是方法是自动的(尽管可能需要用更简单的方法设计和构造)并解决难以管理的高维数据的问题,最常用于以数字格式存储的模拟观测。
......@@ -162,7 +162,7 @@
还有一些方法可以烘焙特征选择或将其作为模型的副作用。逐步回归是一种算法的示例,该算法自动执行特征选择,作为模型构建过程的一部分。
LASSO和岭回归这样的正则化方法也可以被认为是具有特征选择的算法,因为它们积极地寻求去除或折扣特征的贡献作为模型构建过程的一部分。
LASSO 和岭回归这样的正则化方法也可以被认为是具有特征选择的算法,因为它们积极地寻求去除或折扣特征的贡献作为模型构建过程的一部分。
在帖子中阅读更多内容:[功能选择简介](http://machinelearningmastery.com/an-introduction-to-feature-selection/ "An Introduction to Feature Selection")
......@@ -210,18 +210,18 @@
应用机器学习的过程(缺乏更好的名称)在广泛的刷子意​​义上涉及许多活动。前面是问题定义,接下来是数据选择和准备,中间是模型准备,评估和调整,最后是结果的呈现。
[数据挖掘和KDD](http://machinelearningmastery.com/what-is-data-mining-and-kdd/ "What is Data Mining and KDD") 这样的过程描述有助于更好地理解任务和子任务。您可以按照自己喜欢的方式挑选和选择流程。 [](http://machinelearningmastery.com/process-for-working-through-machine-learning-problems/ "Process for working through Machine Learning Problems")之前我已经谈了很多这个。
[数据挖掘和 KDD](http://machinelearningmastery.com/what-is-data-mining-and-kdd/ "What is Data Mining and KDD") 这样的过程描述有助于更好地理解任务和子任务。您可以按照自己喜欢的方式挑选和选择流程。 [](http://machinelearningmastery.com/process-for-working-through-machine-learning-problems/ "Process for working through Machine Learning Problems")之前我已经谈了很多这个。
与我们关于特征工程的讨论相关的图片是此过程的前端。它可能类似于以下内容:
1. (此前的任务......)
2. **选择数据**:整合数据,将其去标准化为数据集,一起收集。
3. **预处理数据**:对其进行格式化,清理,对其进行采样,以便您可以使用它。
4. **转换数据**:_特征工程师在这里发生_。
4. **转换数据**:_ 特征工程师在这里发生 _。
5. **模型数据**:创建模型,评估它们并调整它们。
6. (此后的任务......)
将“_转换数据_”从原始状态转换为适合建模的状态的传统观念是特征工程适用的地方。转换数据和特征工程实际上可能是同义词。
将“_ 转换数据 _”从原始状态转换为适合建模的状态的传统观念是特征工程适用的地方。转换数据和特征工程实际上可能是同义词。
这张照片在某些方面有所帮助。
......@@ -258,9 +258,9 @@
让我们使特征工程的概念更具体。
在本节中,我们将考虑您可能在Excel电子表格中使用的表格数据。我们将看一些您可能想要考虑自己的问题的手动功能构建示例。
在本节中,我们将考虑您可能在 Excel 电子表格中使用的表格数据。我们将看一些您可能想要考虑自己的问题的手动功能构建示例。
当我听到“_特征工程至关重要_”时,这就是我想到的特征工程类型。这是我熟悉和实践的最常见的形式。
当我听到“_ 特征工程至关重要 _”时,这就是我想到的特征工程类型。这是我熟悉和实践的最常见的形式。
哪个最好?你事前无法知道。您必须尝试它们并评估结果以实现您的算法和表现测量。
......@@ -268,7 +268,7 @@
想象一下你有一个分类属性,比如“`Item_Color`”可以是`Red``Blue``Unknown`
_未知_可能很特别,但对于模型来说,它看起来只是另一种颜色选择。更好地公开这些信息可能是有益的。
_ 未知 _ 可能很特别,但对于模型来说,它看起来只是另一种颜色选择。更好地公开这些信息可能是有益的。
您可以创建一个名为“`Has_Color`”的新二进制功能,并在项目有颜色时为其分配值“`1`”,当“`0`”时颜色未知。
......@@ -278,7 +278,7 @@ _未知_可能很特别,但对于模型来说,它看起来只是另一种颜
### 分解日期时间
日期时间包含很多信息,模型很难利用它的原生形式,例如 [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) (即2014-09-20T20:45:40Z)。
日期时间包含很多信息,模型很难利用它的原生形式,例如 [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) (即 2014-09-20T20:45:40Z)。
如果您怀疑时间与其他属性之间存在关系,则可以将日期时间分解为可能允许模型发现和利用这些关系的组成部分。
......@@ -286,7 +286,7 @@ _未知_可能很特别,但对于模型来说,它看起来只是另一种颜
您可以创建一个名为`Hour_of_Day`的新数字特征,该小时可能有助于回归模型。
您可以使用4个值`Morning``Midday``Afternoon``Night`创建名为`Part_Of_Day`的新序数功能你认为相关的小时边界。这可能对决策树有用。
您可以使用 4 个值`Morning``Midday``Afternoon``Night`创建名为`Part_Of_Day`的新序数功能你认为相关的小时边界。这可能对决策树有用。
您可以使用类似的方法来选择一周中的时间关系,一个月的时间关系以及一年中各种季节性结构。
......@@ -298,11 +298,11 @@ _未知_可能很特别,但对于模型来说,它看起来只是另一种颜
您可能拥有重量,距离或时间等数量。线性变换对于回归和其他依赖于尺度的方法可能是有用的。
例如,您可以以克为单位`Item_Weight`,其值为6289.您可以创建一个新的要素,其中此数量(公斤)为6.289或舍入公斤(如6)。如果域名是运输数据,可能是公斤`Item_Weight`的精度足够或更有用(噪音更小)。
例如,您可以以克为单位`Item_Weight`,其值为 6289.您可以创建一个新的要素,其中此数量(公斤)为 6.289 或舍入公斤(如 6)。如果域名是运输数据,可能是公斤`Item_Weight`的精度足够或更有用(噪音更小)。
`Item_Weight`可以分为两个特征:`Item_Weight_Kilograms``Item_Weight_Remainder_Grams`,示例值分别为6和289。
`Item_Weight`可以分为两个特征:`Item_Weight_Kilograms``Item_Weight_Remainder_Grams`,示例值分别为 6 和 289。
可能存在领域知识,即权重大于4的项目会产生更高的税率。该魔术域号可用于创建新的二进制特征`Item_Above_4kg`,其值为“`1`”,我们的示例为6289克。
可能存在领域知识,即权重大于 4 的项目会产生更高的税率。该魔术域号可用于创建新的二进制特征`Item_Above_4kg`,其值为“`1`”,我们的示例为 6289 克。
您还可以将数量存储为间隔的费率或总数量。例如,`Num_Customer_Purchases`汇总了一年。
......@@ -316,13 +316,13 @@ _未知_可能很特别,但对于模型来说,它看起来只是另一种颜
在本节中,我们将介绍几个关注特征工程的有趣且值得注意的赛后写作示例。
### 预测2010年KDD杯的学生考试成绩
### 预测 2010 年 KDD 杯的学生考试成绩
[KDD](http://www.sigkdd.org/kddcup/index.php)是每年为知识发现和数据挖掘会议的ACM特别兴趣小组的与会者举办的机器学习竞赛。
[KDD](http://www.sigkdd.org/kddcup/index.php)是每年为知识发现和数据挖掘会议的 ACM 特别兴趣小组的与会者举办的机器学习竞赛。
2010年,比赛的重点是对学生的学习方式进行建模。提供了一个关于代数问题的学生语料库,用于预测学生未来的表现。
2010 年,比赛的重点是对学生的学习方式进行建模。提供了一个关于代数问题的学生语料库,用于预测学生未来的表现。
比赛的获胜者是国立台湾大学的一群学生和学者。他们的方法在论文“[特征工程和KDD杯2010分类器集合](http://pslcdatashop.org/KDDCup/workshop/papers/kdd2010ntu.pdf)”中有所描述。
比赛的获胜者是国立台湾大学的一群学生和学者。他们的方法在论文“[特征工程和 KDD 杯 2010 分类器集合](http://pslcdatashop.org/KDDCup/workshop/papers/kdd2010ntu.pdf)”中有所描述。
本文将特色工程作为获胜的关键方法。特征工程以创建数百万个二进制特征为代价简化了问题的结构。简单的结构使团队能够使用高表现但非常简单的线性方法来实现获胜的预测模型。
......@@ -332,15 +332,15 @@ _未知_可能很特别,但对于模型来说,它看起来只是另一种颜
### 预测遗产健康奖的患者准入
[遗产健康奖](https://www.heritagehealthprize.com/c/hhp)获得了300万美元的奖金,该奖项可以最好地预测哪些患者将在明年入院。
[遗产健康奖](https://www.heritagehealthprize.com/c/hhp)获得了 300 万美元的奖金,该奖项可以最好地预测哪些患者将在明年入院。
该奖项每年都会获得里程碑奖,其中顶级团队将获得奖项,其流程和方法将公开。
我记得读过三个里程碑中的第一个发布的论文,并对所涉及的特征工程的数量印象深刻。
具体来说,菲尔·布里尔利,大卫沃格尔和兰迪阿克塞尔罗德的论文“[1轮里程碑奖:我们如何做到 - 团队市场创造者](https://kaggle2.blob.core.windows.net/wiki-files/327/e4cd1d25-eca9-49ca-9593-b254a773fe03/Market%20Makers%20-%20Milestone%201%20Description%20V2%201.pdf)”。大多数竞赛都涉及大量的特征工程,但令我印象深刻的是这篇论文的重点。
具体来说,菲尔·布里尔利,大卫沃格尔和兰迪阿克塞尔罗德的论文“[ 1 轮里程碑奖:我们如何做到 - 团队市场创造者](https://kaggle2.blob.core.windows.net/wiki-files/327/e4cd1d25-eca9-49ca-9593-b254a773fe03/Market%20Makers%20-%20Milestone%201%20Description%20V2%201.pdf)”。大多数竞赛都涉及大量的特征工程,但令我印象深刻的是这篇论文的重点。
本文提供了构造属性所需的属性和SQL表。
本文提供了构造属性所需的属性和 SQL 表。
本文通过简单分解给出了一些很好的现实世界的特征工程实例。有很多计数,分钟,最大值,大量二进制属性和离散化的数字属性。非常简单的方法用于很好的效果。
......@@ -375,11 +375,11 @@ _未知_可能很特别,但对于模型来说,它看起来只是另一种颜
以下是一些普遍相关的论文:
* [关于变量和特征选择的JMLR特刊](http://jmlr.org/papers/special/feature03.html)
* [关于变量和特征选择的 JMLR 特刊](http://jmlr.org/papers/special/feature03.html)
以下是一些通常相关且有趣的幻灯片:
* [特色工程](http://kti.tugraz.at/staff/denis/courses/kddm1/featureengineering.pdf)(PDF),知识发现和数据挖掘1,作者:Roman Kern,[知识技术研究所](http://kti.tugraz.at/staff/denis/courses/kddm1/)
* [特色工程](http://kti.tugraz.at/staff/denis/courses/kddm1/featureengineering.pdf)(PDF),知识发现和数据挖掘 1,作者:Roman Kern,[知识技术研究所](http://kti.tugraz.at/staff/denis/courses/kddm1/)
* [特色工程与选择](http://www.cs.berkeley.edu/~jordan/courses/294-fall09/lectures/feature/slides.pdf)(PDF),CS 294:[实用机器学习](http://www.cs.berkeley.edu/~jordan/courses/294-fall09/lectures/feature/),伯克利
* [特色工程工作室](http://www.columbia.edu/~rsb2162/FES2013/materials.html),课程讲座幻灯片和材料,哥伦比亚
* [特色工程](http://www.cs.princeton.edu/courses/archive/spring10/cos424/slides/18-feat.pdf)(PDF),Leon Bottou,Princeton
......@@ -390,15 +390,15 @@ _未知_可能很特别,但对于模型来说,它看起来只是另一种颜
以下是一些有趣的链接:
* [特色工程:如何在泰坦尼克号竞赛](http://trevorstephens.com/post/73461351896/titanic-getting-started-with-r-part-4-feature)(Kaggle的入门竞赛)上进行特色工程。有比特征工程更多的数据,但它仍然具有指导意义。
* ~~[IPython笔记本](http://nbviewer.ipython.org/url/trust.sce.ntu.edu.sg/~gguo1/blogs/Features.ipynb)[Guibing Guo](http://trust.sce.ntu.edu.sg/~gguo1/) ,致力于解释特征工程。有点乱,但值得一撇~~。 (链接看起来很糟糕,对不起。)
* [特色工程:如何在泰坦尼克号竞赛](http://trevorstephens.com/post/73461351896/titanic-getting-started-with-r-part-4-feature)(Kaggle 的入门竞赛)上进行特色工程。有比特征工程更多的数据,但它仍然具有指导意义。
* ~~[IPython 笔记本](http://nbviewer.ipython.org/url/trust.sce.ntu.edu.sg/~gguo1/blogs/Features.ipynb)[Guibing Guo](http://trust.sce.ntu.edu.sg/~gguo1/) ,致力于解释特征工程。有点乱,但值得一撇~~。 (链接看起来很糟糕,对不起。)
### 影片
关于特征工程的主题有几个视频。迄今为止最好的是由Ryan Baker命名为“[特征工程](https://www.youtube.com/watch?v=drUToKxEAUA)”。它很短(大约9分钟),我建议观看一些很好的实用技巧。
关于特征工程的主题有几个视频。迄今为止最好的是由 Ryan Baker 命名为“[特征工程](https://www.youtube.com/watch?v=drUToKxEAUA)”。它很短(大约 9 分钟),我建议观看一些很好的实用技巧。
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="281" src="https://www.youtube.com/embed/drUToKxEAUA?feature=oembed" width="500"></iframe>
如果您认为我错过了一个关键概念或资源,请发表评论。
**更新2015** :我注意到现在有一​​篇关于特色工程的[维基百科文章,它复制了这篇文章的大部分内容。那好吧。](https://en.wikipedia.org/wiki/Feature_engineering)
\ No newline at end of file
**更新 2015** :我注意到现在有一​​篇关于特色工程的[维基百科文章,它复制了这篇文章的大部分内容。那好吧。](https://en.wikipedia.org/wiki/Feature_engineering)
\ No newline at end of file
# 如何开始使用Kaggle
# 如何开始使用 Kaggle
> 原文: [https://machinelearningmastery.com/get-started-with-kaggle/](https://machinelearningmastery.com/get-started-with-kaggle/)
......@@ -9,30 +9,30 @@
有竞争力的机器学习可以成为开发和练习技能的好方法,也可以展示您的能力。
在这篇文章中,您将发现一个简单的4步骤过程,以便在Kaggle上进行有竞争力的机器学习。
在这篇文章中,您将发现一个简单的 4 步骤过程,以便在 Kaggle 上进行有竞争力的机器学习。
让我们开始吧。
![How to Get Started with Kaggle](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2017/03/How-to-Get-Started-with-Kaggle.jpg)
如何开始使用Kaggle
如何开始使用 Kaggle
照片由 [David Mulder](https://www.flickr.com/photos/113026679@N03/14207581423/) 拍摄,保留一些权利。
## 关于Kaggle的建议?
## 关于 Kaggle 的建议?
我通过电子邮件询问了很多问题:
> 我如何开始使用Kaggle?
> 我如何开始使用 Kaggle?
我对这个问题做了最后的回答,并决定把它变成这篇博文。我希望你发现它很有用。
希望对你有帮助。
## 为什么Kaggle?
## 为什么 Kaggle?
有许多方法可以学习和练习应用机器学习。
Kaggle有一些特别的好处,你应该认真考虑:
Kaggle 有一些特别的好处,你应该认真考虑:
* 问题已明确定义,所有可用数据均直接提供。
* 考虑到公共和私人排行榜的严酷事实,用一个糟糕的测试设置来欺骗自己更难。
......@@ -42,12 +42,12 @@ Kaggle有一些特别的好处,你应该认真考虑:
## 概观
我推荐一个简单的4步骤过程。步骤是:
我推荐一个简单的 4 步骤过程。步骤是:
1. 选择一个平台。
2. 练习标准数据集。
3. 练习旧的Kaggle问题。
4.Kaggle上竞争。
3. 练习旧的 Kaggle 问题。
4. Kaggle 上竞争。
该过程易于描述,但难以实现。这需要时间和精力。这将是艰苦的工作。
......@@ -55,7 +55,7 @@ Kaggle有一些特别的好处,你应该认真考虑:
它会得到回报,如果你有条不紊并且坚持下去,你将成为世界级的机器学习从业者。
你可以直接进入第4步,这可能适合你,但我设计了这个过程,以最大限度地提高你坚持下去并获得高于平均水平的结果。
你可以直接进入第 4 步,这可能适合你,但我设计了这个过程,以最大限度地提高你坚持下去并获得高于平均水平的结果。
让我们更详细地看一下每一步。
......@@ -63,27 +63,27 @@ Kaggle有一些特别的好处,你应该认真考虑:
有许多机器学习平台可供选择,你最终可能会使用其中许多,但从一开始。
我推荐Python。
我推荐 Python。
为什么?
*Python机器学习技能的需求正在增长。
* Python是一种功能齐全的编程语言(与R不同)。
* 生态系统已经足够成熟(sklearn,pandas,statsmodels,xgboost等)
* Python 机器学习技能的需求正在增长。
* Python 是一种功能齐全的编程语言(与 R 不同)。
* 生态系统已经足够成熟(sklearn,pandas,statsmodels,xgboost 等)
* 该平台拥有一些最好的深度学习工具(theano,tensorflow,keras)
选择一个平台并开始学习如何使用它。
这里有一些进一步的阅读:
* [Python是应用机器学习的增长平台](http://machinelearningmastery.com/python-growing-platform-applied-machine-learning/)
* [Python机器学习](http://machinelearningmastery.com/start-here/#python)
* [Python 是应用机器学习的增长平台](http://machinelearningmastery.com/python-growing-platform-applied-machine-learning/)
* [Python 机器学习](http://machinelearningmastery.com/start-here/#python)
## 2.标准数据集的实践
选择平台后,您需要非常擅长在真实数据集上使用它。
我建议在UCI机器学习库或类似工具上完成一套标准的机器学习问题。
我建议在 UCI 机器学习库或类似工具上完成一套标准的机器学习问题。
将每个数据集视为迷你竞争对手。
......@@ -102,19 +102,19 @@ Kaggle有一些特别的好处,你应该认真考虑:
* [使用小型内存数据集练习机器学习](http://machinelearningmastery.com/practice-machine-learning-with-small-in-memory-datasets-from-the-uci-machine-learning-repository/)
* [应用机器学习过程](http://machinelearningmastery.com/start-here/#process)
## 3.练习旧的Kaggle问题
## 3.练习旧的 Kaggle 问题
现在您已经了解了工具以及如何使用它们,现在是时候练习旧的Kaggle数据集了。
现在您已经了解了工具以及如何使用它们,现在是时候练习旧的 Kaggle 数据集了。
您可以访问过去Kaggle比赛的数据集。您还可以发布候选解决方案,并在公共和私人排行榜上对其进行评估。
您可以访问过去 Kaggle 比赛的数据集。您还可以发布候选解决方案,并在公共和私人排行榜上对其进行评估。
我建议在过去的几年中解决一系列Kaggle问题。
我建议在过去的几年中解决一系列 Kaggle 问题。
此步骤旨在帮助您了解最佳表现者如何处理机器学习竞赛并学习如何将他们的方法集成到您的流程中。
* 选择各种不同的问题类型,迫使您学习和应用新的和不同的技术。
* 研究论坛帖子,获胜者写作博客文章,GitHub存储库以及问题的所有其他信息,并将这些方法合并到您的流程中。
* 目标是在公共或私人排行榜中获得前10%或更高的分数。
* 研究论坛帖子,获胜者写作博客文章,GitHub 存储库以及问题的所有其他信息,并将这些方法合并到您的流程中。
* 目标是在公共或私人排行榜中获得前 10%或更高的分数。
* 尝试将尽可能多的获胜者方法纳入您的候选解决方案。
把它想象成先进的钻头。善于像竞争获胜者一样思考并使用他们的方法和工具。
......@@ -124,16 +124,16 @@ Kaggle有一些特别的好处,你应该认真考虑:
这里有一些进一步的阅读:
* [机器学习是讨价还价的竞赛](http://machinelearningmastery.com/machine-learning-is-kaggle-competitions/)
* [发现Kaggle Master的方法论和心态:对Diogo Ferreira的采访](http://machinelearningmastery.com/discover-the-methodology-and-mindset-of-a-kaggle-master-an-interview-with-diogo-ferreira/)
* [发现 Kaggle Master 的方法论和心态:对 Diogo Ferreira 的采访](http://machinelearningmastery.com/discover-the-methodology-and-mindset-of-a-kaggle-master-an-interview-with-diogo-ferreira/)
## 4.在Kaggle上竞争
## 4.在 Kaggle 上竞争
你现在准备在Kaggle上竞争了。
你现在准备在 Kaggle 上竞争了。
得到它。
* 考虑一次处理一个问题,直到你出现问题或陷入困境。
* 旨在为您所处理的每个竞赛在私人排行榜上取得前25%或前10%的成绩。
* 旨在为您所处理的每个竞赛在私人排行榜上取得前 25%或前 10%的成绩。
* 在论坛上自由分享;这将导致合作。
* 最大限度地缩短阅读或思考好主意与实现之间的时间(例如分钟)。
......@@ -144,13 +144,13 @@ Kaggle有一些特别的好处,你应该认真考虑:
这里有一些进一步的阅读:
* [如何在机器学习竞赛中踢屁](http://machinelearningmastery.com/how-to-kick-ass-in-competitive-machine-learning/)
* [Master Kaggle一直竞争](http://machinelearningmastery.com/master-kaggle-by-competing-consistently/)
* [Master Kaggle 一直竞争](http://machinelearningmastery.com/master-kaggle-by-competing-consistently/)
## 摘要
在这篇文章中,您发现了一个简单的4步过程,用于开始并在Kaggle上进行有竞争力的机器学习。
在这篇文章中,您发现了一个简单的 4 步过程,用于开始并在 Kaggle 上进行有竞争力的机器学习。
你参加过Kaggle比赛吗?
你参加过 Kaggle 比赛吗?
你是怎么开始的?
你决定按照这个过程吗?
......
......@@ -4,9 +4,9 @@
您使用预测模型进行的预测并不重要,而是使用那些重要的预测。
[Jeremy Howard](https://www.linkedin.com/in/howardjeremy) 是机器学习竞赛平台 [Kaggle](http://www.kaggle.com/) 的总裁兼首席科学家。 2012年,他在 [O'reilly Strata会议](http://strataconf.com/)上发表了他所谓的动力传动系统方法,用于构建超越预测的“_数据产品_”。
[Jeremy Howard](https://www.linkedin.com/in/howardjeremy) 是机器学习竞赛平台 [Kaggle](http://www.kaggle.com/) 的总裁兼首席科学家。 2012 年,他在 [O'reilly Strata 会议](http://strataconf.com/)上发表了他所谓的动力传动系统方法,用于构建超越预测的“_ 数据产品 _”。
在这篇文章中,您将发现Howard的动力传动系统方法以及如何使用它来构建系统的开发而不是做出预测。
在这篇文章中,您将发现 Howard 的动力传动系统方法以及如何使用它来构建系统的开发而不是做出预测。
[![The Drivetrain Approach](img/7d35b5c7e6992228a41104f4f68c9ddf.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/08/drivetrain-approach.png)
......@@ -15,19 +15,19 @@
## 激励方法
在投资和加入公司之前,Jeremy Howard是一位顶级的Kaggle参与者。在像数据科学运动的形成谈话中,您可以深入了解霍华德在深入挖掘数据和建立有效模型方面的敏锐能力。
在投资和加入公司之前,Jeremy Howard 是一位顶级的 Kaggle 参与者。在像数据科学运动的形成谈话中,您可以深入了解霍华德在深入挖掘数据和建立有效模型方面的敏锐能力。
2012年的Strata演讲中,霍华德曾在Kaggle工作了一两年,并且看过很多比赛和很多竞争数据科学家。你不能不认为他更加全面的方法论是由于他对专注于预测及其准确率的沮丧而产生的。
2012 年的 Strata 演讲中,霍华德曾在 Kaggle 工作了一两年,并且看过很多比赛和很多竞争数据科学家。你不能不认为他更加全面的方法论是由于他对专注于预测及其准确率的沮丧而产生的。
预测是可访问的部分,它们是竞争的焦点是有道理的。我看到了他的动力传动系统方法,因为他放下了手套,并挑战社区以争取更多。
## 动力传动系统方法
霍华德在Strata 2012上发表了一个35分钟的演讲,名为“ [_从预测性建模到优化:下一个前沿_](https://www.youtube.com/watch?v=vYrWTDxoeGg) ”。
霍华德在 Strata 2012 上发表了一个 35 分钟的演讲,名为“ [_ 从预测性建模到优化:下一个前沿 _](https://www.youtube.com/watch?v=vYrWTDxoeGg) ”。
<iframe allowfullscreen="" frameborder="0" height="281" src="https://www.youtube.com/embed/vYrWTDxoeGg?feature=oembed" width="500"></iframe>
该方法还在博客文章“ [_设计出色的数据产品:动力传动系统方法:构建数据产品的四步流程_](http://radar.oreilly.com/2012/03/drivetrain-approach-data-products.html) ”中进行了描述,该工艺也可作为[使用]独立的免费电子书](http://shop.oreilly.com/product/0636920026082.do)(完全相同的内容,我可以告诉)。
该方法还在博客文章“ [_ 设计出色的数据产品:动力传动系统方法:构建数据产品的四步流程 _](http://radar.oreilly.com/2012/03/drivetrain-approach-data-products.html) ”中进行了描述,该工艺也可作为[使用]独立的免费电子书](http://shop.oreilly.com/product/0636920026082.do)(完全相同的内容,我可以告诉)。
在演讲中,他介绍了他的动力传动系统方法的四个步骤:
......@@ -38,7 +38,7 @@
他描述了收集数据,因为他真正指的是对因果关系数据的需求,大多数组织都没有收集这些数据。必须通过执行大量随机实验来收集此数据。
这是关键。它超越了测试新页面标题的粉状A / B,它涉及对无偏行为的评估,例如对随机选择的建议的响应。
这是关键。它超越了测试新页面标题的粉状 A / B,它涉及对无偏行为的评估,例如对随机选择的建议的响应。
建模的第四步是包含以下子流程的管道:
......@@ -60,11 +60,11 @@
* **数据**:页面之间的链接网络。
* **模型**:未讨论,但人们会假设正在进行的实验和页面权限指标的改进。
扩展此示例,Google很可能通过注入其他结果并了解用户的行为来在SERP中执行随机体验。这将允许基于点击的可能性,用户点击的模拟以及针对给定用户的SERP中的最可点击条目的优化来构建预测模型。现在,我希望谷歌的广告可以使用像这样的方法,这可能是一个更清晰的例子。
扩展此示例,Google 很可能通过注入其他结果并了解用户的行为来在 SERP 中执行随机体验。这将允许基于点击的可能性,用户点击的模拟以及针对给定用户的 SERP 中的最可点击条目的优化来构建预测模型。现在,我希望谷歌的广告可以使用像这样的方法,这可能是一个更清晰的例子。
霍华德还将营销作为建议的改进领域。他评论说,目标是CLTV的最大化。杠杆包括产品,优惠,折扣和客户服务电话的推荐。可以作为原始数据收集的因果关系将是概率或购买以及喜欢产品的概率,但不了解产品。
霍华德还将营销作为建议的改进领域。他评论说,目标是 CLTV 的最大化。杠杆包括产品,优惠,折扣和客户服务电话的推荐。可以作为原始数据收集的因果关系将是概率或购买以及喜欢产品的概率,但不了解产品。
他还给出了最佳决策小组之前启动的例子,以最大化保险利润。他还将谷歌自动驾驶汽车作为另一个例子,而不是像现在的GPS显示那样进行粉状路线搜索。
他还给出了最佳决策小组之前启动的例子,以最大化保险利润。他还将谷歌自动驾驶汽车作为另一个例子,而不是像现在的 GPS 显示那样进行粉状路线搜索。
我觉得有更多机会详细阐述这些想法。我认为,如果通过一步一步的例子以更清晰的方式介绍方法,那么对这些想法的反应就会更大。
......@@ -74,4 +74,4 @@
霍华德的动力传动系统方法是一种工具,您可以使用它来设计一个系统来解决使用机器学习的复杂问题,而不是使用机器学习来做出预测并将其称为一天。
这些想法与[响应面法(RSM)](http://machinelearningmastery.com/clever-application-of-a-predictive-model/ "Clever Application Of A Predictive Model")有很多重叠。虽然没有明确说明,但Irfan Ahmad在他的[预测模型分类](http://blog.kaggle.com/2012/03/05/irfans-taxonomy-of-predictive-modelling/)中同时暗示了相关帖子中的链接,需要澄清霍华德的一些术语。
\ No newline at end of file
这些想法与[响应面法(RSM)](http://machinelearningmastery.com/clever-application-of-a-predictive-model/ "Clever Application Of A Predictive Model")有很多重叠。虽然没有明确说明,但 Irfan Ahmad 在他的[预测模型分类](http://blog.kaggle.com/2012/03/05/irfans-taxonomy-of-predictive-modelling/)中同时暗示了相关帖子中的链接,需要澄清霍华德的一些术语。
\ No newline at end of file
......@@ -27,44 +27,44 @@
## 分裂测试
使用一个数据集来训练和估计算法在看不见的数据上的表现的一种简单方法是拆分数据集。您获取数据集,并将其拆分为训练数据集和测试数据集。例如,您随机选择66%的实例进行训练,并将剩余的34%用作测试数据集。
使用一个数据集来训练和估计算法在看不见的数据上的表现的一种简单方法是拆分数据集。您获取数据集,并将其拆分为训练数据集和测试数据集。例如,您随机选择 66%的实例进行训练,并将剩余的 34%用作测试数据集。
该算法在训练数据集上运行,并在测试数据集上创建和评估模型,并获得表现准确度,即87%的分类准确度。
该算法在训练数据集上运行,并在测试数据集上创建和评估模型,并获得表现准确度,即 87%的分类准确度。
当您拥有大量数据或训练模型时(特别是资源或时间),吐痰测试速度非常快。对非常大的数据集进行拆分测试可以准确估计算法的实际表现。
算法对数据有多好?我们可以自信地说它可以达到87%的准确度吗?
算法对数据有多好?我们可以自信地说它可以达到 87%的准确度吗?
问题是如果我们再次将训练数据集吐出到不同的66%/ 34%分割中,我们将得到与我们的算法不同的结果。这称为模型方差。
问题是如果我们再次将训练数据集吐出到不同的 66%/ 34%分割中,我们将得到与我们的算法不同的结果。这称为模型方差。
## 多个拆分测试
分裂测试在数据集的不同拆分中获得不同结果的问题的解决方案是减少随机过程的方差并多次执行。我们可以从相当数量的运行中收集结果(比如10)并取平均值。
分裂测试在数据集的不同拆分中获得不同结果的问题的解决方案是减少随机过程的方差并多次执行。我们可以从相当数量的运行中收集结果(比如 10)并取平均值。
例如,假设我们将数据集分成66%/ 34%,运行我们的算法并得到准确度,我们用10次不同的分割完成了10次。我们可能有10个准确度分数如下:87,87,88,89,88,86,88,87,88,87。
例如,假设我们将数据集分成 66%/ 34%,运行我们的算法并得到准确度,我们用 10 次不同的分割完成了 10 次。我们可能有 10 个准确度分数如下:87,87,88,89,88,86,88,87,88,87。
我们模型的平均表现为87.5,标准偏差约为0.85。
我们模型的平均表现为 87.5,标准偏差约为 0.85。
[![Coin Toss](img/57a54ab84255096383635723c7b7e95b.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/02/coin-toss.jpg)
硬币折腾
照片由 [ICMA照片](http://www.flickr.com/photos/icma/3635981474/sizes/l/),保留一些权利
照片由 [ICMA 照片](http://www.flickr.com/photos/icma/3635981474/sizes/l/),保留一些权利
多个拆分测试的一个问题是,某些数据实例可能永远不会包含在训练或测试中,而其他数据实例可能会多次选择。结果是,这可能会使结果产生偏差,并且可能无法对算法的准确率给出有意义的概念。
## 交叉验证
确保每个实例用于训练和测试相同次数同时减少准确度得分的方差的问题的解决方案是使用[交叉验证](http://en.wikipedia.org/wiki/Cross-validation_(statistics))。特别是k折交叉验证,其中k是数据集中要进行的拆分数。
确保每个实例用于训练和测试相同次数同时减少准确度得分的方差的问题的解决方案是使用[交叉验证](http://en.wikipedia.org/wiki/Cross-validation_(statistics))。特别是 k 折交叉验证,其中 k 是数据集中要进行的拆分数。
例如,让我们选择k = 10的值(非常常见)。这将数据集分成10个部分(10倍),算法将运行10次。每次运行算法时,它将在90%的数据上进行训练,并在10%的数据上进行测试,每次运行算法将改变算法测试的10%的数据。
例如,让我们选择 k = 10 的值(非常常见)。这将数据集分成 10 个部分(10 倍),算法将运行 10 次。每次运行算法时,它将在 90%的数据上进行训练,并在 10%的数据上进行测试,每次运行算法将改变算法测试的 10%的数据。
在此示例中,每个数据实例将恰好用作训练实例9次,并作为测试实例1次。准确度不是平均值和标准偏差,而是精确的准确度得分,表示进行了多少次正确的预测。
在此示例中,每个数据实例将恰好用作训练实例 9 次,并作为测试实例 1 次。准确度不是平均值和标准偏差,而是精确的准确度得分,表示进行了多少次正确的预测。
k折交叉验证方法是用于评估算法在数据集上的表现的首选方法。您希望选择k值,为您的算法提供大小合适的训练和测试数据集。不太不成比例(对于训练或测试来说太大或太小)。如果您有大量数据,则可能不得不采用数据采样或恢复分割测试。
k 折交叉验证方法是用于评估算法在数据集上的表现的首选方法。您希望选择 k 值,为您的算法提供大小合适的训练和测试数据集。不太不成比例(对于训练或测试来说太大或太小)。如果您有大量数据,则可能不得不采用数据采样或恢复分割测试。
交叉验证确实可以对未见数据的算法表现进行无偏估计,但如果算法本身使用随机性会怎样。每次用不同的随机数种子(伪随机序列的开始)训练时,该算法将对相同的训练数据产生不同的结果。交叉验证不考虑算法预测的方差。
另一个值得关注的问题是交叉验证本身使用随机性来决定如何将数据集拆分为k个折叠。交叉验证不会估计算法如何使用不同的折叠集合执行。
另一个值得关注的问题是交叉验证本身使用随机性来决定如何将数据集拆分为 k 个折叠。交叉验证不会估计算法如何使用不同的折叠集合执行。
这只有在您想要了解算法在数据集上的稳健性时才有意义。
......@@ -74,19 +74,19 @@ k折交叉验证方法是用于评估算法在数据集上的表现的首选方
这将为您提供算法在数据集上的表现估计,以及对表现的稳健性(标准偏差的大小)的估计。
如果算法A有一个均值和标准差,算法B有另一个均值和标准差,并且它们不同(例如,算法A具有更高的准确度),您如何知道差异是否有意义?
如果算法 A 有一个均值和标准差,算法 B 有另一个均值和标准差,并且它们不同(例如,算法 A 具有更高的准确度),您如何知道差异是否有意义?
这只有在您想比较算法之间的结果时才有意义。
## 统计学意义
当使用多次k次交叉验证时,比较算法表现测量的解决方案是使用[统计显着性](http://en.wikipedia.org/wiki/Statistical_hypothesis_testing)测试(如[T检验](http://en.wikipedia.org/wiki/Student's_t-test))。
当使用多次 k 次交叉验证时,比较算法表现测量的解决方案是使用[统计显着性](http://en.wikipedia.org/wiki/Statistical_hypothesis_testing)测试(如[T 检验](http://en.wikipedia.org/wiki/Student's_t-test))。
多次运行k折交叉验证的结果是一个数字列表。我们希望使用均值和标准差来总结这些数字。您可以将这些数字视为来自基础人群的样本。统计显着性检验回答了这个问题:两个样本来自同一群体吗? (没有不同)。如果答案是“是”,则即使平均值和标准偏差不同,也可以说差异在统计上不显着。
多次运行 k 折交叉验证的结果是一个数字列表。我们希望使用均值和标准差来总结这些数字。您可以将这些数字视为来自基础人群的样本。统计显着性检验回答了这个问题:两个样本来自同一群体吗? (没有不同)。如果答案是“是”,则即使平均值和标准偏差不同,也可以说差异在统计上不显着。
我们可以使用统计显着性检验来表示在使用多次运行时算法结果之间的差异(或缺乏差异)(如使用不同随机数种子的多次k次交叉验证)。这可以在我们想要对结果做出准确的声明时(算法A优于算法B且差异具有统计显着性)
我们可以使用统计显着性检验来表示在使用多次运行时算法结果之间的差异(或缺乏差异)(如使用不同随机数种子的多次 k 次交叉验证)。这可以在我们想要对结果做出准确的声明时(算法 A 优于算法 B 且差异具有统计显着性)
这不是故事的结尾,因为这些测试(p值)有不同的统计显着性检验(参数和非参数)和参数。我打算在这里画线,因为如果你已经跟我走了这么远,你现在已经足够了解选择测试选项以产生严格的(可发布的!)结果。
这不是故事的结尾,因为这些测试(p 值)有不同的统计显着性检验(参数和非参数)和参数。我打算在这里画线,因为如果你已经跟我走了这么远,你现在已经足够了解选择测试选项以产生严格的(可发布的!)结果。
## 摘要
......@@ -101,4 +101,4 @@ k折交叉验证方法是用于评估算法在数据集上的表现的首选方
* 多重交叉验证
* 统计学意义
如有疑问,请使用k折交叉验证(k = 10),并在想要有意义地比较数据集上的算法时,使用多次k-fold交叉验证和统计显着性检验。
\ No newline at end of file
如有疑问,请使用 k 折交叉验证(k = 10),并在想要有意义地比较数据集上的算法时,使用多次 k-fold 交叉验证和统计显着性检验。
\ No newline at end of file
......@@ -17,11 +17,11 @@
该框架涉及回答三个问题,以达到不同程度的彻底性:
* **第1步**:有什么问题?
* **第2步**:为什么需要解决问题?
* **第3步**:我该如何解决这个问题?
* **第 1 步**:有什么问题?
* **第 2 步**:为什么需要解决问题?
* **第 3 步**:我该如何解决这个问题?
## 第1步:问题是什么
## 第 1 步:问题是什么
第一步是定义问题。我使用了许多策略来收集这些信息。
......@@ -29,13 +29,13 @@
描述问题,就像您向朋友或同事描述一样。这可以为突出显示您可能需要填充的区域提供一个很好的起点。它还提供了一个句子描述的基础,您可以使用它来分享您对问题的理解。
例如:_我需要一个程序来告诉我哪些推文会转发。_
例如:_ 我需要一个程序来告诉我哪些推文会转发。_
### 形式主义
在之前的博客文章[定义机器学习](http://machinelearningmastery.com/what-is-machine-learning/ "What is Machine Learning: A Tour of Authoritative Definitions and a Handy One-Liner You Can Use")中,您了解了Tom Mitchell的机器学习形式。这里再次刷新你的记忆。
在之前的博客文章[定义机器学习](http://machinelearningmastery.com/what-is-machine-learning/ "What is Machine Learning: A Tour of Authoritative Definitions and a Handy One-Liner You Can Use")中,您了解了 Tom Mitchell 的机器学习形式。这里再次刷新你的记忆。
> 据说一个计算机程序可以从经验`E`中学习某类任务`T`和表现测量`P`,如果它在_的任务中的表现通过`P`测量的T_ 随经验`E`而改善。
> 据说一个计算机程序可以从经验`E`中学习某类任务`T`和表现测量`P`,如果它在 _ 的任务中的表现通过`P`测量的 T_ 随经验`E`而改善。
使用这种形式来定义`T``P``E`来解决您的问题。
......@@ -69,7 +69,7 @@ For example:
例如:一个相关问题是电子邮件垃圾邮件歧视,它使用文本消息作为输入数据,需要二分类决策。
## 第2步:为什么需要解决问题?
## 第 2 步:为什么需要解决问题?
第二步是深入思考为什么你想要或者需要解决问题。
......@@ -97,7 +97,7 @@ For example:
考虑您是否要编写报告以显示结果,或者您希望操作解决方案。如果要实现解决方案,请考虑解决方案的功能和非功能需求,就像软件项目一样。
## 第3步:我如何解决问题?
## 第 3 步:我如何解决问题?
在问题定义的第三步也是最后一步,探索如何手动解决问题。
......@@ -113,8 +113,8 @@ For example:
在这篇文章中,您了解了明确解决问题的价值。您发现了一个三步框架,用于在步骤中使用实用策略定义您的问题:
* **第1步:有什么问题?** 非正式地和正式地描述问题并列出假设和类似问题。
* **第2步:为什么需要解决问题?** 列出解决问题的动机,解决方案提供的好处以及解决方案的使用方法。
* **第3步:我该如何解决这个问题?** 描述如何手动解决问题以刷新领域知识。
* **第 1 步:有什么问题?** 非正式地和正式地描述问题并列出假设和类似问题。
* **第 2 步:为什么需要解决问题?** 列出解决问题的动机,解决方案提供的好处以及解决方案的使用方法。
* **第 3 步:我该如何解决这个问题?** 描述如何手动解决问题以刷新领域知识。
你如何定义机器学习的问题?您是否使用过上述任何一种策略?如果是,您的经历是什么?发表评论。
\ No newline at end of file
......@@ -11,7 +11,7 @@
[![Test Harness](img/2624449a5b217ca3c2a96331e936a106.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2013/12/test-harness.jpg)
测试线束
照片归属于 [NASA Webb望远镜](http://www.flickr.com/photos/nasawebbtelescope/8721550190/sizes/l/),部分版权所有
照片归属于 [NASA Webb 望远镜](http://www.flickr.com/photos/nasawebbtelescope/8721550190/sizes/l/),部分版权所有
## 测试线束
......@@ -25,7 +25,7 @@
表现度量是您希望评估问题解决方案的方式。它是您对测试数据集上受过训练的模型所做的预测所做的测量。
表现度量通常专用于您正在使用的问题类,例如分类,回归和聚类。许多标准表现指标将为您提供对您的问题域有意义的分数。例如,分类的分类准确率(总校正校正除以总预测数乘以100将其变为百分比)。
表现度量通常专用于您正在使用的问题类,例如分类,回归和聚类。许多标准表现指标将为您提供对您的问题域有意义的分数。例如,分类的分类准确率(总校正校正除以总预测数乘以 100 将其变为百分比)。
您可能还需要更详细的表现细分,例如,您可能想知道垃圾邮件分类问题的误报,因为好的电子邮件将被标记为垃圾邮件并且无法读取。
......@@ -43,15 +43,15 @@
它首先涉及将数据集分成多个大小相等的实例组(称为折叠)。然后对所有折叠进行训练,除了遗漏之外的所有折叠,并且在遗漏折叠处测试所准备的模型。重复该过程,以便每个折叠都有机会被遗漏并充当测试数据集。最后,在所有折叠中对表现度量进行平均,以估计算法对问题的能力。
例如,3次交叉验证将涉及3次训练和测试模型:
例如,3 次交叉验证将涉及 3 次训练和测试模型:
* #1:在折叠1 + 2上训练,在折叠3上进行测试
* #2:在折叠1 + 3上训练,在折叠2上进行测试
* #3:训练2 + 3折叠,在折叠1上测试
* #1:在折叠 1 + 2 上训练,在折叠 3 上进行测试
* #2:在折叠 1 + 3 上训练,在折叠 2 上进行测试
* #3:训练 2 + 3 折叠,在折叠 1 上测试
折叠数量可能因数据集的大小而异,但常见数字为3,5,7和10倍。目标是在训练和测试集中的数据大小和表示之间取得良好的平衡。
折叠数量可能因数据集的大小而异,但常见数字为 3,5,7 和 10 倍。目标是在训练和测试集中的数据大小和表示之间取得良好的平衡。
当您刚入门时,坚持使用简单的训练和测试数据(例如66%/ 34%)并在您更有信心后进行交叉验证。
当您刚入门时,坚持使用简单的训练和测试数据(例如 66%/ 34%)并在您更有信心后进行交叉验证。
## 测试算法
......@@ -61,9 +61,9 @@
最好的第一种采样检查算法是随机的。插入随机数生成器以生成适当范围内的预测。这应该是您实现的最差的“算法结果”,并且将成为评估所有改进的措施。
选择适合您的问题的5-10种标准算法,并通过测试工具运行它们。通过标准算法,我的意思是流行的方法没有特殊配置。适合您的问题意味着如果您有回归问题,算法可以处理回归。
选择适合您的问题的 5-10 种标准算法,并通过测试工具运行它们。通过标准算法,我的意思是流行的方法没有特殊配置。适合您的问题意味着如果您有回归问题,算法可以处理回归。
从我们已经审查过的算法的[分组中选择方法。我喜欢包含多种混合,并且有多种算法类型的10-20种不同的算法。根据我使用的库,我可能会检查50多种流行的方法来快速清除有前景的方法。](http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/ "A Tour of Machine Learning Algorithms")
从我们已经审查过的算法的[分组中选择方法。我喜欢包含多种混合,并且有多种算法类型的 10-20 种不同的算法。根据我使用的库,我可能会检查 50 多种流行的方法来快速清除有前景的方法。](http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/ "A Tour of Machine Learning Algorithms")
如果要运行许多方法,可能必须重新访问数据准备并减小所选数据集的大小。这可能会降低您对结果的信心,因此请使用各种数据集大小进行测试。您可能希望使用较小尺寸的数据集进行算法点检查,并使用更完整的数据集进行算法调整。
......@@ -77,5 +77,5 @@
如果您希望深入了解此主题,可以从以下资源中了解更多信息。
* [数据挖掘:实用机器学习工具和技术](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20)(会员链接),第5章:可信度:评估所学知识
* [机器学习:神经和统计分类](http://www.amazon.com/dp/8188689734?tag=inspiredalgor-20)(会员链接),第7章:比较方法
\ No newline at end of file
* [数据挖掘:实用机器学习工具和技术](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20)(会员链接),第 5 章:可信度:评估所学知识
* [机器学习:神经和统计分类](http://www.amazon.com/dp/8188689734?tag=inspiredalgor-20)(会员链接),第 7 章:比较方法
\ No newline at end of file
......@@ -55,7 +55,7 @@
您使用的[准确度分数](http://machinelearningmastery.com/classification-accuracy-is-not-enough-more-performance-measures-you-can-use/ "Classification Accuracy is Not Enough: More Performance Measures You Can Use")很重要。在计算基线之前,您必须选择计划使用的准确度分数。分数必须是相关的,并通过首先处理问题来告知您要回答的问题。
如果您正在处理分类问题,您可能需要查看 [Kappa统计量](http://en.wikipedia.org/wiki/Cohen's_kappa),它会为您提供基线标准化的准确度分数。基线准确度为0,高于零的分数显示基线的改善。
如果您正在处理分类问题,您可能需要查看 [Kappa 统计量](http://en.wikipedia.org/wiki/Cohen's_kappa),它会为您提供基线标准化的准确度分数。基线准确度为 0,高于零的分数显示基线的改善。
## 将结果与基线进行比较
......
......@@ -15,7 +15,7 @@
阅读这篇文章后,你会知道:
* 探索预测性建模问题的替代框架的重要性。
* 需要在输入数据上开发一套“_视图_”并对每个视图进行系统测试。
* 需要在输入数据上开发一套“_ 视图 _”并对每个视图进行系统测试。
* 功能选择,工程和准备的概念是为您的问题创建更多视图的方法。
让我们开始吧。
......@@ -27,7 +27,7 @@
## 概观
这篇文章分为8个部分;他们是:
这篇文章分为 8 个部分;他们是:
1. 问题框架
2. 收集更多数据
......
......@@ -2,7 +2,7 @@
> 原文: [https://machinelearningmastery.com/how-to-identify-outliers-in-your-data/](https://machinelearningmastery.com/how-to-identify-outliers-in-your-data/)
Bojan Miletic在使用机器学习算法时询问了有关数据集中异常值检测的问题。这篇文章是对他的问题的回答。
Bojan Miletic 在使用机器学习算法时询问了有关数据集中异常值检测的问题。这篇文章是对他的问题的回答。
如果您对机器学习有疑问,请注册时事通讯并回复电子邮件或使用[联系表格](http://machinelearningmastery.com/contact/ "Contact")并询问,我会回答您的问题,甚至可能将其变成博客文章。
......@@ -25,18 +25,18 @@ Bojan Miletic在使用机器学习算法时询问了有关数据集中异常值
识别异常值的过程在数据挖掘和机器学习中有许多名称,例如异常值挖掘,异常值建模和新颖性检测以及异常检测。
在他的书[异常分析](http://www.amazon.com/dp/1461463955?tag=inspiredalgor-20)(联盟链接)中,Aggarwal提供了一个有用的离群检测方法分类,如下:
在他的书[异常分析](http://www.amazon.com/dp/1461463955?tag=inspiredalgor-20)(联盟链接)中,Aggarwal 提供了一个有用的离群检测方法分类,如下:
* **极值分析**:确定数据底层分布的统计尾部。例如,统计方法,如单变量数据的z分数。
* **极值分析**:确定数据底层分布的统计尾部。例如,统计方法,如单变量数据的 z 分数。
* **概率和统计模型**:从数据的概率模型中确定不太可能的实例。例如,使用期望最大化优化的高斯混合模型。
* **线性模型**:使用线性相关将数据建模到较低维度的投影方法。例如,主成分分析和具有大残差的数据可能是异常值。
* **基于邻近度的模型**:与群集,密度或最近邻分析确定的数据质量隔离的数据实例。
* **信息理论模型**:异常值被检测为数据实例,增加了数据集的复杂性(最小代码长度)。
* **高维异常值检测**:搜索子空间中异常值的方法可以在更高维度(维数的诅咒)中分解基于距离的度量。
Aggarwal评论说,异常模型的可解释性至关重要。对于特定数据实例为何或不是异常值的决策,需要上下文或基本原理。
Aggarwal 评论说,异常模型的可解释性至关重要。对于特定数据实例为何或不是异常值的决策,需要上下文或基本原理。
在他对[数据挖掘和知识发现手册](http://www.amazon.com/dp/0387098224?tag=inspiredalgor-20)(会员链接)的贡献篇章中,Irad Ben-Gal提出了异常模型的分类,如单变量或多变量,参数和非参数。这是基于已知数据来构造方法的有用方法。例如:
在他对[数据挖掘和知识发现手册](http://www.amazon.com/dp/0387098224?tag=inspiredalgor-20)(会员链接)的贡献篇章中,Irad Ben-Gal 提出了异常模型的分类,如单变量或多变量,参数和非参数。这是基于已知数据来构造方法的有用方法。例如:
* 您是否考虑过一个或多个属性中的异常值(单变量或多变量方法)?
* 您能否假设一个统计分布,从中采集或不采样(参数或非参数)?
......@@ -53,14 +53,14 @@ Aggarwal评论说,异常模型的可解释性至关重要。对于特定数据
* 专注于单变量方法
* 使用散点图,直方图和框和胡须图可视化数据并查找极值
* 假设分布(高斯分布)并寻找与平均值相比超过2或3个标准差的值或从第一个或第三个四分位数开始的1.5倍的值
* 假设分布(高斯分布)并寻找与平均值相比超过 2 或 3 个标准差的值或从第一个或第三个四分位数开始的 1.5 倍的值
* 从训练数据集中筛选出异常值候选者并评估您的模型表现
### 接近方法
一旦探索了更简单的极值方法,请考虑转向基于邻近度的方法。
* 使用聚类方法识别数据中的自然聚类(例如k均值算法)
* 使用聚类方法识别数据中的自然聚类(例如 k 均值算法)
* 识别并标记聚类质心
* 识别与集群质心具有固定距离或百分比距离的数据实例
* 从训练数据集中筛选出异常值候选者并评估您的模型表现
......@@ -69,7 +69,7 @@ Aggarwal评论说,异常模型的可解释性至关重要。对于特定数据
投影方法应用起来相对简单,并且可以快速突出显示无关的值。
* 使用投影方法将数据汇总为两个维度(例如PCA,SOM或Sammon的映射)
* 使用投影方法将数据汇总为两个维度(例如 PCA,SOM 或 Sammon 的映射)
* 可视化映射并手动识别异常值
* 使用来自投影值或码本向量的邻近度量来识别异常值
* 从训练数据集中筛选出异常值候选者并评估您的模型表现
......@@ -84,11 +84,11 @@ Aggarwal评论说,异常模型的可解释性至关重要。对于特定数据
有很多网页讨论异常值检测,但我建议阅读一本关于这个主题的好书,更具权威性。即使查看机器学习和数据挖掘的入门书籍也不会对您有用。有关统计学家对异常值的经典处理,请查看:
* [Rousseeuw和Leroy于2003年发布的鲁棒回归和异常检测](http://www.amazon.com/dp/0471488550?tag=inspiredalgor-20)(会员链接)
* [Barnett和Lewis于1994年出版的统计量](http://www.amazon.com/dp/0471930946?tag=inspiredalgor-20)(会员链接)中的异常值
* [异常值的识别](http://www.amazon.com/dp/041221900X?tag=inspiredalgor-20)(会员链接)霍金斯出版于1980年的专着
* [Rousseeuw 和 Leroy 于 2003 年发布的鲁棒回归和异常检测](http://www.amazon.com/dp/0471488550?tag=inspiredalgor-20)(会员链接)
* [Barnett 和 Lewis 于 1994 年出版的统计量](http://www.amazon.com/dp/0471930946?tag=inspiredalgor-20)(会员链接)中的异常值
* [异常值的识别](http://www.amazon.com/dp/041221900X?tag=inspiredalgor-20)(会员链接)霍金斯出版于 1980 年的专着
有关数据挖掘社区对异常值的现代处理,请参阅:
* [异常分析](http://www.amazon.com/dp/1461463955?tag=inspiredalgor-20)(会员链接)由Aggarwal于2013年出版
* 第7章,Irad Ben-Gal在[数据挖掘与知识发现手册](http://www.amazon.com/dp/0387098224?tag=inspiredalgor-20)(会员链接)中编辑,由Maimon和Rokach编辑,于2010年出版
\ No newline at end of file
* [异常分析](http://www.amazon.com/dp/1461463955?tag=inspiredalgor-20)(会员链接)由 Aggarwal 于 2013 年出版
* 第 7 章,Irad Ben-Gal 在[数据挖掘与知识发现手册](http://www.amazon.com/dp/0387098224?tag=inspiredalgor-20)(会员链接)中编辑,由 Maimon 和 Rokach 编辑,于 2010 年出版
\ No newline at end of file
......@@ -23,7 +23,7 @@ Tuning Fork
开始的地方是从您已经知道的对您的问题表现良好的算法中获得更好的结果。您可以通过探索和微调这些算法的配置来实现此目的。
机器学习算法被参数化,并且那些参数的修改可以影响学习过程的结果。将每个算法参数视为图形上的维度,其中给定参数的值作为沿轴的点。三个参数将是算法的可能配置的立方体,并且n参数将是算法的可能配置的n维超立方体。
机器学习算法被参数化,并且那些参数的修改可以影响学习过程的结果。将每个算法参数视为图形上的维度,其中给定参数的值作为沿轴的点。三个参数将是算法的可能配置的立方体,并且 n 参数将是算法的可能配置的 n 维超立方体。
算法调整的目的是为您的问题找到超立方体中的最佳点。您将针对您的测试工具进行优化,因此您再也不能低估花时间构建可信测试工具的重要性。
......@@ -39,9 +39,9 @@ Tuning Fork
这可以通过许多方式实现。您可以探索的三种合奏策略是:
* **Bagging** :更正式地称为Bootstrapped Aggregation,相同的算法通过训练不同的训练数据子集对问题有不同的观点。
* **Bagging** :更正式地称为 Bootstrapped Aggregation,相同的算法通过训练不同的训练数据子集对问题有不同的观点。
* **Boosting** :针对相同的训练数据训练不同的算法。
* **混合**:更正式地称为Stacked Aggregation或Stacking是各种模型,其预测被作为新模型的输入,学习如何将预测结合到整体预测中。
* **混合**:更正式地称为 Stacked Aggregation 或 Stacking 是各种模型,其预测被作为新模型的输入,学习如何将预测结合到整体预测中。
在用尽更多传统方法之后进入合奏方法是个好主意。这有两个很好的理由,它们通常比传统方法更复杂,传统方法为您提供了良好的基础水平,您可以从中提高和绘制来创建您的合奏。
......@@ -60,8 +60,8 @@ Tuning Fork
这可能是一个外国的想法,所以这里有三个例子:
* **分类**:你有一个具有[红色,绿色蓝色]值的分类属性,你可以将它分成红色,绿色和蓝色的3个二进制属性,并为每个实例分别赋予1或0值。
* **Real** :你有一个实数值,其值介于0到1000之间。你可以创建10个二进制属性,每个属性代表一个值的bin(bin 1为0-99,bin 2为100-199)等)并为每个实例分配二进制值(1/0)。
* **分类**:你有一个具有[红色,绿色蓝色]值的分类属性,你可以将它分成红色,绿色和蓝色的 3 个二进制属性,并为每个实例分别赋予 1 或 0 值。
* **Real** :你有一个实数值,其值介于 0 到 1000 之间。你可以创建 10 个二进制属性,每个属性代表一个值的 bin(bin 1 为 0-99,bin 2 为 100-199)等)并为每个实例分配二进制值(1/0)。
我建议一步一步地执行此过程,并为每个修改创建一个新的测试/训练数据集,然后在数据集上测试算法。这将开始让您直观了解数据库中的属性和功能,这些属性和功能会向算法公开更多或更少的信息以及对表现度量的影响。您可以使用这些结果来指导进一步的极端分解或聚合。
......@@ -77,12 +77,12 @@ Tuning Fork
如果您希望深入了解此主题,请查看以下资源。
* [黑客机器学习](http://www.amazon.com/dp/1449303714?tag=inspiredalgor-20),第12章:模型比较
* [数据挖掘:实用机器学习工具和技术](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20),第7章:转换:设计输入和输出
* [统计学习要素:数据挖掘,推理和预测](http://www.amazon.com/dp/0387848576?tag=inspiredalgor-20),第16章:集成学习
* [黑客机器学习](http://www.amazon.com/dp/1449303714?tag=inspiredalgor-20),第 12 章:模型比较
* [数据挖掘:实用机器学习工具和技术](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20),第 7 章:转换:设计输入和输出
* [统计学习要素:数据挖掘,推理和预测](http://www.amazon.com/dp/0387848576?tag=inspiredalgor-20),第 16 章:集成学习
**更新**
有关从算法中获取更多信息的20个提示和技巧,请参阅帖子:
有关从算法中获取更多信息的 20 个提示和技巧,请参阅帖子:
* [如何提高深度学习效能](http://machinelearningmastery.com/improve-deep-learning-performance/)
\ No newline at end of file
......@@ -2,7 +2,7 @@
> 原文: [https://machinelearningmastery.com/how-to-kick-ass-in-competitive-machine-learning/](https://machinelearningmastery.com/how-to-kick-ass-in-competitive-machine-learning/)
[David Kofoed Wind](http://www.davidwind.dk/)Kaggle博客No Free Hunch上发表了一篇文章,名为“ [_从最好的_](http://blog.kaggle.com/2014/08/01/learning-from-the-best/) 中学习”。在这篇文章中,大卫总结了6个与参与机器学习竞赛相关的关键领域,以及来自表现最好的kagglers的报价。
[David Kofoed Wind](http://www.davidwind.dk/) Kaggle 博客 No Free Hunch 上发表了一篇文章,名为“ [_ 从最好的 _](http://blog.kaggle.com/2014/08/01/learning-from-the-best/) 中学习”。在这篇文章中,大卫总结了 6 个与参与机器学习竞赛相关的关键领域,以及来自表现最好的 kagglers 的报价。
在这篇文章中,您将发现从该帖子中提取的竞争性机器学习中做得好的关键启发式方法。
......@@ -11,13 +11,13 @@
[利达](https://www.flickr.com/photos/lidarose/267681376/)的最佳
照片中学习,保留一些权利
## 向Kaggle Masters学习
## 向 Kaggle Masters 学习
David[丹麦技术大学](http://www.dtu.dk/english)认知系统系的博士生。在此之前,他是一名硕士生,他的论文题目是“ [_预测机器学习中的概念_](http://www.davidwind.dk/wp-content/uploads/2014/07/main.pdf) ”。
David[丹麦技术大学](http://www.dtu.dk/english)认知系统系的博士生。在此之前,他是一名硕士生,他的论文题目是“ [_ 预测机器学习中的概念 _](http://www.davidwind.dk/wp-content/uploads/2014/07/main.pdf) ”。
你会从标题中知道它,但这是一个很好的论点。在其中,大卫提炼了3名Kaggle大师 [Tim Salimans](https://www.kaggle.com/users/3375/tim-salimans)[Steve Donoho](https://www.kaggle.com/users/9766/breakfastpirate)[Anil Thomas](https://www.kaggle.com/users/7837/anil-thomas) 的建议,并分析了10场比赛的结果。在Kaggle比赛中表现良好,然后通过参加2个案例研究比赛来测试这些课程。
你会从标题中知道它,但这是一个很好的论点。在其中,大卫提炼了 3 名 Kaggle 大师 [Tim Salimans](https://www.kaggle.com/users/3375/tim-salimans)[Steve Donoho](https://www.kaggle.com/users/9766/breakfastpirate)[Anil Thomas](https://www.kaggle.com/users/7837/anil-thomas) 的建议,并分析了 10 场比赛的结果。在 Kaggle 比赛中表现良好,然后通过参加 2 个案例研究比赛来测试这些课程。
他的框架有5个组成部分:
他的框架有 5 个组成部分:
1. 特征工程是预测机器学习中最重要的部分
2. 过拟合排行榜是一个真正的问题
......@@ -43,11 +43,11 @@ David是[丹麦技术大学](http://www.dtu.dk/english)认知系统系的博士
### 过拟合
过拟合是指创建在训练数据上表现良好的模型,而不是在看不见的测试数据上(或远离它)。这扩展到在排行榜上观察到的分数,这是对用于识别竞赛获胜者的验证数据集样本(通常约20%)的模型的评估。
过拟合是指创建在训练数据上表现良好的模型,而不是在看不见的测试数据上(或远离它)。这扩展到在排行榜上观察到的分数,这是对用于识别竞赛获胜者的验证数据集样本(通常约 20%)的模型的评估。
* 小而嘈杂的训练数据集可能导致排行榜和最终结果之间更大的不匹配。
* 排行榜确实包含信息,可用于模型选择和超参数调整。
* Kaggle使得过拟合的危险变得非常真实。
* Kaggle 使得过拟合的危险变得非常真实。
* 在测试工具上花费大量时间来估算模型准确率,甚至忽略排行榜。
* 将测试工具分数与排行榜分数相关联,以评估您可以放在排行榜中的信任度。
......@@ -77,11 +77,11 @@ David是[丹麦技术大学](http://www.dtu.dk/english)认知系统系的博士
* 头脑风暴可以使用许多不同的方式来对问题进行建模。
* 建模飞行着陆时间与预计飞行时间比率的总飞行时间的示例。
* 使用不同的损失函数(即RMSE与MAE)探索模型的准备。
* 使用不同的损失函数(即 RMSE 与 MAE)探索模型的准备。
### 额外的建议
本节列出了David和他的受访者在机器学习竞赛方面表现良好的其他见解。
本节列出了 David 和他的受访者在机器学习竞赛方面表现良好的其他见解。
* 尽快在排行榜上获取一些东西
* 构建一个加载数据的管道,并可靠地评估模型,这比你想象的要困难得多。
......@@ -92,6 +92,6 @@ David是[丹麦技术大学](http://www.dtu.dk/english)认知系统系的博士
## 摘要
在这篇文章中,您发现了参与机器学习竞赛时的5个问题的框架:特征工程,过拟合,使用简单模型,集合和预测正确的事物。
在这篇文章中,您发现了参与机器学习竞赛时的 5 个问题的框架:特征工程,过拟合,使用简单模型,集合和预测正确的事物。
在这篇文章中,我们在关键经验法则中回顾了David的框架,可以用来在参加Kaggle比赛时从数据和算法中获得最大收益。
\ No newline at end of file
在这篇文章中,我们在关键经验法则中回顾了 David 的框架,可以用来在参加 Kaggle 比赛时从数据和算法中获得最大收益。
\ No newline at end of file
......@@ -25,7 +25,7 @@
## 概观
这篇文章分为4部分;他们是:
这篇文章分为 4 部分;他们是:
1. 模范技巧是相对的
2. 基线模型技巧
......@@ -66,9 +66,9 @@
## 什么是最好的分数?
如果您正在处理分类问题,最高分是100%准确率。
如果您正在处理分类问题,最高分是 100%准确率。
如果您正在处理回归问题,则最佳得分为0.0错误。
如果您正在处理回归问题,则最佳得分为 0.0 错误。
这些分数不可能达到上/下限。所有预测性建模问题都有预测误差。期待它。该错误来自一系列来源,例如:
......@@ -91,9 +91,9 @@
* **开始高**。选择一种复杂且已知可在一系列预测模型问题上表现良好的机器学习方法,例如随机森林或梯度提升。评估问题的模型并将结果用作近似的高端基准,然后找到实现类似表现的最简单模型。
* **详尽搜索**。评估您可以在问题上考虑的所有机器学习方法,并选择相对于基线实现最佳表现的方法。
“_开始高_”方法很快,可以帮助您定义模型技能的界限以期待问题并找到可以获得类似结果的简单(例如Occam Razor)模型。它还可以帮助您快速找出问题是否可解决/可预测,这很重要,因为并非所有问题都是可预测的。
“_ 开始高 _”方法很快,可以帮助您定义模型技能的界限以期待问题并找到可以获得类似结果的简单(例如 Occam Razor)模型。它还可以帮助您快速找出问题是否可解决/可预测,这很重要,因为并非所有问题都是可预测的。
“_穷举搜索_”速度很慢,非常适合长期运行的项目,其中模型技能比几乎任何其他问题更重要。我经常对这种方法进行各种类似方法的批量测试,并称之为[现场检查](https://machinelearningmastery.com/why-you-should-be-spot-checking-algorithms-on-your-machine-learning-problems/)方法。
“_ 穷举搜索 _”速度很慢,非常适合长期运行的项目,其中模型技能比几乎任何其他问题更重要。我经常对这种方法进行各种类似方法的批量测试,并称之为[现场检查](https://machinelearningmastery.com/why-you-should-be-spot-checking-algorithms-on-your-machine-learning-problems/)方法。
这两种方法都会为您提供一组模型表现分数,您可以将其与基线进行比较。
......@@ -103,8 +103,8 @@
如果您希望深入了解,本节将提供有关该主题的更多资源。
* [如何使用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/persistence-time-series-forecasting-with-python/)
* [如何使用 Python 从零开始实现基线机器学习算法](https://machinelearningmastery.com/implement-baseline-machine-learning-algorithms-scratch-python/)
* [机器学习表现改进备忘单](https://machinelearningmastery.com/machine-learning-performance-improvement-cheat-sheet/)
## 摘要
......
......@@ -8,24 +8,24 @@
## 工作流程激励问题
Jeromy Anglim在2010年墨尔本R用户小组的演讲中介绍了R的项目布局状况。视频有点摇摇欲坠,但对该主题进行了很好的讨论。
Jeromy Anglim 在 2010 年墨尔本 R 用户小组的演讲中介绍了 R 的项目布局状况。视频有点摇摇欲坠,但对该主题进行了很好的讨论。
<iframe allowfullscreen="" frameborder="0" height="375" src="https://www.youtube.com/embed/bbaPSJechgY?feature=oembed" width="500"></iframe>
我非常喜欢Jeromy演讲中的动机问题:
我非常喜欢 Jeromy 演讲中的动机问题:
* 将项目划分为文件和文件夹?
*R分析纳入报告?
* 将默认R输出转换为发布质量表,数字和文本?
* R 分析纳入报告?
* 将默认 R 输出转换为发布质量表,数字和文本?
* 建立最终产品?
* 对分析进行排序?
* 将代码划分为函数?
您可以在Jeromy的博客, [PDF演示幻灯片](https://github.com/jeromyanglim/RMeetup_Workflow/raw/master/backup/Rmeetup_Workflow_handout.pdf)和演示文稿的 [YouTube视频上查看演示文稿的](https://www.youtube.com/watch?v=bbaPSJechgY)[摘要。](http://jeromyanglim.blogspot.com.au/2010/12/r-workflow-slides-from-talk-at.html)
您可以在 Jeromy 的博客, [PDF 演示幻灯片](https://github.com/jeromyanglim/RMeetup_Workflow/raw/master/backup/Rmeetup_Workflow_handout.pdf)和演示文稿的 [YouTube 视频上查看演示文稿的](https://www.youtube.com/watch?v=bbaPSJechgY)[摘要。](http://jeromyanglim.blogspot.com.au/2010/12/r-workflow-slides-from-talk-at.html)
## 项目工作流程的目标
David Smith在标题为 [R](http://blog.revolutionanalytics.com/2010/10/a-workflow-for-r.html) 的工作流程的帖子中提供了他认为的良好项目工作流程目标的摘要。我认为这些非常好,在设计自己的项目布局时应该牢记这一点。
David Smith 在标题为 [R](http://blog.revolutionanalytics.com/2010/10/a-workflow-for-r.html) 的工作流程的帖子中提供了他认为的良好项目工作流程目标的摘要。我认为这些非常好,在设计自己的项目布局时应该牢记这一点。
* **透明度**:项目的逻辑和清晰布局,使读者更直观。
* **可维护性**:使用文件和目录的标准名称轻松修改项目。
......@@ -36,20 +36,20 @@ David Smith在标题为 [R](http://blog.revolutionanalytics.com/2010/10/a-workfl
## ProjectTemplate
John Myles White有一个名为 [ProjectTemplate](http://projecttemplate.net/) 的R项目,旨在为统计分析项目自动创建一个定义良好的布局。它提供了自动加载和重叠数据的约定和实用程序。
John Myles White 有一个名为 [ProjectTemplate](http://projecttemplate.net/) 的 R 项目,旨在为统计分析项目自动创建一个定义良好的布局。它提供了自动加载和重叠数据的约定和实用程序。
ProjectTemplate的徽标,用于布置R统计分析项目的项目。
ProjectTemplate 的徽标,用于布置 R 统计分析项目的项目。
项目布局比我想要的要大,但可以深入了解组织项目的高度结构化方式。
* **cache** :每次执行分析时不需要重新生成的预处理数据集。
* **config** :项目的配置设置
* **数据**:原始数据文件。
* **munge** :预处理数据munging代码,其输出放在缓存中。
* **munge** :预处理数据 munging 代码,其输出放在缓存中。
* **src** :统计分析脚本。
* **diagnostics** :用于诊断数据集是否存在损坏或异常值的脚本。
* **doc** :关于分析的文档。
* **图**:从分析中创建的图表。
* **lib** :Helper库函数但不是核心统计分析。
* **lib** :Helper 库函数但不是核心统计分析。
* **logs** :脚本输出和任何自动记录。
* **分析**:用于对代码时序进行基准测试的脚本。
* **报告**:输出报告和可能会进入报告(如表格)的内容。
......@@ -57,11 +57,11 @@ ProjectTemplate的徽标,用于布置R统计分析项目的项目。
* **README** :指出任何新人参与项目的注释。
* **TODO** :您计划进行的未来改进和错误修复列表。
您可以在 [ProjectTemplate主页](http://projecttemplate.net/),John的网站上的[博客文章](http://www.johnmyleswhite.com/notebook/2010/08/26/projecttemplate/) [GitHub页面](https://github.com/johnmyleswhite/ProjectTemplate)进行开发以及 [CRAN页面](http://cran.r-project.org/web/packages/ProjectTemplate/)进行分发了解更多信息。
您可以在 [ProjectTemplate 主页](http://projecttemplate.net/),John 的网站上的[博客文章](http://www.johnmyleswhite.com/notebook/2010/08/26/projecttemplate/) [GitHub 页面](https://github.com/johnmyleswhite/ProjectTemplate)进行开发以及 [CRAN 页面](http://cran.r-project.org/web/packages/ProjectTemplate/)进行分发了解更多信息。
## 数据管理
Software Carpentry提供了一个标题为“数据管理”的简短演示文稿。数据管理方法的灵感来自William Stafford Noble题为[组织计算生物学项目快速指南](http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000424)的文章。
Software Carpentry 提供了一个标题为“数据管理”的简短演示文稿。数据管理方法的灵感来自 William Stafford Noble 题为[组织计算生物学项目快速指南](http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000424)的文章。
<iframe allowfullscreen="" frameborder="0" height="375" src="https://www.youtube.com/embed/3MEJ38BO6Mo?feature=oembed" width="500"></iframe>
......@@ -75,12 +75,12 @@ Software Carpentry提供了一个标题为“数据管理”的简短演示文
* [你如何管理你的文件&您的项目目录?](https://www.biostars.org/p/821/#825)
* [统计分析和报告编写的工作流程](http://stackoverflow.com/questions/1429907/workflow-for-statistical-analysis-and-report-writing)
* [项目组织与R](http://stackoverflow.com/questions/13036472/project-organization-with-r)
* [组织R代码和输出的有效方法是什么?](http://stats.stackexchange.com/questions/10987/what-are-efficient-ways-to-organize-r-code-and-output)
* [项目组织与 R](http://stackoverflow.com/questions/13036472/project-organization-with-r)
* [组织 R 代码和输出的有效方法是什么?](http://stats.stackexchange.com/questions/10987/what-are-efficient-ways-to-organize-r-code-and-output)
一个很好的例子是问题[如何有效地管理统计分析项目?](http://stats.stackexchange.com/questions/2910/how-to-efficiently-manage-a-statistical-analysis-project) 变成了一个描述最佳实践的社区维基。总之,这些做法分为以下几个部分:
* **数据管理**:使用目录结构,永远不要直接修改原始数据,检查数据一致性,使用GNU make。
* **数据管理**:使用目录结构,永远不要直接修改原始数据,检查数据一致性,使用 GNU make。
* **编码**:将代码组织成功能单元,将所有内容,自定义函数记录在专用文件中。
* **分析**:记录随机种子,将参数分成配置文件,使用多变量图
* **版本控制**:使用版本控制,备份所有内容,使用问题跟踪器。
......@@ -90,9 +90,9 @@ Software Carpentry提供了一个标题为“数据管理”的简短演示文
每个项目我都试图改进我的项目布局。这很难,因为项目因数据和目标而异,语言和工具也是如此。我已经尝试了所有已编译的代码和所有脚本语言版本。我发现的一些好建议包括:
* 坚持 [POSIX文件系统布局](http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard)(var,etc,bin,lib等)。
* 坚持 [POSIX 文件系统布局](http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard)(var,etc,bin,lib 等)。
* 将所有命令放在脚本中。
*GNU make目标调用所有脚本。
* GNU make 目标调用所有脚本。
* 制作创建环境和下载公共数据集的目标。
* 创建秘籍并让基础结构检查并创建每次运行的任何缺少的输出产品。
......
......@@ -15,13 +15,13 @@
您处理数据的纪律越严格,您可能会获得更一致和更好的结果。为机器学习算法准备数据的过程可以分为三个步骤:
* **第1步**:选择数据
* **第2步**:预处理数据
* **步骤3** :变换数据
* **第 1 步**:选择数据
* **第 2 步**:预处理数据
* **步骤 3** :变换数据
您可以以线性方式遵循此过程,但很可能是使用多个循环进行迭代。
## 第1步:选择数据
## 第 1 步:选择数据
此步骤涉及选择要使用的所有可用数据的子集。总是强烈希望包含所有可用的数据,“更多更好”的格言将成立。这可能是也可能不是。
......@@ -35,7 +35,7 @@
它只是在小问题中,比如已经为您选择了数据的竞赛或玩具数据集。
## 第2步:预处理数据
## 第 2 步:预处理数据
选择数据后,您需要考虑如何使用数据。此预处理步骤是将所选数据转换为可以使用的表单。
......@@ -52,13 +52,13 @@
这么多数据
照片归功于 [Marc_Smith](http://www.flickr.com/photos/marc_smith/1473557291/sizes/l/) ,保留一些权利
## 第3步:转换数据
## 第 3 步:转换数据
最后一步是转换过程数据。您正在使用的特定算法和问题域的知识将影响此步骤,当您处理问题时,您很可能不得不重新审视预处理数据的不同转换。
三种常见的数据转换是缩放,属性分解和属性聚合。此步骤也称为特征工程。
* **缩放**:预处理数据可能包含各种数量的混合尺度的属性,如美元,千克和销售量。许多机器学习方法(如数据属性)具有相同的比例,例如0到1之间的最小值和给定特征的最大值。考虑您可能需要执行的任何功能扩展。
* **缩放**:预处理数据可能包含各种数量的混合尺度的属性,如美元,千克和销售量。许多机器学习方法(如数据属性)具有相同的比例,例如 0 到 1 之间的最小值和给定特征的最大值。考虑您可能需要执行的任何功能扩展。
* **分解**:可能存在表示复杂概念的特征,当分成组成部分时,这些特征可能对机器学习方法更有用。一个例子是可能具有日期和时间组件的日期,而日期和时间组件又可以进一步拆分。也许只有一天中的小时与正在解决的问题相关。考虑您可以执行哪些功能分解。
* **聚合**:可能有一些功能可以聚合到一个功能中,这对您尝试解决的问题更有意义。例如,每次客户登录系统时可能存在数据实例,该系统可以聚合为登录数的计数,从而允许丢弃其他实例。考虑哪种类型的功能聚合可以执行。
......@@ -68,9 +68,9 @@
在这篇文章中,您了解了机器学习数据准备的本质。您在每个步骤中发现了数据准备和策略的三步框架:
* **步骤1:数据选择**考虑可用的数据,缺少的数据以及可以删除的数据。
* **步骤2:数据预处理**通过格式化,清理和采样来组织您选择的数据。
* **步骤3:数据转换**通过使用缩放,属性分解和属性聚合的工程特征,转换为机器学习做好准备的预处理数据。
* **步骤 1:数据选择**考虑可用的数据,缺少的数据以及可以删除的数据。
* **步骤 2:数据预处理**通过格式化,清理和采样来组织您选择的数据。
* **步骤 3:数据转换**通过使用缩放,属性分解和属性聚合的工程特征,转换为机器学习做好准备的预处理数据。
数据准备是一个很大的主题,可能涉及大量的迭代,探索和分析。擅长数据准备将使您成为机器学习的大师。目前,在准备数据时只考虑本文中提出的问题,并始终寻找更清晰的方式来表示您试图解决的问题。
......@@ -79,8 +79,8 @@
如果您希望深入了解此主题,可以在以下资源中了解更多信息。
* [从数据挖掘到数据库中的知识发现](http://scholar.google.com/scholar?q=From+Data+Mining+to+Knowledge+Discovery+in+Databases),1996
* [使用开源工具进行数据分析](http://www.amazon.com/dp/0596802358?tag=inspiredalgor-20)(会员链接),第1部分
* [黑客机器学习](http://www.amazon.com/dp/1449303714?tag=inspiredalgor-20)(会员链接),第2章:数据探索
* [数据挖掘:实用机器学习工具和技术](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20)(会员链接),第7章:转换:设计输入和输出
* [使用开源工具进行数据分析](http://www.amazon.com/dp/0596802358?tag=inspiredalgor-20)(会员链接),第 1 部分
* [黑客机器学习](http://www.amazon.com/dp/1449303714?tag=inspiredalgor-20)(会员链接),第 2 章:数据探索
* [数据挖掘:实用机器学习工具和技术](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20)(会员链接),第 7 章:转换:设计输入和输出
您是否有一些数据准备过程提示和技巧。请留下评论并分享您的经验。
\ No newline at end of file
......@@ -98,7 +98,7 @@
* **测量算法方差**:通过在同一训练数据集上重复算法评估并计算模型技能的方差或标准差,可以测量算法的随机性引入的方差。
* **测量训练数据方差**:训练数据引入的方差可以通过在不同训练数据样本上重复算法评估来测量,但保持伪随机数发生器的种子固定然后计算方差或模型技能的标准差。
通常,通过在训练数据集上运行重复的k折交叉验证然后计算模型技能的方差或标准偏差来估计组合方差。
通常,通过在训练数据集上运行重复的 k 折交叉验证然后计算模型技能的方差或标准偏差来估计组合方差。
## 减少估计的方差
......@@ -108,7 +108,7 @@
对均值的单一估计将具有高方差和低偏差。
这是直观的,因为如果我们重复这个过程30次并计算估计平均值的标准偏差,我们会看到很大的差异。
这是直观的,因为如果我们重复这个过程 30 次并计算估计平均值的标准偏差,我们会看到很大的差异。
减少方差的解决方案也很直观。
......@@ -148,7 +148,7 @@
这只有在每个模型具有相同数量的参数(例如神经网络权重或回归系数)的情况下才有意义。
例如,考虑具有三个系数[b0,b1,b2]的线性回归模型。我们可以拟合一组线性回归模型,并计算最终b0作为每个模型中b0参数的平均值,并对b1和b2重复此过程。
例如,考虑具有三个系数[b0,b1,b2]的线性回归模型。我们可以拟合一组线性回归模型,并计算最终 b0 作为每个模型中 b0 参数的平均值,并对 b1 和 b2 重复此过程。
同样,灵敏度分析可用于测量集合大小对预测方差的影响。
......
......@@ -20,7 +20,7 @@
一旦你发现了一个好的模型和一个足够好的结果(或者不是,视情况而定),你将需要总结所学的内容并将其呈现给利益相关者。这可能是您自己,客户或您工作的公司。
使用powerpoint模板并解决下面列出的部分。您可能希望编写一个分页器并将部分部分用作部分标题。即使在您为自己做的小型实验项目(例如教程和比赛)上也要尝试遵循此过程。很容易在项目上花费过多的时间,并且您希望确保捕获您沿途学到的所有伟大的事物。
使用 powerpoint 模板并解决下面列出的部分。您可能希望编写一个分页器并将部分部分用作部分标题。即使在您为自己做的小型实验项目(例如教程和比赛)上也要尝试遵循此过程。很容易在项目上花费过多的时间,并且您希望确保捕获您沿途学到的所有伟大的事物。
以下是报告项目结果时可以完成的部分。
......@@ -49,7 +49,7 @@
### 模型测试
编写自动化测试,验证可以构建模型并重复实现最低级别的表现。还要为任何数据准备步骤编写测试。您可能希望控制每个单元测试运行的算法使用的随机性(随机数种子),以便测试100%可重复。
编写自动化测试,验证可以构建模型并重复实现最低级别的表现。还要为任何数据准备步骤编写测试。您可能希望控制每个单元测试运行的算法使用的随机性(随机数种子),以便测试 100%可重复。
### 跟踪
......
......@@ -2,24 +2,24 @@
> 原文: [https://machinelearningmastery.com/how-to-work-through-a-problem-like-a-data-scientist/](https://machinelearningmastery.com/how-to-work-through-a-problem-like-a-data-scientist/)
2010年的一篇文章中,Hilary Mason和Chris Wiggins将OSEMN流程描述为数据科学家应该感到舒服的任务分类。
2010 年的一篇文章中,Hilary Mason 和 Chris Wiggins 将 OSEMN 流程描述为数据科学家应该感到舒服的任务分类。
该帖子的标题是“[数据科学分类](http://www.dataists.com/2010/09/a-taxonomy-of-data-science/)”,现已解散的数据库博客。这个过程也被用作最近一本书的结构,特别是“命令行的[数据科学:面向未来的经过时间测试的工具](http://www.amazon.com/dp/1491947853?tag=inspiredalgor-20)”,作者是由O'Reilly出版的Jeroen Janssens。
该帖子的标题是“[数据科学分类](http://www.dataists.com/2010/09/a-taxonomy-of-data-science/)”,现已解散的数据库博客。这个过程也被用作最近一本书的结构,特别是“命令行的[数据科学:面向未来的经过时间测试的工具](http://www.amazon.com/dp/1491947853?tag=inspiredalgor-20)”,作者是由 O'Reilly 出版的 Jeroen Janssens。
在这篇文章中,我们仔细研究了解决数据问题的OSEMN流程。
在这篇文章中,我们仔细研究了解决数据问题的 OSEMN 流程。
[![Work Through A Problem Like A Data Scientist](img/ee1f6a04ed3c8462c1a89b2df5c85be1.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/12/Work-Through-A-Problem-Like-A-Data-Scientist.jpg)
像数据科学家一样解决问题
照片来自[美国陆军RDECOM](http://www.flickr.com/photos/rdecom/7336886600) ,保留一些权利
照片来自[美国陆军 RDECOM](http://www.flickr.com/photos/rdecom/7336886600) ,保留一些权利
## OSEMN流程
## OSEMN 流程
OSEMN是与“负鼠”或“令人敬畏”押韵的缩写,代表获取,磨砂,探索,模型和iNterpret。
OSEMN 是与“负鼠”或“令人敬畏”押韵的缩写,代表获取,磨砂,探索,模型和 iNterpret。
这是数据科学家应该熟悉和熟悉的任务列表。尽管如此,作者指出,没有数据科学家会成为所有这些人的专家。
除了任务列表之外,OSEMN还可以用作使用机器学习工具处理数据问题的蓝图。
除了任务列表之外,OSEMN 还可以用作使用机器学习工具处理数据问题的蓝图。
从这个过程中,作者指出数据黑客符合“`O`”和“`S`”任务,机器学习符合“`E`”和“`M`”任务,而数据科学需要所有元素的组合。
......@@ -29,9 +29,9 @@ OSEMN是与“负鼠”或“令人敬畏”押韵的缩写,代表获取,磨
他们指向手动过程,如使用鼠标指向和单击,并从文档中复制和粘贴数据。
作者建议您采用一系列工具并使用最适合手头工作的工具。他们指向unix命令行工具,数据库中的SQL,使用Python和shell脚本进行Web抓取和脚本编写。
作者建议您采用一系列工具并使用最适合手头工作的工具。他们指向 unix 命令行工具,数据库中的 SQL,使用 Python 和 shell 脚本进行 Web 抓取和脚本编写。
最后,作者指出了使用API​​访问数据的重要性,其中API可能是公共的,也可能是组织内部的。数据通常以JSON格式呈现,而像Python这样的脚本语言可以使数据检索变得更加容易。
最后,作者指出了使用 API​​访问数据的重要性,其中 API 可能是公共的,也可能是组织内部的。数据通常以 JSON 格式呈现,而像 Python 这样的脚本语言可以使数据检索变得更加容易。
## 2.磨砂数据
......@@ -39,13 +39,13 @@ OSEMN是与“负鼠”或“令人敬畏”押韵的缩写,代表获取,磨
真实数据可能存在不一致,缺失值和各种其他形式的损坏。如果从困难的数据源中删除它,可能需要跳闸和清理。即使是干净的数据也可能需要进行后期处理才能使其统一和一致。
数据清理或清理需要“命令行fu”和简单的脚本。
数据清理或清理需要“命令行 fu”和简单的脚本。
作者指出,数据清理是处理数据问题最不性感的部分,但良好的数据清理可以为您实现的结果提供最大的好处。
> 对干净数据的简单分析比对噪声和不规则数据的复杂分析更有成效。
作者指出了简单的命令行工具,如sed,awk,grep和脚本语言,如Python和Perl。
作者指出了简单的命令行工具,如 sed,awk,grep 和脚本语言,如 Python 和 Perl。
有关更多信息,请查看[数据准备过程](http://machinelearningmastery.com/how-to-prepare-data-for-machine-learning/ "How to Prepare Data For Machine Learning")
......@@ -103,8 +103,8 @@ OSEMN是与“负鼠”或“令人敬畏”押韵的缩写,代表获取,磨
## 摘要
在这篇文章中,你发现了Hilary Mason和Chris Wiggins提出的OSEMN。
在这篇文章中,你发现了 Hilary Mason 和 Chris Wiggins 提出的 OSEMN。
OSEMN代表Obtain,Scrub,Explore,Model和iNterpret。
OSEMN 代表 Obtain,Scrub,Explore,Model 和 iNterpret。
[数据库中的知识发现](http://machinelearningmastery.com/what-is-data-mining-and-kdd/ "What is Data Mining and KDD")[应用的机器学习过程](http://machinelearningmastery.com/process-for-working-through-machine-learning-problems/ "Process for working through Machine Learning Problems")类似,您可以使用此过程来解决机器学习问题。
\ No newline at end of file
......@@ -4,7 +4,7 @@
数据准备可以决定您模型的预测能力。
在他们的书 [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) 的第3章中,Kuhn和Johnson介绍了数据准备过程。他们将其称为训练集数据的添加,删除或转换。
在他们的书 [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) 的第 3 章中,Kuhn 和 Johnson 介绍了数据准备过程。他们将其称为训练集数据的添加,删除或转换。
在这篇文章中,您将发现可用于提高模型预测能力的数据预处理步骤。
......@@ -33,9 +33,9 @@
高级模型可以从复杂属性中提取关系,尽管某些模型要求明确说明这些关系。从训练数据中获取新属性以包含在建模过程中可以提高模型表现。
* **虚拟属性**:分类属性可以转换为n二进制属性,其中n是属性具有的类别(或级别)的数量。这些非规范化或分解的属性称为虚拟属性或虚拟变量。
* **转换后的属性**:可以将变换后的属性变量添加到数据集中,以便允许线性方法利用属性之间可能的线性和非线性关系。可以使用简单的变换,如log,square和square root。
* **缺少数据**:缺少数据的属性可以使用可靠的方法(例如k-最近邻居)估算缺失数据。
* **虚拟属性**:分类属性可以转换为 n 二进制属性,其中 n 是属性具有的类别(或级别)的数量。这些非规范化或分解的属性称为虚拟属性或虚拟变量。
* **转换后的属性**:可以将变换后的属性变量添加到数据集中,以便允许线性方法利用属性之间可能的线性和非线性关系。可以使用简单的变换,如 log,square 和 square root。
* **缺少数据**:缺少数据的属性可以使用可靠的方法(例如 k-最近邻居)估算缺失数据。
## 删除数据属性
......@@ -49,11 +49,11 @@
训练数据的变换可以减少数据的偏度以及数据中异常值的突出性。许多模型希望在应用算法之前转换数据。
* **居中**:转换数据,使其平均值为零,标准差为1。这通常称为数据标准化。
* **缩放**:标准缩放变换是将原始比例的数据映射到0到1之间的比例。这通常称为数据规范化。
* **居中**:转换数据,使其平均值为零,标准差为 1。这通常称为数据标准化。
* **缩放**:标准缩放变换是将原始比例的数据映射到 0 到 1 之间的比例。这通常称为数据规范化。
* **删除偏斜**:偏斜数据是指分布被推送到一侧或另一侧(更大或更小的值)而不是正态分布的数据。某些方法假设正常分布的数据,并且如果消除了偏斜,则可以更好地执行。尝试使用值的日志,平方根或反转替换属性。
* **Box-Cox** :Box-Cox变换或变换系列可用于可靠地调整数据以消除偏斜。
* **Binning** :通过将值分组到bin中,可以使数字数据离散。这通常称为数据离散化。此过程可以手动执行,但如果系统地执行并使用在域中有意义的启发式自动执行则更可靠。
* **Box-Cox** :Box-Cox 变换或变换系列可用于可靠地调整数据以消除偏斜。
* **Binning** :通过将值分组到 bin 中,可以使数字数据离散。这通常称为数据离散化。此过程可以手动执行,但如果系统地执行并使用在域中有意义的启发式自动执行则更可靠。
## 摘要
......
# 处理机器学习的大数据文件的7种方法
# 处理机器学习的大数据文件的 7 种方法
> 原文: [https://machinelearningmastery.com/large-data-files-machine-learning/](https://machinelearningmastery.com/large-data-files-machine-learning/)
......@@ -14,7 +14,7 @@
![7 Ways to Handle Large Data Files for Machine Learning](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2017/05/7-Ways-to-Handle-Large-Data-Files-for-Machine-Learning.jpg)
处理机器学习的大数据文件的7种方法
处理机器学习的大数据文件的 7 种方法
[Gareth Thompson](https://www.flickr.com/photos/evo_gt/12267202894/) 的照片,保留一些权利。
## 1.分配更多记忆
......@@ -23,13 +23,13 @@
检查是否可以重新配置工具或库以分配更多内存。
一个很好的例子是Weka,你可以[在启动应用程序时将内存作为参数](https://weka.wikispaces.com/OutOfMemoryException)增加。
一个很好的例子是 Weka,你可以[在启动应用程序时将内存作为参数](https://weka.wikispaces.com/OutOfMemoryException)增加。
## 2.使用较小的样本
您确定需要处理所有数据吗?
随机抽取一些数据,例如前1000行或100,000行。在为所有数据拟合最终模型之前,使用此较小的示例来解决您的问题(使用渐进式数据加载技术)。
随机抽取一些数据,例如前 1000 行或 100,000 行。在为所有数据拟合最终模型之前,使用此较小的示例来解决您的问题(使用渐进式数据加载技术)。
我认为这对于机器学习来说是一种很好的做法,可以让您快速抽查算法和结果。
......@@ -41,23 +41,23 @@
也许你可以访问更大的计算机,内存更多。
例如,一个好的选择是在像Amazon Web Services这样的云服务上租用计算时间,该服务为机器提供数十GB的RAM,每小时不到一美元。
例如,一个好的选择是在像 Amazon Web Services 这样的云服务上租用计算时间,该服务为机器提供数十 GB 的 RAM,每小时不到一美元。
我发现这种方法在过去非常有用。
看帖子:
* [如何使用亚马逊网络服务上的Keras开发和评估大型深度学习模型](http://machinelearningmastery.com/develop-evaluate-large-deep-learning-models-keras-amazon-web-services/)
* [如何使用亚马逊网络服务上的 Keras 开发和评估大型深度学习模型](http://machinelearningmastery.com/develop-evaluate-large-deep-learning-models-keras-amazon-web-services/)
## 4.更改数据格式
您的数据是否以原始ASCII文本存储,如CSV文件?
您的数据是否以原始 ASCII 文本存储,如 CSV 文件?
也许您可以通过使用其他数据格式来加速数据加载并减少使用内存。一个很好的例子是像GRIB,NetCDF或HDF这样的二进制格式。
也许您可以通过使用其他数据格式来加速数据加载并减少使用内存。一个很好的例子是像 GRIB,NetCDF 或 HDF 这样的二进制格式。
有许多命令行工具可用于将一种数据格式转换为另一种不需要将整个数据集加载到内存中的数据格式。
使用其他格式可以允许您以更紧凑的形式存储数据,以节省内存,例如2字节整数或4字节浮点数。
使用其他格式可以允许您以更紧凑的形式存储数据,以节省内存,例如 2 字节整数或 4 字节浮点数。
## 5.流数据或使用渐进式加载
......@@ -67,9 +67,9 @@
这可能需要可以使用诸如随机梯度下降之类的优化技术迭代地学习的算法,而不是需要存储器中的所有数据来执行矩阵运算的算法,诸如线性和逻辑回归的一些实现。
例如,Keras深度学习库提供此功能以逐步加载图像文件,称为 [flow_from_directory](https://keras.io/preprocessing/image/)
例如,Keras 深度学习库提供此功能以逐步加载图像文件,称为 [flow_from_directory](https://keras.io/preprocessing/image/)
另一个例子是Pandas库,它可以[以块](http://pandas.pydata.org/pandas-docs/stable/io.html#iterating-through-files-chunk-by-chunk)加载大型CSV文件。
另一个例子是 Pandas 库,它可以[以块](http://pandas.pydata.org/pandas-docs/stable/io.html#iterating-through-files-chunk-by-chunk)加载大型 CSV 文件。
## 6.使用关系数据库
......@@ -89,7 +89,7 @@
也就是说,一个专为处理非常大的数据集而设计的平台,允许您在其上使用数据转换和机器学习算法。
两个很好的例子是带有 [Mahout](http://mahout.apache.org/) 机器学习库的Hadoop和带有 [MLLib](http://spark.apache.org/mllib/) 库的Spark。
两个很好的例子是带有 [Mahout](http://mahout.apache.org/) 机器学习库的 Hadoop 和带有 [MLLib](http://spark.apache.org/mllib/) 库的 Spark。
我相信,如果您已经用尽上述选项,这是最后的选择,只是因为这会给您的机器学习项目带来额外的硬件和软件复杂性。
......
......@@ -2,24 +2,24 @@
> 原文: [https://machinelearningmastery.com/lessons-learned-building-machine-learning-systems/](https://machinelearningmastery.com/lessons-learned-building-machine-learning-systems/)
[MLConf](%20http://mlconf.com/) 最近的一次演讲中, [Xavier Amatriain](https://www.linkedin.com/in/xamatriain) 描述了他在Netflix的研究/工程经理建立机器学习系统时学到的10个课程。
[MLConf](%20http://mlconf.com/) 最近的一次演讲中, [Xavier Amatriain](https://www.linkedin.com/in/xamatriain) 描述了他在 Netflix 的研究/工程经理建立机器学习系统时学到的 10 个课程。
在这里,您将从他的演讲和幻灯片中总结发现这10节课。
在这里,您将从他的演讲和幻灯片中总结发现这 10 节课。
[![Lessons Learned from Building Machine Learning Systems](img/bb21a5fe2d34628dd22e4818f145844a.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/12/Lessons-Learned-from-Building-Machine-Learning-Systems.png)
建筑机器学习系统的经验教训摘自 [Xavier的演讲](https://www.youtube.com/watch?v=WdzWPuazLA8)
建筑机器学习系统的经验教训摘自 [Xavier 的演讲](https://www.youtube.com/watch?v=WdzWPuazLA8)
## 10经验教训
## 10 经验教训
Xavier提出的10个课程可归纳如下:
Xavier 提出的 10 个课程可归纳如下:
1. 更多数据与/和更好的模型
2. 您可能不需要所有大数据
3. 更复杂的模型不能改善事物的事实并不意味着你不需要
4. 要深思熟虑的训练数据
5. 学会处理(诅咒)演示偏见
6. UI是算法唯一最重要的通信渠道:用户
6. UI 是算法唯一最重要的通信渠道:用户
7. 数据和模型都很棒。你知道什么更好吗?正确的评估方法
8. 分发算法很重要,但知道在哪个级别执行它更为重要
9. 选择你的超参数是明智的,这是值得的
......@@ -29,11 +29,11 @@ Xavier提出的10个课程可归纳如下:
## 1.更多数据与更好的模型
泽维尔质疑引用的“_更多数据胜过更好的模型_”。我指向 [Anand Rajaraman](https://www.linkedin.com/in/anandrajaraman)帖子“[更多数据通常胜过更好的算法](http://anand.typepad.com/datawocky/2008/03/more-data-usual.html)”,可以用这句话来概括:
泽维尔质疑引用的“_ 更多数据胜过更好的模型 _”。我指向 [Anand Rajaraman ](https://www.linkedin.com/in/anandrajaraman)帖子“[更多数据通常胜过更好的算法](http://anand.typepad.com/datawocky/2008/03/more-data-usual.html)”,可以用这句话来概括:
> 总而言之,如果您的资源有限,请添加更多数据,而不是微调机器学习算法的权重。
他还指出 [Novig 2009年与Facebook工程部就更多数据与更好的算法进行的谈话](http://machinelearningmastery.com/hands-on-big-data-by-peter-norvig/ "Hands on Big Data by Peter Norvig")
他还指出 [Novig 2009 年与 Facebook 工程部就更多数据与更好的算法进行的谈话](http://machinelearningmastery.com/hands-on-big-data-by-peter-norvig/ "Hands on Big Data by Peter Norvig")
然后,他指出了一篇论文“[推荐新电影:甚至一些评级比元数据更有价值](http://anand.typepad.com/datawocky/2008/03/more-data-usual.html)”,其中明确指出,较少数据具有高预测性,而更多数据则不是。
......@@ -57,7 +57,7 @@ Xavier提出的10个课程可归纳如下:
## 4.考虑你的训练数据
Xavier评论了对用户行为数据进行非规范化时可能存在的困难。他指出了选择正面和负面案例的问题,在对问题进行建模之前,必须先考虑在哪里绘制线条。这是一个数据表示问题,对您可以实现的结果产生巨大影响。
Xavier 评论了对用户行为数据进行非规范化时可能存在的困难。他指出了选择正面和负面案例的问题,在对问题进行建模之前,必须先考虑在哪里绘制线条。这是一个数据表示问题,对您可以实现的结果产生巨大影响。
我建议你为许多这样的可能线路产生想法并测试它们,或者最有希望的。
......@@ -73,26 +73,26 @@ Xavier评论了对用户行为数据进行非规范化时可能存在的困难
## 6\. UI< =>通过用户的算法
与第5课相关,这是观察到建模算法和用户界面紧密耦合。
与第 5 课相关,这是观察到建模算法和用户界面紧密耦合。
对用户界面的更改可能需要更改算法。
## 7.使用正确的评估方法
Xavier概述了所使用的在线离线测试过程。
Xavier 概述了所使用的在线离线测试过程。
[![Offline Online Training Process](img/0323b2cc3ab0fb058f00a0c703828f34.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/12/Offline-Online-Training-Process.png)
离线在线训练流程
摘自 [Xavier的演讲](http://www.slideshare.net/xamat/10-lessons-learned-from-building-machine-learning-systems)
摘自 [Xavier 的演讲](http://www.slideshare.net/xamat/10-lessons-learned-from-building-machine-learning-systems)
该图显示了离线模型的反向测试,以测试假设,并在线进行A / B测试验证这些结果。这是一张有价值的幻灯片。
该图显示了离线模型的反向测试,以测试假设,并在线进行 A / B 测试验证这些结果。这是一张有价值的幻灯片。
他指出,模型可以针对短期目标(如点击或手表)进行优化,但用户保留是一个真正的目标,称为整体评估标准。
他提醒我们尽可能使用长期指标,只考虑长期指标。
与他们的离线在线方法相关,Xavier评论了将离线指标与在线A / B测试相关联的公开问题。
与他们的离线在线方法相关,Xavier 评论了将离线指标与在线 A / B 测试相关联的公开问题。
## 8.选择正确的级别
......@@ -106,9 +106,9 @@ Xavier概述了所使用的在线离线测试过程。
## 9.选择你的超参数是明智的,这是值得的
Xavier警告说,在调整模型时选择正确的指标非常重要。但他也提到包括模型复杂性在内的东西也是一个重要问题。
Xavier 警告说,在调整模型时选择正确的指标非常重要。但他也提到包括模型复杂性在内的东西也是一个重要问题。
除了网格或随机参数搜索之外,Xavier还提醒我们查看可以减少搜索时间的概率方法。
除了网格或随机参数搜索之外,Xavier 还提醒我们查看可以减少搜索时间的概率方法。
## 10.离线,在线和近线
......@@ -118,12 +118,12 @@ Xavier警告说,在调整模型时选择正确的指标非常重要。但他
这是一套很棒的课程,可以应用于您自己的建模。
您可以在这里查看Xavier的幻灯片:“从建筑机器学习系统中学到的10个经验教训”
您可以在这里查看 Xavier 的幻灯片:“从建筑机器学习系统中学到的 10 个经验教训”
<iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" scrolling="no" src="https://www.slideshare.net/slideshow/embed_code/41571741" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" width="427"></iframe>
**[10 Lessons Learned from Building Machine Learning Systems](https://www.slideshare.net/xamat/10-lessons-learned-from-building-machine-learning-systems "10 Lessons Learned from Building Machine Learning Systems")** from **[Xavier Amatriain](http://www.slideshare.net/xamat)**
Xavier的演示文稿被记录下来,您可以在这里观看整个内容:“ [Xavier Amatriain,算法工程总监,Netflix @ MLconf SF](https://www.youtube.com/watch?v=WdzWPuazLA8)
Xavier 的演示文稿被记录下来,您可以在这里观看整个内容:“ [Xavier Amatriain,算法工程总监,Netflix @ MLconf SF](https://www.youtube.com/watch?v=WdzWPuazLA8)
<iframe allowfullscreen="" frameborder="0" height="281" src="https://www.youtube.com/embed/WdzWPuazLA8?feature=oembed" width="500"></iframe>
\ No newline at end of file
......@@ -55,7 +55,7 @@
此外,如果您认为自己需要最佳解决方案,则可以使用足够好的解决方案作为第一个检查点。
这个简单的重构从“_最准确_”到“_足够准确_”结果就是如何保证在你工作的每个机器学习问题上取得好成绩。
这个简单的重构从“_ 最准确 _”到“_ 足够准确 _”结果就是如何保证在你工作的每个机器学习问题上取得好成绩。
## 你需要一个机器学习清单
......@@ -76,7 +76,7 @@
### 机器学习清单的好处
使用清单来解决机器学习问题的5个好处是:
使用清单来解决机器学习问题的 5 个好处是:
* **减少工作量**:您不必考虑所有技术来尝试每个新问题。
* **更好的结果**:通过遵循所有步骤,您可以保证获得良好的结果,可能比平均结果更好。事实上,它可以确保您获得任何结果。许多项目失败的原因有很多。
......@@ -96,9 +96,9 @@
如果您对可以下载并用于下一个问题的清单版本感兴趣,请查看本文的底部。
该清单基于我之前对KDD /数据挖掘过程的应用,适用于应用机器学习。
该清单基于我之前对 KDD /数据挖掘过程的应用,适用于应用机器学习。
您可以在帖子“[什么是数据挖掘和KDD](http://machinelearningmastery.com/what-is-data-mining-and-kdd/) ”中了解有关KDD过程的更多信息。您可以在“[处理机器学习问题](http://machinelearningmastery.com/process-for-working-through-machine-learning-problems/)的过程”中了解有关我建议的工作流程的更多信息。
您可以在帖子“[什么是数据挖掘和 KDD](http://machinelearningmastery.com/what-is-data-mining-and-kdd/) ”中了解有关 KDD 过程的更多信息。您可以在“[处理机器学习问题](http://machinelearningmastery.com/process-for-working-through-machine-learning-problems/)的过程”中了解有关我建议的工作流程的更多信息。
每个点都可以是博客文章,甚至是书。这个清单中有很多细节被压缩。我试图在推理中加入链接,并在适当的地方进一步阅读。
......@@ -126,7 +126,7 @@
您可以在帖子“[如何定义您的机器学习问题](http://machinelearningmastery.com/how-to-define-your-machine-learning-problem/)”中深入了解清单的这一部分。
#### 1.1问题是什么?
#### 1.1 问题是什么?
本节旨在捕捉问题的明确陈述,以及可能已经设定的任何期望和可能存在的偏差。
......@@ -134,7 +134,7 @@
* 列出有关问题的假设(例如关于数据)。
* 列出与您的问题类似的已知问题。
#### 1.2为什么需要解决问题?
#### 1.2 为什么需要解决问题?
本节旨在捕捉解决问题的动机,并强制预先考虑预期结果。
......@@ -142,7 +142,7 @@
* 描述解决方案的好处(模型或预测)。
* 描述如何使用该解决方案。
#### 1.3如何手动解决问题?
#### 1.3 如何手动解决问题?
本节旨在清除任何剩余的领域知识,并帮助您评估是否真的需要机器学习解决方案。
......@@ -158,7 +158,7 @@
深入研究“[如何为机器学习准备数据](http://machinelearningmastery.com/how-to-prepare-data-for-machine-learning/)”和“[机器学习问题的快速和脏数据分析](http://machinelearningmastery.com/quick-and-dirty-data-analysis-for-your-machine-learning-problem/)”中的核对清单的这一部分。
#### 2.1数据描述
#### 2.1 数据描述
本节旨在强制您考虑所有可用和不可用的数据。
......@@ -166,7 +166,7 @@
* 描述不可用但可取的数据。
* 描述您不需要的可用数据。
#### 2.2数据预处理
#### 2.2 数据预处理
本节旨在将原始数据组织到您可以在建模工具中使用的表单中。
......@@ -181,7 +181,7 @@
这里有两个重要问题:
1. **示例实例**:创建一个数据样本,该样本既代表各种属性密度,又足够小,可以快速构建和评估模型。通常它不是一个样本,而是许多样本。例如,一个用于子分钟模型评估,一个用于亚小时,一个用于子日,依此类推。更多数据可以改变算法的表现。
2. **样本属性**:选择最能将数据中的结构暴露给模型的属性。不同的模型有不同的要求,真正不同的偏好,因为有时打破“_要求_”给出更好的结果。
2. **样本属性**:选择最能将数据中的结构暴露给模型的属性。不同的模型有不同的要求,真正不同的偏好,因为有时打破“_ 要求 _”给出更好的结果。
以下是您可以用来对数据进行采样的不同方法的一些想法。不要选择,依次使用每个,并让测试工具的结果告诉您使用哪种表示。
......@@ -189,9 +189,9 @@
* 按类重新平衡实例(更多关于重新平衡方法)
* 删除异常值(更多关于异常值方法)
* 删除高度更正的属性
* 应用降维方法(主要组件或t-SNE)
* 应用降维方法(主要组件或 t-SNE)
#### 2.3数据转换
#### 2.3 数据转换
本节旨在创建数据的多个视图,以便在以后的步骤中将更多的数据问题结构暴露给建模算法。
......@@ -207,13 +207,13 @@
* 广场和立方体
* 平方根
* 标准化(例如0均值和单位方差)
* 标准化(例如重新缩放为0-1)
* 标准化(例如 0 均值和单位方差)
* 标准化(例如重新缩放为 0-1)
* 描述(例如将真实转换为分类)
你应该使用哪些?所有这些反过来,再次让您的测试工具的结果告知您问题的最佳转换。
#### 2.4数据摘要
#### 2.4 数据摘要
本节旨在清除数据中的任何明显关系。
......@@ -227,7 +227,7 @@
要深入了解清单的这一部分,请参阅帖子“[如何评估机器学习算法](http://machinelearningmastery.com/how-to-evaluate-machine-learning-algorithms/)”和“[为什么你应该在机器学习问题](http://machinelearningmastery.com/why-you-should-be-spot-checking-algorithms-on-your-machine-learning-problems/)上进行采样检查算法”。
#### 3.1创建测试工具
#### 3.1 创建测试工具
本节旨在帮助您定义用于模型评估的可靠方法,该方法可以可靠地用于比较结果。
......@@ -235,7 +235,7 @@
* 评估并选择适当的测试选项。
* 选择用于评估模型的一个(或一小组)表现度量。
#### 3.2评估候选算法
#### 3.2 评估候选算法
本节旨在快速了解问题的可学习性,以及哪些算法和数据视图可能有助于下一步的进一步调查。
......@@ -249,9 +249,9 @@
然而,如果你正在处理一个分类问题,那么可以使用很好的混合算法来对问题进行建模。例如:
* 基于实例的k-最近邻和学习向量量化
* 基于实例的 k-最近邻和学习向量量化
* 更简单的方法,如朴素贝叶斯,逻辑回归和线性判别分析
* 决策树如CART和C4.5 / C5.0
* 决策树如 CART 和 C4.5 / C5.0
* 复杂的非线性方法,如反向传播和支持向量机
* 总是投入随机森林和梯度提升机器
......@@ -263,7 +263,7 @@
您可以在帖子“[如何改善机器学习结果](http://machinelearningmastery.com/how-to-improve-machine-learning-results/)”中深入了解清单的这一部分。
#### 4.1算法调整
#### 4.1 算法调整
本节旨在从表现良好的模型中获得最大收益。
......@@ -271,15 +271,15 @@
* 搜索模型参数的空间。
* 优化表现良好的模型参数。
#### 4.2集合方法
#### 4.2 集合方法
本节旨在结合表现良好的模型的结果,并进一步提高准确率。
* 在表现良好的模型上使用Bagging。
* 在表现良好的模型上使用Boosting。
* 在表现良好的模型上使用 Bagging。
* 在表现良好的模型上使用 Boosting。
* 混合表现良好的模型的结果。
#### 4.3模型选择
#### 4.3 模型选择
本节旨在确保充分考虑模型选择过程。
......@@ -293,15 +293,15 @@
您可以在“[如何使用机器学习结果](http://machinelearningmastery.com/how-to-use-machine-learning-results/)”的帖子中深入了解清单的这一部分。
#### 5.1目前的结果
#### 5.1 目前的结果
本节旨在确保您捕获您所做和所学的内容,以便其他人(以及您未来的自己)可以充分利用它
* 在简短的报告中写下项目(1-5页)。
* 在简短的报告中写下项目(1-5 页)。
* 将记录转换为幻灯片以与其他人分享调查结果。
* 与感兴趣的各方分享代码和结果。
#### 5.2实现结果
#### 5.2 实现结果
本节旨在确保您实现预先制定的解决方案承诺。
......@@ -324,8 +324,8 @@
在本节中,我将向您提供一些其他提示,您可以使用这些提示来充分利用您自己问题的清单。
1. **简化流程**。第一次尝试时不要做任何事情。选择两种算法进行采样检查,一种数据转换,一种改进结果的方法,等等。完成清单的一个周期,然后开始添加复杂性。
2. **使用版本控制**。您将创建许多模型和大量脚本(如果您使用的是R或Python)。确保使用版本控制(如 [GitHub](https://github.com/) )不会失去良好的结果。
3. **程序化**。没有结果,没有变换,没有可视化是特殊的。一切都应该在程序上创建。如果你正在使用Weka,这可能是你写下的一个过程,如果你使用的是R或Python,它可能是Makefile。你会发现你的东西中的错误,你可能希望能够在一滴一滴的情况下重新生成你所有的结果。如果它从零开始都是程序化的,那就像键入“`make`”一样简单。
2. **使用版本控制**。您将创建许多模型和大量脚本(如果您使用的是 R 或 Python)。确保使用版本控制(如 [GitHub](https://github.com/) )不会失去良好的结果。
3. **程序化**。没有结果,没有变换,没有可视化是特殊的。一切都应该在程序上创建。如果你正在使用 Weka,这可能是你写下的一个过程,如果你使用的是 R 或 Python,它可能是 Makefile。你会发现你的东西中的错误,你可能希望能够在一滴一滴的情况下重新生成你所有的结果。如果它从零开始都是程序化的,那就像键入“`make`”一样简单。
4. **记录所有结果**。我认为每个算法都运行以保存文件中的预测是一种很好的做法。还要将每个数据转换和样本保存在单独的文件中。如果数据作为项目的一部分位于目录中的文件中,则始终可以对数据运行新的分析。如果结果需要数小时,数天或数周才能实现,那么这一点非常重要。这包括交叉验证预测,这些预测可用于更复杂的混合策略。
5. **不要跳过步骤**。你可以缩短一步,但不要跳过任何步骤,即使你认为你知道这一切。清单的想法是保证结果。医生非常聪明,非常合格,但仍需要提醒他们洗手。有时您可以简单地忘记过程中的关键步骤,这绝对是关键(比如定义您的问题并意识到您甚至不需要机器学习)。
......@@ -349,7 +349,7 @@
该清单可以在问题中可靠,一致地提供良好的结果。
你不会通过这个核对清单赢得 [Kaggle](https://www.kaggle.com/) 比赛,你会得到一个你可以提交的结果,并且可能超过排行榜的50%(通常要高得多)。
你不会通过这个核对清单赢得 [Kaggle](https://www.kaggle.com/) 比赛,你会得到一个你可以提交的结果,并且可能超过排行榜的 50%(通常要高得多)。
您可以使用它来获得很好的结果,但这是您想要投入多少时间的问题。
......@@ -397,10 +397,10 @@
使用清单完成项目并建立一些信心。
1. [选择一个问题](http://machinelearningmastery.com/practice-machine-learning-with-small-in-memory-datasets-from-the-uci-machine-learning-repository/),你可以在1到2小时内完成。
1. [选择一个问题](http://machinelearningmastery.com/practice-machine-learning-with-small-in-memory-datasets-from-the-uci-machine-learning-repository/),你可以在 1 到 2 小时内完成。
2. 使用清单并获得结果。
3. 分享您的第一个项目(在评论中)。
您想要上述电子表格的PDF和电子表格版本吗?
您想要上述电子表格的 PDF 和电子表格版本吗?
[现在下载](https://machinelearningmastery.leadpages.co/leadbox/146701e73f72a2%3A164f8be4f346dc/5676830073815040/) 并获得独家电子邮件提示和技巧。
\ No newline at end of file
......@@ -2,7 +2,7 @@
> 原文: [https://machinelearningmastery.com/machine-learning-model-running/](https://machinelearningmastery.com/machine-learning-model-running/)
最近有一个问题是“[如何在ml脚本运行时不浪费时间/拖延?](http://www.reddit.com/r/MachineLearning/comments/2uznyb/how_to_not_wastetimeprocrastinate_while_ml/) “。
最近有一个问题是“[如何在 ml 脚本运行时不浪费时间/拖延?](http://www.reddit.com/r/MachineLearning/comments/2uznyb/how_to_not_wastetimeprocrastinate_while_ml/) “。
我认为这是一个重要的问题。我认为这个问题的答案显示了你的工作方法的组织或成熟程度。
......@@ -59,7 +59,7 @@
要在停机时间运行实验,意味着您需要安排它们。如果您能够批量实验,这将变得更加容易。
你可以花时间在一批中设计5-10个实验,准备模型运行并在你的关闭时间顺序或并行地运行实验。
你可以花时间在一批中设计 5-10 个实验,准备模型运行并在你的关闭时间顺序或并行地运行实验。
这可能需要纪律来解决问题和实验所服务的答案。这样做的好处将是您获得的有关问题的深度知识以及获得问题的速度。
......@@ -67,7 +67,7 @@
有些实验可能需要数天或数周,这意味着在工作站上运行它们实际上是不可行的。
对于长时间运行的实验,您可以利用云中的计算服务器(如EC2和朋友)或本地计算服务器。无论是哪种语言环境,都不能实时使用计算服务器。您提出问题并收到答案。
对于长时间运行的实验,您可以利用云中的计算服务器(如 EC2 和朋友)或本地计算服务器。无论是哪种语言环境,都不能实时使用计算服务器。您提出问题并收到答案。
计算服务器的最有效使用是拥有一个问题队列和一个过程,用于消费并将答案集成到您不断增长的问题知识库中。
......
......@@ -2,7 +2,7 @@
> 原文: [https://machinelearningmastery.com/machine-learning-performance-improvement-cheat-sheet/](https://machinelearningmastery.com/machine-learning-performance-improvement-cheat-sheet/)
**32个可以用来做出更好预测的技巧,窍门和黑客。**
**32 个可以用来做出更好预测的技巧,窍门和黑客。**
机器学习中最有价值的部分是预测性建模。
......@@ -33,12 +33,12 @@
找到一个想法,然后回来找另一个想法。
我将列表分为4个子主题:
我将列表分为 4 个子主题:
1. 通过数据提高表现。
2. 使用算法提高表现。
3. 通过算法调优提高表现。
4. 使用Ensembles提高表现。
4. 使用 Ensembles 提高表现。
从列表中进一步增加,收益通常会变小。
......@@ -52,16 +52,16 @@
### 数据策略
* **获取更多数据**。 _您可以获得更多或更好的质量数据吗?_ 现代非线性机器学习技术,如深度学习,可以通过更多数据继续提高表现。
* **发明更多数据**。 _如果您无法获得更多数据,是否可以生成新数据?_ 也许您可以扩充或置换现有数据或使用概率模型生成新数据。
* **清理您的数据**。 _你能改善数据中的信号吗?_ 可能存在可以修复或删除的缺失或损坏的观察结果,或者可以修复或删除的合理范围之外的异常值,以提高数据质量。
* **重采样数据**。 _您可以重采样数据以更改大小或分布吗?_ 也许您可以在实验中使用更小的数据样本来加速或过度采样或对特定类型的欠采样观察,以便更好地在数据集中表示它们。
* **重构你的问题**:_你能改变你正在解决的预测问题的类型吗?_ 将您的数据重新构建为回归,二元或多分类,时间序列,异常检测,评级,推荐等类型问题。
* **重缩放数据**。 _你能重缩放数字输入变量吗?_ 输入数据的标准化和标准化可以提高使用加权输入或距离测量的算法的表现。
* **转换您的数据**。 _您能重塑数据分发吗?_ 使输入数据更高斯或通过指数函数传递可以更好地将数据中的特征暴露给学习算法。
* **投射您的数据**:_您可以将数据投影到较低维度的空间吗?_ 您可以使用无监督聚类或投影方法来创建数据集的全新压缩表示。
* **特征选择**。 _所有输入变量都同等重要吗?_ 使用特征选择和特征重要性方法创建数据的新视图,以便使用建模算法进行探索。
* **特色工程**。 _您可以创建和添加新的数据功能吗?_ 也许有些属性可以分解为多个新值(如类别,日期或字符串)或可以聚合以表示事件的属性(如计数,二进制标记或统计摘要)。
* **获取更多数据**。 _ 您可以获得更多或更好的质量数据吗?_ 现代非线性机器学习技术,如深度学习,可以通过更多数据继续提高表现。
* **发明更多数据**。 _ 如果您无法获得更多数据,是否可以生成新数据?_ 也许您可以扩充或置换现有数据或使用概率模型生成新数据。
* **清理您的数据**。 _ 你能改善数据中的信号吗?_ 可能存在可以修复或删除的缺失或损坏的观察结果,或者可以修复或删除的合理范围之外的异常值,以提高数据质量。
* **重采样数据**。 _ 您可以重采样数据以更改大小或分布吗?_ 也许您可以在实验中使用更小的数据样本来加速或过度采样或对特定类型的欠采样观察,以便更好地在数据集中表示它们。
* **重构你的问题**:_ 你能改变你正在解决的预测问题的类型吗?_ 将您的数据重新构建为回归,二元或多分类,时间序列,异常检测,评级,推荐等类型问题。
* **重缩放数据**。 _ 你能重缩放数字输入变量吗?_ 输入数据的标准化和标准化可以提高使用加权输入或距离测量的算法的表现。
* **转换您的数据**。 _ 您能重塑数据分发吗?_ 使输入数据更高斯或通过指数函数传递可以更好地将数据中的特征暴露给学习算法。
* **投射您的数据**:_ 您可以将数据投影到较低维度的空间吗?_ 您可以使用无监督聚类或投影方法来创建数据集的全新压缩表示。
* **特征选择**。 _ 所有输入变量都同等重要吗?_ 使用特征选择和特征重要性方法创建数据的新视图,以便使用建模算法进行探索。
* **特色工程**。 _ 您可以创建和添加新的数据功能吗?_ 也许有些属性可以分解为多个新值(如类别,日期或字符串)或可以聚合以表示事件的属性(如计数,二进制标记或统计摘要)。
**结果**:您现在应该拥有一套新的数据集视图和版本。
......@@ -75,13 +75,13 @@
### 算法策略
* **重采样方法**。 _使用什么重采样方法来估算新数据的技巧?_ 使用可充分利用可用数据的方法和配置。具有保持验证数据集的k折交叉验证方法可能是最佳实践。
* **评估指标**。 _用什么指标来评估预测技巧?_ 使用最能捕获问题和域要求的指标。它可能不是分类准确率。
* **基线表现**。 _比较算法的基准表现是什么?_ 使用随机算法或零规则算法(预测均值或模式)来建立基线,通过该基线对所有评估的算法进行排名。
* **抽查线性算法**。 _什么线性算法运作良好?_ 线性方法通常更偏向,易于理解并且训练速度快。如果你能取得好成绩,他们是首选。评估各种线性方法。
* **抽查非线性算法**。 _哪些非线性算法效果很好?_ 非线性算法通常需要更多数据,具有更高的复杂性,但可以实现更好的表现。评估各种非线性方法。
* **从文献中窃取**。 _文献中报道了哪些算法可以很好地解决您的问题?_ 也许您可以获得算法类型的想法或经典方法的扩展来探索您的问题。
* **标准配置**。 _被评估算法的标准配置是什么?_ 每个算法都需要有机会在您的问题上做得很好。这并不意味着调整参数(但是)确实意味着要研究如何很好地配置每个算法并在算法烘烤中给它一个战斗机会。
* **重采样方法**。 _ 使用什么重采样方法来估算新数据的技巧?_ 使用可充分利用可用数据的方法和配置。具有保持验证数据集的 k 折交叉验证方法可能是最佳实践。
* **评估指标**。 _ 用什么指标来评估预测技巧?_ 使用最能捕获问题和域要求的指标。它可能不是分类准确率。
* **基线表现**。 _ 比较算法的基准表现是什么?_ 使用随机算法或零规则算法(预测均值或模式)来建立基线,通过该基线对所有评估的算法进行排名。
* **抽查线性算法**。 _ 什么线性算法运作良好?_ 线性方法通常更偏向,易于理解并且训练速度快。如果你能取得好成绩,他们是首选。评估各种线性方法。
* **抽查非线性算法**。 _ 哪些非线性算法效果很好?_ 非线性算法通常需要更多数据,具有更高的复杂性,但可以实现更好的表现。评估各种非线性方法。
* **从文献中窃取**。 _ 文献中报道了哪些算法可以很好地解决您的问题?_ 也许您可以获得算法类型的想法或经典方法的扩展来探索您的问题。
* **标准配置**。 _ 被评估算法的标准配置是什么?_ 每个算法都需要有机会在您的问题上做得很好。这并不意味着调整参数(但是)确实意味着要研究如何很好地配置每个算法并在算法烘烤中给它一个战斗机会。
**结果**:您现在应该有一个表现良好的算法和数据表示的简短列表。
......@@ -95,16 +95,16 @@
### 调整策略
* **诊断**。 _您对算法的诊断和评论是什么?_ 也许您可以查看学习曲线,以了解该方法是否过度或不合适,然后更正。不同的算法可以提供不同的可视化和诊断。查看算法预测的是非。
* **尝试直觉**。 _你的直觉告诉你什么?_ 如果您将参数调整得足够长并且反馈周期很短,您可以直观地了解如何针对问题配置算法。试试这个,看看你是否可以提出新的参数配置来尝试更大的测试工具。
* **从文献中窃取**。 _文献中使用了哪些参数或参数范围?_ 评估标准参数的表现是开始任何调整活动的好地方。
* **随机搜索**。 _哪些参数可以使用随机搜索?_ 也许您可以使用算法超参数的随机搜索来公开您从未想过要尝试的配置。
* **网格搜索**。 _什么参数可以使用网格搜索?_ 也许有标准超参数值的网格可以枚举以找到好的配置,然后用更精细和更精细的网格重复该过程。
* **优化**。 _您可以优化哪些参数?_ 也许有结构或学习率等参数可以使用直接搜索程序(如模式搜索)或随机优化(如遗传算法)进行调整。
* **替代实现**。 _该算法的其他实现是什么?_ 也许该方法的替代实现可以在相同数据上获得更好的结果。每种算法都有许多必须由算法实现者做出的微决策。其中一些决定可能会影响您的问题的技能。
* **算法扩展**。 _算法的常见扩展是什么?_ 也许您可以通过评估方法的常用或标准扩展来提升表现。这可能需要实现工作。
* **算法定制**。 _针对您的特定情况,可以对算法进行哪些自定义?_ 也许您可以对数据算法进行修改,从损失函数,内部优化方法到算法特定决策。
* **联系专家**。 _算法专家在您的案例中推荐什么?_ 写一封简短的电子邮件,总结您的预测问题以及您尝试过的一位或多位专家学者对该算法的看法。这可能会揭示以前不为您所知的前沿工作或学术工作的新想法或新想法。
* **诊断**。 _ 您对算法的诊断和评论是什么?_ 也许您可以查看学习曲线,以了解该方法是否过度或不合适,然后更正。不同的算法可以提供不同的可视化和诊断。查看算法预测的是非。
* **尝试直觉**。 _ 你的直觉告诉你什么?_ 如果您将参数调整得足够长并且反馈周期很短,您可以直观地了解如何针对问题配置算法。试试这个,看看你是否可以提出新的参数配置来尝试更大的测试工具。
* **从文献中窃取**。 _ 文献中使用了哪些参数或参数范围?_ 评估标准参数的表现是开始任何调整活动的好地方。
* **随机搜索**。 _ 哪些参数可以使用随机搜索?_ 也许您可以使用算法超参数的随机搜索来公开您从未想过要尝试的配置。
* **网格搜索**。 _ 什么参数可以使用网格搜索?_ 也许有标准超参数值的网格可以枚举以找到好的配置,然后用更精细和更精细的网格重复该过程。
* **优化**。 _ 您可以优化哪些参数?_ 也许有结构或学习率等参数可以使用直接搜索程序(如模式搜索)或随机优化(如遗传算法)进行调整。
* **替代实现**。 _ 该算法的其他实现是什么?_ 也许该方法的替代实现可以在相同数据上获得更好的结果。每种算法都有许多必须由算法实现者做出的微决策。其中一些决定可能会影响您的问题的技能。
* **算法扩展**。 _ 算法的常见扩展是什么?_ 也许您可以通过评估方法的常用或标准扩展来提升表现。这可能需要实现工作。
* **算法定制**。 _ 针对您的特定情况,可以对算法进行哪些自定义?_ 也许您可以对数据算法进行修改,从损失函数,内部优化方法到算法特定决策。
* **联系专家**。 _ 算法专家在您的案例中推荐什么?_ 写一封简短的电子邮件,总结您的预测问题以及您尝试过的一位或多位专家学者对该算法的看法。这可能会揭示以前不为您所知的前沿工作或学术工作的新想法或新想法。
**结果**:您现在应该有一个关于机器学习问题的高度调整算法的简短列表,甚至可能只有一个。
......@@ -118,11 +118,11 @@
### 合奏策略
* **混合模型预测**。 _你能直接结合多个模型的预测吗?_ 也许您可以使用相同或不同的算法来制作多个模型。从多个表现良好的模型的预测中获取均值或模式。
* **混合数据表示**。 _您可以结合使用不同数据表示训练模型的预测吗?_ 您可能有许多不同的问题预测,可用于训练表现良好的算法,然后可以将其预测结合起来。
* **混合数据样本**。 _您可以结合使用不同数据视图训练的模型吗?_ 也许你可以创建训练数据的多个子样本并训练一个表现良好的算法,然后结合预测。这称为bootstrap聚合或装袋,当每个模型的预测都是熟练的但以不同的方式(不相关)时,效果最佳。
* **正确预测**。 _你能纠正表现良好的模特的预测吗?_ 也许您可以明确地纠正预测或使用像提升这样的方法来学习如何纠正预测错误。
* **学会结合**。 _您是否可以使用新模型来学习如何最好地结合多个表现良好的模型的预测?_ 这称为堆叠泛化或堆叠,并且当子模型熟练但以不同方式并且聚合器模型是预测的简单线性加权时,通常可以很好地工作。这个过程可以重复多层深度。
* **混合模型预测**。 _ 你能直接结合多个模型的预测吗?_ 也许您可以使用相同或不同的算法来制作多个模型。从多个表现良好的模型的预测中获取均值或模式。
* **混合数据表示**。 _ 您可以结合使用不同数据表示训练模型的预测吗?_ 您可能有许多不同的问题预测,可用于训练表现良好的算法,然后可以将其预测结合起来。
* **混合数据样本**。 _ 您可以结合使用不同数据视图训练的模型吗?_ 也许你可以创建训练数据的多个子样本并训练一个表现良好的算法,然后结合预测。这称为 bootstrap 聚合或装袋,当每个模型的预测都是熟练的但以不同的方式(不相关)时,效果最佳。
* **正确预测**。 _ 你能纠正表现良好的模特的预测吗?_ 也许您可以明确地纠正预测或使用像提升这样的方法来学习如何纠正预测错误。
* **学会结合**。 _ 您是否可以使用新模型来学习如何最好地结合多个表现良好的模型的预测?_ 这称为堆叠泛化或堆叠,并且当子模型熟练但以不同方式并且聚合器模型是预测的简单线性加权时,通常可以很好地工作。这个过程可以重复多层深度。
**结果**:您应该拥有一个或多个表现优异的模型,其表现优于任何单一模型。
......
......@@ -2,9 +2,9 @@
> 原文: [https://machinelearningmastery.com/machine-learning-tips-from-a-world-class-practitioner-phil-brierley/](https://machinelearningmastery.com/machine-learning-tips-from-a-world-class-practitioner-phil-brierley/)
Phil Brierley赢得了[遗产健康奖](http://www.heritagehealthprize.com/c/hhp) Kaggle机器学习竞赛。 Phil是一名机械工程师,并在他的公司 [Tiberius Data Mining](http://www.tiberius.biz/) 中拥有数据挖掘的背景。这些天他很重视R,并在[另一个数据挖掘博客](http://anotherdataminingblog.blogspot.com.au/)上留下了博客。
Phil Brierley 赢得了[遗产健康奖](http://www.heritagehealthprize.com/c/hhp) Kaggle 机器学习竞赛。 Phil 是一名机械工程师,并在他的公司 [Tiberius Data Mining](http://www.tiberius.biz/) 中拥有数据挖掘的背景。这些天他很重视 R,并在[另一个数据挖掘博客](http://anotherdataminingblog.blogspot.com.au/)上留下了博客。
2013年10月,他向RG特殊利益集团的[墨尔本用户展示了他们。他的演讲题目是“](http://www.meetup.com/MelbURN-Melbourne-Users-of-R-Network/)[提高预测模型](http://www.youtube.com/watch?v=1fIyQL9FiAk)准确率的技术”,您可以在下面观看:
2013 年 10 月,他向 RG 特殊利益集团的[墨尔本用户展示了他们。他的演讲题目是“](http://www.meetup.com/MelbURN-Melbourne-Users-of-R-Network/)[提高预测模型](http://www.youtube.com/watch?v=1fIyQL9FiAk)准确率的技术”,您可以在下面观看:
<iframe allowfullscreen="" frameborder="0" height="281" src="http://www.youtube.com/embed/1fIyQL9FiAk?feature=oembed" width="500"></iframe>
......@@ -14,18 +14,18 @@ Phil Brierley赢得了[遗产健康奖](http://www.heritagehealthprize.com/c/hhp
菲尔打开演讲时发表评论说“[布丁的证据在吃](http://en.wiktionary.org/wiki/the_proof_of_the_pudding_is_in_the_eating)” - 你只能在尝试之后表明某些事情是成功的。菲尔对这个伟大的理论并不感兴趣,他希望证明一个模型通过查看它的结果而起作用。
他评论说,大多数问题涉及与人类有关的数据,而不是自然法则,这可能使问题变得复杂。他还评论说,他对发明新算法不感兴趣,而是从可用的算法中获得最佳效果。 R有很多算法,这就是他使用它的原因。
他评论说,大多数问题涉及与人类有关的数据,而不是自然法则,这可能使问题变得复杂。他还评论说,他对发明新算法不感兴趣,而是从可用的算法中获得最佳效果。 R 有很多算法,这就是他使用它的原因。
## 合奏
菲尔是合奏的巨大支持者。他在他的Heratage健康奖中使用了他们,他用一个简单的足球小费示例展示了他们的力量,甚至使用众包来猜测房间里人的体重作为一个例子。
菲尔是合奏的巨大支持者。他在他的 Heratage 健康奖中使用了他们,他用一个简单的足球小费示例展示了他们的力量,甚至使用众包来猜测房间里人的体重作为一个例子。
菲尔评论:不要建立一个伟大的模型,要求10个人创建每个模型并平均它们。
菲尔评论:不要建立一个伟大的模型,要求 10 个人创建每个模型并平均它们。
菲尔评论说不应该完全抛弃坏模式,但你应该寻找的是模型结果的多样性,你可以重新组合成一个改进的解决方案。通过寻找预测之间缺乏相关性来评估预测的多样性,预测应该最大化。
## 可视化
Phil评论说可视化是一个重要且未充分利用的工具。他强调了眼球分布属性的实用性,以了解它们是多么明智,并突出数据的问题。他评论说,视觉检查可以帮助您了解统计摘要所不具备的数据中的陌生感。
Phil 评论说可视化是一个重要且未充分利用的工具。他强调了眼球分布属性的实用性,以了解它们是多么明智,并突出数据的问题。他评论说,视觉检查可以帮助您了解统计摘要所不具备的数据中的陌生感。
这是一个很好的谈话,我强烈建议观看它。另请注意Heratage Health Prize中多年来对数据校准的深刻见解。
\ No newline at end of file
这是一个很好的谈话,我强烈建议观看它。另请注意 Heratage Health Prize 中多年来对数据校准的深刻见解。
\ No newline at end of file
......@@ -2,7 +2,7 @@
> 原文: [https://machinelearningmastery.com/model-prediction-versus-interpretation-in-machine-learning/](https://machinelearningmastery.com/model-prediction-versus-interpretation-in-machine-learning/)
在他们的书 [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) 中,Kuhn和Johnson早期就模型预测准确率与模型解释的权衡进行了评论。
在他们的书 [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) 中,Kuhn 和 Johnson 早期就模型预测准确率与模型解释的权衡进行了评论。
对于给定的问题,清楚地了解哪个是优先级,准确率或可解释性是至关重要的,以便可以明确而不是隐式地进行这种权衡。
......@@ -27,7 +27,7 @@
精度的优化导致以附加模型参数(以及调整那些参数所需的资源)的形式进一步增加模型的复杂性。
> “_不幸的是,最强大的预测模型通常是最不易解释的。_ “
> “_ 不幸的是,最强大的预测模型通常是最不易解释的。_ “
具有较少参数的模型更易于解释。这很直观。线性回归模型具有每个输入特征的系数和截距项。例如,您可以查看每个术语并了解它们对输出的贡献。转向逻辑回归在底层关系方面提供了更多的权力,这些关系可以以功能转换为输出为代价进行建模,现在也必须与系数一起理解。
......@@ -39,7 +39,7 @@
他们评论说:
> “_只要复杂模型得到适当验证,使用为解释而不是预测表现而构建的模型可能是不合适的。_ “
> “_ 只要复杂模型得到适当验证,使用为解释而不是预测表现而构建的模型可能是不合适的。_ “
解释是模型准确率的次要因素,它们的例子包括将电子邮件区分为垃圾邮件和非垃圾邮件,以及评估房屋作为问题的例子。医学实例被触及两次,并且在两种情况下都用于捍卫绝对需要和对可解释性准确率的需求,只要模型得到适当的验证。
......
......@@ -35,25 +35,25 @@
他评论说,单个验证数据集将对模型对未见数据的准确率给出不可靠的估计。一个小的验证数据集就是公共排行榜。
他建议在选择模型时始终使用交叉验证(CV)并遵循自己的CV估计精度,即使它可以是乐观的。
他建议在选择模型时始终使用交叉验证(CV)并遵循自己的 CV 估计精度,即使它可以是乐观的。
### 2.不要相信公共排行榜
公共排行榜非常令人分心。它向所有参与者展示了与其他人相比你有多好。除此之外,它充满了谎言。它不是对模型准确率的有意义的估计,实际上通常是对模型准确率的可怕估计。
Log0评论公共排行榜得分不稳定,特别是与您自己的离线CV测试工具相比时。他评论说,如果您的简历看起来不稳定,您可以增加折叠数量,如果运行缓慢,您可以对数据样本进行操作。
Log0 评论公共排行榜得分不稳定,特别是与您自己的离线 CV 测试工具相比时。他评论说,如果您的简历看起来不稳定,您可以增加折叠数量,如果运行缓慢,您可以对数据样本进行操作。
这些是不使用交叉验证的常见异议的好方法。
### 3.选择不同的型号
多样化。 Log0建议如果您能够选择两个或更多模型,那么您应该利用这个机会选择不同的模型子集。
多样化。 Log0 建议如果您能够选择两个或更多模型,那么您应该利用这个机会选择不同的模型子集。
他建议您按类型或方法对模型进行分组,并从每个组中选择最佳模型。从这个简短的列表中,您可以选择最终的型号。
他建议选择类似的模型意味着如果策略很差,那么模型会一起失败,让你失去一点。一个反驳的观点是,多样性是一种在您无法做出明确决定时使用的策略,而且倍增可以带来最大的回报。您需要仔细考虑您对模型的信任。
Log0还提醒选择健壮的模型,即它们本身不太可能过拟合,例如大(多参数)模型。
Log0 还提醒选择健壮的模型,即它们本身不太可能过拟合,例如大(多参数)模型。
## 坚固的测试线束的扩展
......@@ -63,13 +63,13 @@ Log0还提醒选择健壮的模型,即它们本身不太可能过拟合,例
### 研究交叉验证线束的稳定性
您可以采用标准的稳健算法并评估交叉验证配置中折叠数的稳定性。每次交叉验证(CV)折叠执行30次重复,并重复CV折叠尺寸从1到10。绘制结果并考虑给定CV折叠数的扩散和CV折叠从1(您的基线)增加的准确度变化。
您可以采用标准的稳健算法并评估交叉验证配置中折叠数的稳定性。每次交叉验证(CV)折叠执行 30 次重复,并重复 CV 折叠尺寸从 1 到 10。绘制结果并考虑给定 CV 折叠数的扩散和 CV 折叠从 1(您的基线)增加的准确度变化。
您可以使用给定CV折叠数上限/下限作为准确度的粗略不确定性。您还可以使用CV fold = 1与您选择的CV折叠之间的准确度差异来纠正乐观偏差。
您可以使用给定 CV 折叠数上限/下限作为准确度的粗略不确定性。您还可以使用 CV fold = 1 与您选择的 CV 折叠之间的准确度差异来纠正乐观偏差。
### 研究数据样本的稳定性
采样时可以使用类似的技巧。采样理论是一个庞大而复杂的主题。我们可以执行如上所述的类似过程,并获取给定大小的n样本并估计准确度,然后尝试不同大小的样本。
采样时可以使用类似的技巧。采样理论是一个庞大而复杂的主题。我们可以执行如上所述的类似过程,并获取给定大小的 n 样本并估计准确度,然后尝试不同大小的样本。
将结果绘制为方框图或类似图可以让您了解采样大小的稳定性(以及采样方法,如果您正在对类进行分层或重新平衡 - 您可能应该尝试这样做)。
......@@ -77,7 +77,7 @@ Log0还提醒选择健壮的模型,即它们本身不太可能过拟合,例
过拟合潜伏在各地。
CV参数或采样方法的研究正在使用所有可用数据。您正在了解给定标准算法在数据集上的稳定性,但您也在使用比用于评估模型的给定折叠或样本更多的数据来选择配置。这可能导致过拟合。
CV 参数或采样方法的研究正在使用所有可用数据。您正在了解给定标准算法在数据集上的稳定性,但您也在使用比用于评估模型的给定折叠或样本更多的数据来选择配置。这可能导致过拟合。
然而,这可能是有用的和有价值的,你需要平衡过拟合的真正问题,提高你对问题的理解。
......
......@@ -8,7 +8,7 @@
我被问到的一个常见问题是:
**_我需要多少数据?_**
**_ 我需要多少数据?_**
我不能直接为你或任何人回答这个问题。但我可以给你一些思考这个问题的方法。
......@@ -43,16 +43,16 @@
* 需要多少样品才能达到理想的表现水平?
* 训练集必须有多大才能获得对模型表现的充分估计?
* 需要多少数据来证明一个模型比另一个更好?
* 我应该使用训练/测试拆分或k折交叉验证吗?
* 我应该使用训练/测试拆分或 k 折交叉验证吗?
这篇文章中的建议可能试图解决这些后面的问题。
在实践中,我自己使用学习曲线(见下文)回答这个问题,在小数据集上使用重采样方法(例如k折交叉验证和自举),并在最终结果中添加置信区间。
在实践中,我自己使用学习曲线(见下文)回答这个问题,在小数据集上使用重采样方法(例如 k 折交叉验证和自举),并在最终结果中添加置信区间。
您询问机器学习所需样品数量的原因是什么?
请在评论中告诉我。
_那么,您需要多少数据?_
_ 那么,您需要多少数据?_
## 它取决于;没有人能告诉你
......@@ -67,7 +67,7 @@ _那么,您需要多少数据?_
这是我们的出发点。
并且“_取决于_”是大多数从业者在您第一次提出时会给您的答案。
并且“_ 取决于 _”是大多数从业者在您第一次提出时会给您的答案。
## 比喻的理由
......@@ -81,7 +81,7 @@ _那么,您需要多少数据?_
也许你可以平均多次研究。
在Google, [Google Scholar](https://scholar.google.com)[Arxiv](https://arxiv.org/) 上搜索论文。
Google, [Google Scholar](https://scholar.google.com)[Arxiv](https://arxiv.org/) 上搜索论文。
## 3.使用域专业知识
......@@ -103,27 +103,27 @@ _那么,您需要多少数据?_
以下是您可以考虑的一些示例:
* **类别的因子**:每个类必须有x个独立的例子,其中x可以是数十,数百或数千(例如5,50,500,5000)。
* **输入特征数量的因子**:必须有比输入特征多x%的例子,其中x可以是十(例如10)。
* **模型参数数量的因子**:模型中每个参数必须有x个独立的例子,其中x可以是数十(例如10)。
* **类别的因子**:每个类必须有 x 个独立的例子,其中 x 可以是数十,数百或数千(例如 5,50,500,5000)。
* **输入特征数量的因子**:必须有比输入特征多 x%的例子,其中 x 可以是十(例如 10)。
* **模型参数数量的因子**:模型中每个参数必须有 x 个独立的例子,其中 x 可以是数十(例如 10)。
它们看起来都像是特殊的缩放因子给我。
你使用过这些启发式算法吗?
怎么回事?请在评论中告诉我。
在关于这个主题的理论工作(不是我的专业领域!)中,分类器(例如k-最近邻居)经常与最优贝叶斯决策规则形成对比,并且难度在维数灾难的背景下表征;也就是说随着输入特征数量的增加,问题的难度呈指数增长。
在关于这个主题的理论工作(不是我的专业领域!)中,分类器(例如 k-最近邻居)经常与最优贝叶斯决策规则形成对比,并且难度在维数灾难的背景下表征;也就是说随着输入特征数量的增加,问题的难度呈指数增长。
例如:
* [统计模式识别中的小样本量效应:对从业者的建议](http://sci2s.ugr.es/keel/pdf/specific/articulo/raudys91.pdf),1991
* [模式识别实践中的维度和样本量考虑](http://www.sciencedirect.com/science/article/pii/S0169716182020422),1982
结果建议避免使用局部方法(如k-最近邻居)来处理来自高维问题的稀疏样本(例如,少量样本和许多输入特征)。
结果建议避免使用局部方法(如 k-最近邻居)来处理来自高维问题的稀疏样本(例如,少量样本和许多输入特征)。
有关该主题的更友善的讨论,请参阅:
*2.5节高维局部方法,[统计学习的要素:数据挖掘,推理和预测](http://www.amazon.com/dp/0387848576?tag=inspiredalgor-20),2008。
* 2.5 节高维局部方法,[统计学习的要素:数据挖掘,推理和预测](http://www.amazon.com/dp/0387848576?tag=inspiredalgor-20),2008。
## 5.非线性算法需要更多数据
......@@ -147,7 +147,7 @@ _那么,您需要多少数据?_
设计一项评估模型技能与训练数据集大小的研究。
将结果绘制为具有x轴上的训练数据集大小和y轴上的模型技能的线图,将使您了解数据大小如何影响模型对特定问题的技能。
将结果绘制为具有 x 轴上的训练数据集大小和 y 轴上的模型技能的线图,将使您了解数据大小如何影响模型对特定问题的技能。
该图称为[学习曲线](https://en.wikipedia.org/wiki/Learning_curve)
......@@ -163,7 +163,7 @@ _那么,您需要多少数据?_
我经常回答轻率响应需要多少数据的问题:
_获取并使用尽可能多的数据。_
_ 获取并使用尽可能多的数据。_
如果按下问题,并且对问题的具体细节一无所知,我会说一些朴素的事情:
......@@ -180,7 +180,7 @@ _获取并使用尽可能多的数据。_
有些问题需要大数据,所有数据都有。例如,简单的统计机器翻译:
* [数据的不合理有效性](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35179.pdf)(和 [Peter Norvig的谈话](https://www.youtube.com/watch?v=yvDCzhbjYWs)
* [数据的不合理有效性](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35179.pdf)(和 [Peter Norvig 的谈话](https://www.youtube.com/watch?v=yvDCzhbjYWs)
如果您正在执行传统的预测性建模,那么训练集大小的回报可能会有所减少,您应该研究您的问题和您选择的模型以查看该点的位置。
......@@ -202,7 +202,7 @@ _获取并使用尽可能多的数据。_
如果您要深入了解,本节将提供有关该主题的更多资源。
Quora,StackOverflow和CrossValidated等Q& A网站上围绕这个问题进行了大量讨论。以下是一些可能有用的选择示例。
Quora,StackOverflow 和 CrossValidated 等 Q& A 网站上围绕这个问题进行了大量讨论。以下是一些可能有用的选择示例。
* [需要多大的训练集?](https://stats.stackexchange.com/questions/51490/how-large-a-training-set-is-needed)
* [考虑维数诅咒的神经网络训练集大小](https://stats.stackexchange.com/questions/161982/training-set-size-for-neural-networks-considering-curse-of-dimensionality)
......@@ -223,7 +223,7 @@ _获取并使用尽可能多的数据。_
* [您需要多少训练数据?](https://medium.com/@malay.haldar/how-much-training-data-do-you-need-da8ec091e956)
* [我们需要更多的训练数据吗?](http://web.mit.edu/vondrick/bigdata.pdf)
* [数据的不合理效力](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35179.pdf),(和 [Peter Norvig的谈话](https://www.youtube.com/watch?v=yvDCzhbjYWs)
* [数据的不合理效力](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35179.pdf),(和 [Peter Norvig 的谈话](https://www.youtube.com/watch?v=yvDCzhbjYWs)
如果您了解更多信息,请在下面的评论中告诉我们。
......@@ -231,11 +231,11 @@ _获取并使用尽可能多的数据。_
在这篇文章中,您发现了一套思考和推理回答常见问题的方法:
**_机器学习需要多少训练数据?_**
**_ 机器学习需要多少训练数据?_**
这些方法有帮助吗?
请在下面的评论中告诉我。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
当然,除了_你_特别需要多少数据的问题。
\ No newline at end of file
当然,除了 _ 你 _ 特别需要多少数据的问题。
\ No newline at end of file
......@@ -67,7 +67,7 @@
这很简单,我或任何人都可以从任何地方访问它,看看我们在哪里。
我使用Google文档来托管电子表格。
我使用 Google 文档来托管电子表格。
没有代码。没有笔记本。没有华丽的网络应用程序。
......@@ -102,7 +102,7 @@
* **问题**:问题是该实验试图解决的激励性问题。
* **发现**:该发现是实验结果的一行摘要,即问题的答案。
为了具体说明,下面是Google Doc电子表格的屏幕截图,其中包含这些列标题和一个人为的例子。
为了具体说明,下面是 Google Doc 电子表格的屏幕截图,其中包含这些列标题和一个人为的例子。
![Systematic Experimental Record](img/97e8556631ea6b278660bb9c6aa6feaf.jpg)
......@@ -125,9 +125,9 @@
你会知道这种方法在以下情况下运作良好:
* 您正在搜索API文档和论文,以获取更多有关事物的想法。
* 您正在搜索 API 文档和论文,以获取更多有关事物的想法。
* 排队的实验远远多于运行它们的资源。
* 你正在认真考虑雇用更多的EC2实例。
* 你正在认真考虑雇用更多的 EC2 实例。
## 摘要
......
......@@ -4,8 +4,8 @@
##
_
_提供高于平均结果的_
_预测模型问题的系统过程__
_ 提供高于平均结果的 _
_ 预测模型问题的系统过程 __
随着时间的推移,在应用机器学习问题时,您需要开发一种模式或流程,以便快速获得良好的稳健结果。
......@@ -15,9 +15,9 @@ _预测模型问题的系统过程__
您可以将其用作下一个项目的起点或模板。
## 5步系统过程
## 5 步系统过程
我喜欢使用5个步骤:
我喜欢使用 5 个步骤:
1. 定义问题
2. 准备数据
......@@ -34,15 +34,15 @@ _预测模型问题的系统过程__
生产线
摄影: [East Capital](http://www.flickr.com/photos/eastcapital/4554220770/sizes/o/) ,部分版权所有
我使用的过程是从数据库(或KDD)中的知识发现的标准数据挖掘过程改编而来的,有关详细信息,请参阅文章[什么是数据挖掘和KDD](http://machinelearningmastery.com/what-is-data-mining-and-kdd/ "What is Data Mining and KDD")
我使用的过程是从数据库(或 KDD)中的知识发现的标准数据挖掘过程改编而来的,有关详细信息,请参阅文章[什么是数据挖掘和 KDD](http://machinelearningmastery.com/what-is-data-mining-and-kdd/ "What is Data Mining and KDD")
## 1.定义问题
我喜欢使用三步过程来定义问题。我喜欢快速行动,我使用这个迷你流程从几个不同的角度很快看到问题:
* **第1步:有什么问题?** 非正式地和正式地描述问题并列出假设和类似问题。
* **第2步:为什么问题需要解决?** 列出解决问题的动机,解决方案提供的好处以及解决方案的使用方法。
* **第3步:我该如何解决这个问题?** 描述如何手动解决问题以刷新领域知识。
* **第 1 步:有什么问题?** 非正式地和正式地描述问题并列出假设和类似问题。
* **第 2 步:为什么问题需要解决?** 列出解决问题的动机,解决方案提供的好处以及解决方案的使用方法。
* **第 3 步:我该如何解决这个问题?** 描述如何手动解决问题以刷新领域知识。
您可以在帖子中了解有关此过程的更多信息:
......@@ -54,9 +54,9 @@ _预测模型问题的系统过程__
实际的数据准备过程分为以下三个步骤:
* **步骤1:数据选择**:考虑可用的数据,缺少的数据以及可以删除的数据。
* **步骤2:数据预处理**:通过格式化,清理和采样来组织您选择的数据。
* **步骤3:数据转换**:通过使用缩放,属性分解和属性聚合的工程特征,转换为机器学习做好准备的预处理数据。
* **步骤 1:数据选择**:考虑可用的数据,缺少的数据以及可以删除的数据。
* **步骤 2:数据预处理**:通过格式化,清理和采样来组织您选择的数据。
* **步骤 3:数据转换**:通过使用缩放,属性分解和属性聚合的工程特征,转换为机器学习做好准备的预处理数据。
您可以在帖子中了解有关准备数据的此过程的更多信息:
......@@ -64,9 +64,9 @@ _预测模型问题的系统过程__
## 3.抽查算法
我默认在测试工具中使用10倍交叉验证。所有实验(算法和数据集组合)重复10次,并收集和报告准确度的均值和标准偏差。我还使用统计显着性检验从噪声中清除有意义的结果。箱形图对于总结每个算法和数据集对的准确度结果的分布非常有用。
我默认在测试工具中使用 10 倍交叉验证。所有实验(算法和数据集组合)重复 10 次,并收集和报告准确度的均值和标准偏差。我还使用统计显着性检验从噪声中清除有意义的结果。箱形图对于总结每个算法和数据集对的准确度结果的分布非常有用。
我发现了检查算法,这意味着将一堆标准机器学习算法加载到我的测试工具中并执行正式实验。我通常在我准备好的数据集的所有转换和缩放版本中运行来自所有[主要算法系列](http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/ "A Tour of Machine Learning Algorithms")10-20个标准算法。
我发现了检查算法,这意味着将一堆标准机器学习算法加载到我的测试工具中并执行正式实验。我通常在我准备好的数据集的所有转换和缩放版本中运行来自所有[主要算法系列](http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/ "A Tour of Machine Learning Algorithms") 10-20 个标准算法。
采样检查的目标是清除擅长挑选问题结构的算法类型和数据集组合,以便通过重点实验更详细地研究它们。
......@@ -117,7 +117,7 @@ _预测模型问题的系统过程__
在这篇文章中,您已经学习了我处理机器学习问题的通用模板。
我使用这个过程几乎没有失败,我使用它跨越平台,从 [Weka](http://machinelearningmastery.com/what-is-the-weka-machine-learning-workbench/ "What is the Weka Machine Learning Workbench") ,R和scikit-learn甚至新平台我一直在玩像pylearn2。
我使用这个过程几乎没有失败,我使用它跨越平台,从 [Weka](http://machinelearningmastery.com/what-is-the-weka-machine-learning-workbench/ "What is the Weka Machine Learning Workbench") ,R 和 scikit-learn 甚至新平台我一直在玩像 pylearn2。
您的流程是什么,发表评论并分享?
......
......@@ -25,40 +25,40 @@
### 可重复计算研究的十个简单规则
这是2013年由Geir Kjetil Sandve,Anton Nekrutenko,James Taylor和Eivind Hovig撰写的PLoS计算生物学文章。在论文中,作者列出了简单的10条规则,如果遵循这些规则,预计将导致更容易获得(可重复的!?)计算研究。规则总结如下。
* **规则1** :对于每个结果,跟踪它是如何产生的
* **规则2** :避免手动数据操作步骤
* **规则3** :归档所有使用的外部程序的精确版本
* **规则4** :版本控制所有自定义脚本
* **规则5** :在标准化格式中记录所有中间结果
* **规则6** :对于包含随机性的分析,请注意基础随机种子
* **规则7** :始终将原始数据存储在地块之后
* **规则8** :生成分层分析输出,允许检查增加细节的层
* **规则9** :将文本陈述连接到基础结果
* **规则10** :提供对脚本,运行和结果的公共访问
这是 2013 年由 Geir Kjetil Sandve,Anton Nekrutenko,James Taylor 和 Eivind Hovig 撰写的 PLoS 计算生物学文章。在论文中,作者列出了简单的 10 条规则,如果遵循这些规则,预计将导致更容易获得(可重复的!?)计算研究。规则总结如下。
* **规则 1** :对于每个结果,跟踪它是如何产生的
* **规则 2** :避免手动数据操作步骤
* **规则 3** :归档所有使用的外部程序的精确版本
* **规则 4** :版本控制所有自定义脚本
* **规则 5** :在标准化格式中记录所有中间结果
* **规则 6** :对于包含随机性的分析,请注意基础随机种子
* **规则 7** :始终将原始数据存储在地块之后
* **规则 8** :生成分层分析输出,允许检查增加细节的层
* **规则 9** :将文本陈述连接到基础结果
* **规则 10** :提供对脚本,运行和结果的公共访问
作者正在评论计算生物学领域。不过,我认为规则还远远不够。我发现它们具有描述性,而且我会更具说明性。
例如,通过规则2“避免手动数据操作步骤”,我认为所有数据操作都是自动化的。对于规则4“版本控制所有自定义脚本”,我认为创建工作产品的整个自动化过程都在版本控制中。
例如,通过规则 2“避免手动数据操作步骤”,我认为所有数据操作都是自动化的。对于规则 4“版本控制所有自定义脚本”,我认为创建工作产品的整个自动化过程都在版本控制中。
如果您是熟悉专业流程的开发人员,那么您应该充分考虑依赖关系管理,构建系统,可以执行嵌入式代码的文档的标记系统以及持续集成工具如何真正带来一些严谨性。
### 可访问的可重复研究
Jill Mesirov在2010年发表在“科学”杂志上的一篇文章。在这篇简短的文章中,作者介绍了一系列促进科学家可重复计算研究的系统术语,特别是:
Jill Mesirov 在 2010 年发表在“科学”杂志上的一篇文章。在这篇简短的文章中,作者介绍了一系列促进科学家可重复计算研究的系统术语,特别是:
* 可重复研究系统(RRS):由可重复的研究环境和可重复的研究出版商组成。
* 可重复研究环境(RRE):计算工具,数据管理,分析和结果以及将它们打包在一起以进行再分配的能力。
* 可重复研究出版社(RRP):文件准备系统,链接到可重复研究环境,并提供嵌入分析和结果的能力。
描述了一种原型系统,该系统是为基因表达分析实验开发的,称为GenePattern-Word RRS。
描述了一种原型系统,该系统是为基因表达分析实验开发的,称为 GenePattern-Word RRS。
再次,通过软件开发和可用工具的眼睛,RRE听起来像修订控制加上具有依赖关系管理和持续集成服务器的构建系统。 RRP听起来像一个带有链接和构建过程的标记系统。
再次,通过软件开发和可用工具的眼睛,RRE 听起来像修订控制加上具有依赖关系管理和持续集成服务器的构建系统。 RRP 听起来像一个带有链接和构建过程的标记系统。
### 邀请可重复的计算研究
这是David Donoho在2010年生物统计学中撰写的一篇论文。这篇论文很精彩,我非常同意它的观点。例如:
这是 David Donoho 在 2010 年生物统计学中撰写的一篇论文。这篇论文很精彩,我非常同意它的观点。例如:
> “计算重现性不是事后的想法 - 它必须从一开始就被设计到一个项目中。”
......@@ -78,11 +78,11 @@ Jill Mesirov在2010年发表在“科学”杂志上的一篇文章。在这篇
### 使科学计算可重复
发表于“科学与计算”杂志工程,2000年由Matthias Schwab,Martin Karrenbach和Jon Claerbout撰写。本文的开头句很棒:
发表于“科学与计算”杂志工程,2000 年由 Matthias Schwab,Martin Karrenbach 和 Jon Claerbout 撰写。本文的开头句很棒:
> “通常涉及科学计算的研究在原则上是可重复的,但在实践中却不是。已发表的文件仅仅是奖学金的广告,而计算机程序,输入数据,参数值等则体现了奖学金本身。因此,作者通常在几个月或几年后无法复制自己的作品。“
本文通过采用GNU make,标准项目结构以及在Web上分发实验项目文件来描述计算实验的标准化。这些实践在斯坦福勘探项目(SEP)中标准化。
本文通过采用 GNU make,标准项目结构以及在 Web 上分发实验项目文件来描述计算实验的标准化。这些实践在斯坦福勘探项目(SEP)中标准化。
采用所解决的激励问题是,当研究生因为无法复制和建立实验而离开小组时,编程工作就会丢失。
......@@ -95,15 +95,15 @@ Jill Mesirov在2010年发表在“科学”杂志上的一篇文章。在这篇
我有一个用于机器学习项目的蓝图,并且随着我完成的每个项目的改进。我希望将来能分享它。关注此空间。在此之前,以下是重用软件工具的一些技巧,使重现性成为应用机器学习和机器学习项目的默认设置:
* 使用构建系统并使构建目标自动生成所有结果。如果它不是自动化的,它不是项目的一部分,即有想法进行图表或分析?自动化它的生成。
* 自动执行所有数据选择,预处理和转换。在进行机器学习竞赛时,我甚至将wget用于累积数据文件。我想在新工作站和快速服务器上从零开始运行。
* 自动执行所有数据选择,预处理和转换。在进行机器学习竞赛时,我甚至将 wget 用于累积数据文件。我想在新工作站和快速服务器上从零开始运行。
* 使用修订控制和标记里程碑。
* 强烈考虑检查依赖关系或至少链接。
* 避免编写代码。编写瘦脚本并使用标准工具并使用标准的unix命令将事物链接在一起。编写重型代码是分析过程中的最后手段或操作前的最后一步。
* 避免编写代码。编写瘦脚本并使用标准工具并使用标准的 unix 命令将事物链接在一起。编写重型代码是分析过程中的最后手段或操作前的最后一步。
* 使用标记为分析和演示输出产品创建报告。我喜欢批量思考很多有趣的东西并实现它们,让我的构建系统在下次运行时创建它们。这使我能够在以后没有处于想法模式时对观察结果进行深入评估和思考。
### 专家提示
使用Continuous Integration服务器经常(每天或每小时)运行测试工具。
使用 Continuous Integration 服务器经常(每天或每小时)运行测试工具。
[![Continuous Integration](img/ccee515ee1f73b892f26b452398dd51b.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/01/continuous-integration.jpg)
......@@ -127,10 +127,10 @@ Jill Mesirov在2010年发表在“科学”杂志上的一篇文章。在这篇
如果您想进一步阅读这些问题,我已在下面列出了本文研究中使用的资源。
* [再现性](http://en.wikipedia.org/wiki/Reproducibility)维基百科页面
* [可重复计算研究的十个简单规则](http://scholar.google.com/scholar?q=Ten+Simple+Rules+for+Reproducible+Computational+Research),Geir Kjetil Sandve,Anton Nekrutenko,James TaylorEivind Hovig,2013
* [无障碍可重复研究](http://scholar.google.com/scholar?q=Accessible+Reproducible+Research),Jill Mesirov,2010年
* [可重复计算研究的十个简单规则](http://scholar.google.com/scholar?q=Ten+Simple+Rules+for+Reproducible+Computational+Research),Geir Kjetil Sandve,Anton Nekrutenko,James TaylorEivind Hovig,2013
* [无障碍可重复研究](http://scholar.google.com/scholar?q=Accessible+Reproducible+Research),Jill Mesirov,2010
* [邀请可重复的计算研究](http://scholar.google.com/scholar?q=An+invitation+to+reproducible+computational+research),David Donoho,2010
* [科学计算可重复](http://scholar.google.com/scholar?q=Making+scientific+computations+reproducible),Matthias Schwab,Martin KarrenbachJon Claerbout,2000
* [R和RStudio的重复研究](http://www.amazon.com/dp/1466572841?tag=inspiredalgor-20)(网站链接)由Christopher Gandrud撰写,是一本关于这个主题的书使用R.我在撰写本书时没有读过这本书,但这是我的阅读清单。
* [科学计算可重复](http://scholar.google.com/scholar?q=Making+scientific+computations+reproducible),Matthias Schwab,Martin KarrenbachJon Claerbout,2000
* [R 和 RStudio 的重复研究](http://www.amazon.com/dp/1466572841?tag=inspiredalgor-20)(网站链接)由 Christopher Gandrud 撰写,是一本关于这个主题的书使用 R.我在撰写本书时没有读过这本书,但这是我的阅读清单。
您是否遇到过可重复的机器学习项目的挑战?您是否知道其他软件开发工具可以帮助实现这一目标?发表评论并分享您的经验。
\ No newline at end of file
# 10个实践应用机器学习的标准数据集
# 10 个实践应用机器学习的标准数据集
> 原文: [https://machinelearningmastery.com/standard-machine-learning-datasets/](https://machinelearningmastery.com/standard-machine-learning-datasets/)
......@@ -6,12 +6,12 @@
这是因为每个问题都不同,需要略有不同的数据准备和建模方法。
在这篇文章中,您将发现可用于练习的10个顶级标准机器学习数据集。
在这篇文章中,您将发现可用于练习的 10 个顶级标准机器学习数据集。
让我们潜入。
* **更新Mar / 2018** :添加了备用链接以下载Pima Indians和Boston Housing数据集,因为原件似乎已被删除。
* **2002年2月更新**:对保险数据集的预期默认RMSE进行小幅更新。
* **更新 Mar / 2018** :添加了备用链接以下载 Pima Indians 和 Boston Housing 数据集,因为原件似乎已被删除。
* **2002 年 2 月更新**:对保险数据集的预期默认 RMSE 进行小幅更新。
## 概观
......@@ -25,12 +25,12 @@
2. **问题类型**:问题是回归还是分类。
3. **输入和输出**:输入和输出功能的编号和已知名称。
4. **表现**:使用零规则算法进行比较的基线表现,以及最佳已知表现(如果已知)。
5. **示例**:前5行原始数据的快照。
5. **示例**:前 5 行原始数据的快照。
6. **链接**:您可以在哪里下载数据集并了解更多信息。
### 标准数据集
以下是我们将介绍的10个数据集的列表。
以下是我们将介绍的 10 个数据集的列表。
每个数据集都足够小,可以放入内存并在电子表格中查看。所有数据集都包含表格数据和没有(明确)缺失值。
......@@ -49,14 +49,14 @@
根据索赔总数,瑞典汽车保险数据集涉及预测数千瑞典克朗的所有索赔的总付款额。
这是一个回归问题。它由63个观察值组成,包含1个输入变量和1个输出变量。变量名称如下:
这是一个回归问题。它由 63 个观察值组成,包含 1 个输入变量和 1 个输出变量。变量名称如下:
1. 索赔数量。
2. 数千瑞典克朗的所有索赔的总付款额。
预测平均值的基线表现是大约81,000克朗的RMSE。
预测平均值的基线表现是大约 81,000 克朗的 RMSE。
下面列出了前5行的样本。
下面列出了前 5 行的样本。
```py
108,392.5
......@@ -79,7 +79,7 @@
葡萄酒质量数据集涉及根据每种葡萄酒的化学测量标准预测白葡萄酒的质量。
这是一个多类别的分类问题,但也可能被定为回归问题。每个班级的观察数量不均衡。有4,898个观测值,包含11个输入变量和一个输出变量。变量名称如下:
这是一个多类别的分类问题,但也可能被定为回归问题。每个班级的观察数量不均衡。有 4,898 个观测值,包含 11 个输入变量和一个输出变量。变量名称如下:
1. 固定酸度。
2. 挥发性酸度。
......@@ -89,14 +89,14 @@
6. 游离二氧化硫。
7. 二氧化硫总量。
8. 密度。
9. pH值。
9. pH 值。
10. 硫酸盐。
11. 醇。
12. 质量(得分在0到10之间)。
12. 质量(得分在 0 到 10 之间)。
预测平均值的基线表现是约0.148质量点的RMSE。
预测平均值的基线表现是约 0.148 质量点的 RMSE。
下面列出了前5行的样本。
下面列出了前 5 行的样本。
```py
7,0.27,0.36,20.7,0.045,45,170,1.001,3,0.45,8.8,6
......@@ -111,23 +111,23 @@
## 3.皮马印第安人糖尿病数据集
皮马印第安人糖尿病数据集涉及在Pima印第安人中根据医疗细节预测5年内糖尿病的发病。
皮马印第安人糖尿病数据集涉及在 Pima 印第安人中根据医疗细节预测 5 年内糖尿病的发病。
这是一个二元(2级)分类问题。每个班级的观察数量不均衡。有768个观测值,有8个输入变量和1个输出变量。缺失值被认为是用零值编码的。变量名称如下:
这是一个二元(2 级)分类问题。每个班级的观察数量不均衡。有 768 个观测值,有 8 个输入变量和 1 个输出变量。缺失值被认为是用零值编码的。变量名称如下:
1. 怀孕次数。
2. 口服葡萄糖耐量试验中血浆葡萄糖浓度为2小时。
2. 口服葡萄糖耐量试验中血浆葡萄糖浓度为 2 小时。
3. 舒张压(mm Hg)。
4. 肱三头肌皮褶厚度(mm)。
5. 2小时血清胰岛素(μU/ ml)。
6. 体重指数(体重kg /(身高m)^ 2)。
5. 2 小时血清胰岛素(μU/ ml)。
6. 体重指数(体重 kg /(身高 m)^ 2)。
7. 糖尿病谱系功能。
8. 年龄(岁)。
9. 类变量(01)。
9. 类变量(01)。
预测最普遍类别的基线表现是大约65%的分类准确度。最佳结果实现了大约77%的分类准确度。
预测最普遍类别的基线表现是大约 65%的分类准确度。最佳结果实现了大约 77%的分类准确度。
下面列出了前5行的样本。
下面列出了前 5 行的样本。
```py
6,148,72,35,0,33.6,0.627,50,1
......@@ -145,15 +145,15 @@
声纳数据集涉及在不同角度给出声纳返回强度的情况下预测物体是矿井还是岩石。
这是一个二元(2级)分类问题。每个班级的观察数量不均衡。有208个观测值,包含60个输入变量和1个输出变量。变量名称如下:
这是一个二元(2 级)分类问题。每个班级的观察数量不均衡。有 208 个观测值,包含 60 个输入变量和 1 个输出变量。变量名称如下:
1. 声纳以不同的角度返回
2. ...
3. 等级(M代表我的,R代表摇滚)
3. 等级(M 代表我的,R 代表摇滚)
预测最普遍类别的基线表现是大约53%的分类准确度。最佳结果实现了大约88%的分类准确度。
预测最普遍类别的基线表现是大约 53%的分类准确度。最佳结果实现了大约 88%的分类准确度。
下面列出了前5行的样本。
下面列出了前 5 行的样本。
```py
0.0200,0.0371,0.0428,0.0207,0.0954,0.0986,0.1539,0.1601,0.3109,0.2111,0.1609,0.1582,0.2238,0.0645,0.0660,0.2273,0.3100,0.2999,0.5078,0.4797,0.5783,0.5071,0.4328,0.5550,0.6711,0.6415,0.7104,0.8080,0.6791,0.3857,0.1307,0.2604,0.5121,0.7547,0.8537,0.8507,0.6692,0.6097,0.4943,0.2744,0.0510,0.2834,0.2825,0.4256,0.2641,0.1386,0.1051,0.1343,0.0383,0.0324,0.0232,0.0027,0.0065,0.0159,0.0072,0.0167,0.0180,0.0084,0.0090,0.0032,R
......@@ -171,17 +171,17 @@
钞票数据集涉及根据从照片中采取的一些措施来预测给定钞票是否真实。
这是一个二元(2级)分类问题。每个班级的观察数量不均衡。有1,372个观测值,包含4个输入变量和1个输出变量。变量名称如下:
这是一个二元(2 级)分类问题。每个班级的观察数量不均衡。有 1,372 个观测值,包含 4 个输入变量和 1 个输出变量。变量名称如下:
1. 小波变换图像的方差(连续)。
2. 小波的偏斜变换图像(连续)。
3. 小波变换图像的峰度(连续)。
4. 图像的熵(连续)。
5. 类(0表示真实,1表示不真实)。
5. 类(0 表示真实,1 表示不真实)。
预测最普遍类别的基线表现是大约50%的分类准确度。
预测最普遍类别的基线表现是大约 50%的分类准确度。
下面列出了前5行的样本。
下面列出了前 5 行的样本。
```py
3.6216,8.6661,-2.8073,-0.44699,0
......@@ -199,7 +199,7 @@
鸢尾花数据集涉及在测量虹膜花的情况下预测花种。
这是一个多类别的分类问题。每个班级的观察数量是平衡的。有150个观测值,包含4个输入变量和1个输出变量。变量名称如下:
这是一个多类别的分类问题。每个班级的观察数量是平衡的。有 150 个观测值,包含 4 个输入变量和 1 个输出变量。变量名称如下:
1. 萼片长度(cm)。
2. 萼片宽度(cm)。
......@@ -207,9 +207,9 @@
4. 花瓣宽度以厘米为单位。
5. 班级(Iris Setosa,Iris Versicolour,Iris Virginica)。
预测最普遍类别的基线表现是大约26%的分类准确度。
预测最普遍类别的基线表现是大约 26%的分类准确度。
下面列出了前5行的样本。
下面列出了前 5 行的样本。
```py
5.1,3.5,1.4,0.2,Iris-setosa
......@@ -226,7 +226,7 @@
鲍鱼数据集涉及根据个人的客观测量来预测鲍鱼的年龄。
这是一个多类别的分类问题,但也可以作为回归框架。每个班级的观察数量不均衡。有4,177个观测值,有8个输入变量和1个输出变量。变量名称如下:
这是一个多类别的分类问题,但也可以作为回归框架。每个班级的观察数量不均衡。有 4,177 个观测值,有 8 个输入变量和 1 个输出变量。变量名称如下:
1. 性别(M,F,I)。
2. 长度。
......@@ -238,9 +238,9 @@
8. 壳重量。
9. 戒指。
预测最普遍类别的基线表现是大约16%的分类准确度。预测平均值的基线表现是大约3.2环的RMSE。
预测最普遍类别的基线表现是大约 16%的分类准确度。预测平均值的基线表现是大约 3.2 环的 RMSE。
下面列出了前5行的样本。
下面列出了前 5 行的样本。
```py
M,0.455,0.365,0.095,0.514,0.2245,0.101,0.15,15
......@@ -257,15 +257,15 @@ I,0.33,0.255,0.08,0.205,0.0895,0.0395,0.055,7
电离层数据集需要预测大气中的结构,因为雷达回波目标是电离层中的自由电子。
这是一个二元(2级)分类问题。每个班级的观察数量不均衡。共有351个观测值,包含34个输入变量和1个输出变量。变量名称如下:
这是一个二元(2 级)分类问题。每个班级的观察数量不均衡。共有 351 个观测值,包含 34 个输入变量和 1 个输出变量。变量名称如下:
1. 17对雷达返回数据。
1. 17 对雷达返回数据。
2. ...
3. 等级(g代表好,b代表坏)。
3. 等级(g 代表好,b 代表坏)。
预测最普遍类别的基线表现是大约64%的分类准确度。最佳结果实现了大约94%的分类准确度。
预测最普遍类别的基线表现是大约 64%的分类准确度。最佳结果实现了大约 94%的分类准确度。
下面列出了前5行的样本。
下面列出了前 5 行的样本。
```py
1,0,0.99539,-0.05889,0.85243,0.02306,0.83398,-0.37708,1,0.03760,0.85243,-0.17755,0.59755,-0.44945,0.60536,-0.38223,0.84356,-0.38542,0.58212,-0.32192,0.56971,-0.29674,0.36946,-0.47357,0.56811,-0.51171,0.41078,-0.46168,0.21266,-0.34090,0.42267,-0.54487,0.18641,-0.45300,g
......@@ -283,7 +283,7 @@ I,0.33,0.255,0.08,0.205,0.0895,0.0395,0.055,7
小麦种子数据集涉及通过测量来自不同品种小麦的种子来预测物种。
这是一个二元(2级)分类问题。每个班级的观察数量是平衡的。有210个观测值,包含7个输入变量和1个输出变量。变量名称如下:
这是一个二元(2 级)分类问题。每个班级的观察数量是平衡的。有 210 个观测值,包含 7 个输入变量和 1 个输出变量。变量名称如下:
1. 区域。
2. 周长。
......@@ -294,9 +294,9 @@ I,0.33,0.255,0.08,0.205,0.0895,0.0395,0.055,7
7. 核仁沟的长度。
8. 等级(1,2,3)。
预测最普遍类别的基线表现是大约28%的分类准确度。
预测最普遍类别的基线表现是大约 28%的分类准确度。
下面列出了前5行的样本。
下面列出了前 5 行的样本。
```py
15.26,14.84,0.871,5.763,3.312,2.221,5.22,1
......@@ -313,26 +313,26 @@ I,0.33,0.255,0.08,0.205,0.0895,0.0395,0.055,7
鉴于房屋及其附近的细节,波士顿房屋价格数据集涉及以数千美元预测房价。
这是一个回归问题。每个班级的观察数量是平衡的。共有506个观测值,包含13个输入变量和1个输出变量。变量名称如下:
这是一个回归问题。每个班级的观察数量是平衡的。共有 506 个观测值,包含 13 个输入变量和 1 个输出变量。变量名称如下:
1. CRIM:城镇人均犯罪率。
2. ZN:占地面积超过25,000平方英尺的住宅用地比例。
2. ZN:占地面积超过 25,000 平方英尺的住宅用地比例。
3. INDUS:每个城镇的非复杂商业面积比例。
4. CHAS:Charles River虚拟变量(如果管道限制河流则= 1;否则为0)。
4. CHAS:Charles River 虚拟变量(如果管道限制河流则= 1;否则为 0)。
5. NOX:一氧化氮浓度(每千万份)。
6. RM:每栋住宅的平均房间数。
7. 年龄:1940年以前建造的自住单位比例。
7. 年龄:1940 年以前建造的自住单位比例。
8. DIS:到波士顿五个就业中心的加权距离。
9. RAD:径向高速公路的可达性指数。
10. 税:每10,000美元的全额物业税率。
10. 税:每 10,000 美元的全额物业税率。
11. PTRATIO:城镇的师生比例。
12. B:1000(Bk-0.63)^ 2其中Bk是城镇黑人的比例。
12. B:1000(Bk-0.63)^ 2 其中 Bk 是城镇黑人的比例。
13. LSTAT:人口状况下降%。
14. MEDV:自住房的中位数价值1000美元。
14. MEDV:自住房的中位数价值 1000 美元。
预测平均值的基准表现是大约9.21千美元的RMSE。
预测平均值的基准表现是大约 9.21 千美元的 RMSE。
下面列出了前5行的样本。
下面列出了前 5 行的样本。
```py
0.00632 18.00 2.310 0 0.5380 6.5750 65.20 4.0900 1 296.0 15.30 396.90 4.98 24.00
......@@ -347,11 +347,11 @@ I,0.33,0.255,0.08,0.205,0.0895,0.0395,0.055,7
## 摘要
在这篇文章中,您发现了10个可用于练习应用机器学习的顶级标准数据集。
在这篇文章中,您发现了 10 个可用于练习应用机器学习的顶级标准数据集。
这是您的下一步:
1. 选择一个数据集。
2. 抓住你最喜欢的工具(如Weka,scikit-learn或R)
2. 抓住你最喜欢的工具(如 Weka,scikit-learn 或 R)
3. 看看你能打多少标准分数。
4. 在下面的评论中报告您的结果。
\ No newline at end of file
......@@ -10,7 +10,7 @@
那么你应该在给定的问题上使用什么算法呢?这是一个试错的问题,或搜索最佳表示,学习算法和算法参数。
在这篇文章中,您将发现简单的3步方法,用于为业务中的一些最佳预测性建模者提出的问题找到最佳算法。
在这篇文章中,您将发现简单的 3 步方法,用于为业务中的一些最佳预测性建模者提出的问题找到最佳算法。
![Steps To The Best Machine Learning Algorithm](img/48d69233780def15cad25719b5bb65bd.jpg)
......@@ -19,9 +19,9 @@
## 三步骤方法
Max Kuhn[插入符号包](http://topepo.github.io/caret/index.html)的创建者和拥有者,它为R中的预测性建模提供了一套工具。它可能是最好的R包,也是R是严重竞争的首选的原因之一和应用机器学习。
Max Kuhn[插入符号包](http://topepo.github.io/caret/index.html)的创建者和拥有者,它为 R 中的预测性建模提供了一套工具。它可能是最好的 R 包,也是 R 是严重竞争的首选的原因之一和应用机器学习。
在他们出色的书“ [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ”中,Kuhn和Johnson概述了为特定问题选择最佳模型的过程。
在他们出色的书“ [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ”中,Kuhn 和 Johnson 概述了为特定问题选择最佳模型的过程。
我将他们建议的方法解释为:
......@@ -43,7 +43,7 @@ Max Kuhn是[插入符号包](http://topepo.github.io/caret/index.html)的创建
5. 神经网络
2. 研究一套更简单,更易解释的模型,例如:
1. 广义线性模型
2. LASSO和弹性网正则化广义线性模型
2. LASSO 和弹性网正则化广义线性模型
3. 多元自适应回归样条
4. k-最近邻居
5. 朴素贝叶斯
......@@ -55,7 +55,7 @@ Max Kuhn是[插入符号包](http://topepo.github.io/caret/index.html)的创建
* 您可以很好地了解模型中问题的准确率
* 您有一个更容易理解并向他人解释的模型。
* 你有一个相当高质量的模型非常快(如果你花了几天或几周,可能是问题可达到的前10到25%)
* 你有一个相当高质量的模型非常快(如果你花了几天或几周,可能是问题可达到的前 10 到 25%)
我不认为这是解决所有问题的最佳方法。也许方法的一些缺点是:
......@@ -63,7 +63,7 @@ Max Kuhn是[插入符号包](http://topepo.github.io/caret/index.html)的创建
* 有时您希望复杂模式优于较简单的模型(例如,精度胜过可解释性的域)。
* 表现上限是首先进行的,而不是最后一次,因为可能有时间,压力和动力从最好的方法中提取最多。
有关此策略的更多信息,请参阅[应用预测性建模](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20)的第4.8节“在模型之间选择”,第78页。对于使用R的任何严肃的机器学习从业者来说,必须有书。
有关此策略的更多信息,请参阅[应用预测性建模](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20)的第 4.8 节“在模型之间选择”,第 78 页。对于使用 R 的任何严肃的机器学习从业者来说,必须有书。
您是否有找到问题的最佳机器学习算法的方法?发表评论并分享更广泛的笔画。
......
# 对抗机器学习数据集中不平衡类别的8种策略
# 对抗机器学习数据集中不平衡类别的 8 种策略
> 原文: [https://machinelearningmastery.com/tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset/](https://machinelearningmastery.com/tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset/)
这件事发生在你身上吗?
您正在处理数据集。您可以创建分类模型并立即获得90%的准确度。你觉得“很棒”。你深入一点,发现90%的数据属于一个类。该死的!
您正在处理数据集。您可以创建分类模型并立即获得 90%的准确度。你觉得“很棒”。你深入一点,发现 90%的数据属于一个类。该死的!
这是一个不平衡数据集的例子,它可能导致令人沮丧的结果。
......@@ -19,11 +19,11 @@
我一直收到有关课程不平衡的电子邮件,例如:
> 我有一个二分类问题,在我的训练集中有一个类与60:1的比例。我使用了逻辑回归,结果似乎只是忽略了一个类。
> 我有一个二分类问题,在我的训练集中有一个类与 60:1 的比例。我使用了逻辑回归,结果似乎只是忽略了一个类。
还有这个:
> 我正在研究分类模型。在我的数据集中,我有三个不同的标签要分类,让它们分别为A,B和C.但是在训练数据集中,我有一个70%体积的数据集,B为25%,C为5%。大部分时间我的结果都适合A.你能否建议我如何解决这个问题?
> 我正在研究分类模型。在我的数据集中,我有三个不同的标签要分类,让它们分别为 A,B 和 C.但是在训练数据集中,我有一个 70%体积的数据集,B 为 25%,C 为 5%。大部分时间我的结果都适合 A.你能否建议我如何解决这个问题?
我写了很长的技术列表来尝试思考解决这个问题的最佳方法。我终于接受了我的一个学生的建议:
......@@ -43,9 +43,9 @@
不平衡数据通常是指分类问题的问题,其中类没有被平等地表示。
例如,您可能有一个包含100个实例(行)的2类(二进制)分类问题。总共80个实例标记为Class-1,其余20个实例标记为Class-2。
例如,您可能有一个包含 100 个实例(行)的 2 类(二进制)分类问题。总共 80 个实例标记为 Class-1,其余 20 个实例标记为 Class-2。
这是一个不平衡的数据集,Class-1与Class-2实例的比例为80:20或更简洁,为4:1。
这是一个不平衡的数据集,Class-1 与 Class-2 实例的比例为 80:20 或更简洁,为 4:1。
对于两类分类问题以及多分类问题,您可能会遇到类不平衡问题。大多数技术都可以使用。
......@@ -59,13 +59,13 @@
另一个例子是客户流失数据集,绝大多数客户都使用该服务(“No-Churn”类),少数客户取消订阅(“Churn”类)。
如果上面的示例中存在类似4:1的适度类不平衡,则可能会导致问题。
如果上面的示例中存在类似 4:1 的适度类不平衡,则可能会导致问题。
### 准确率悖论
[准确率悖论](https://en.wikipedia.org/wiki/Accuracy_paradox)是本文简介中确切情况的名称。
在这种情况下,您的准确度测量可以说明您具有出色的准确率(例如90%),但准确率仅反映了潜在的阶级分布。
在这种情况下,您的准确度测量可以说明您具有出色的准确率(例如 90%),但准确率仅反映了潜在的阶级分布。
这是非常常见的,因为分类准确率通常是我们在评估分类问题模型时使用的第一个衡量标准。
......@@ -73,11 +73,11 @@
当我们在不平衡的数据集上训练时,我们的模型中发生了什么?
正如您可能已经猜到的那样,我们在不平衡数据上获得90%准确度的原因(在Class-1中有90%的实例)是因为我们的模型会查看数据并巧妙地决定最好的做法是始终预测“1级”并实现高精度。
正如您可能已经猜到的那样,我们在不平衡数据上获得 90%准确度的原因(在 Class-1 中有 90%的实例)是因为我们的模型会查看数据并巧妙地决定最好的做法是始终预测“1 级”并实现高精度。
使用简单的基于规则的算法时最好看到这一点。如果在最终模型中打印出规则,您将看到它很可能预测一个类,而不管它被要求预测的数据。
## 打击不平衡训练数据的8种策略
## 打击不平衡训练数据的 8 种策略
我们现在了解什么是类不平衡,以及它为什么提供误导性的分类准确率。
......@@ -108,16 +108,16 @@
* **混淆矩阵**:将预测分解为表格,显示正确的预测(对角线)和不正确的预测类型(分配了哪些类别的错误预测)。
* **精度**:分类器精确度的度量。
* **召回**:分类器完整性的度量
* **F1分数(或F分数)**:精确度和召回率的加权平均值。
* **F1 分数(或 F 分数)**:精确度和召回率的加权平均值。
我还建议你看一下以下内容:
* **Kappa(或 [Cohenkappa](https://en.wikipedia.org/wiki/Cohen%27s_kappa) )**:分类准确率由数据中类别的不平衡归一化。
* **ROC曲线**:与精确度和召回率一样,精度分为灵敏度和特异性,可以根据这些值的平衡阈值选择模型。
* **Kappa(或 [Cohenkappa](https://en.wikipedia.org/wiki/Cohen%27s_kappa) )**:分类准确率由数据中类别的不平衡归一化。
* **ROC 曲线**:与精确度和召回率一样,精度分为灵敏度和特异性,可以根据这些值的平衡阈值选择模型。
您可以学习更多关于使用ROC曲线来比较我们的帖子“[评估和比较分类器表现与ROC曲线](http://machinelearningmastery.com/assessing-comparing-classifier-performance-roc-curves-2/)”的分类准确率。
您可以学习更多关于使用 ROC 曲线来比较我们的帖子“[评估和比较分类器表现与 ROC 曲线](http://machinelearningmastery.com/assessing-comparing-classifier-performance-roc-curves-2/)”的分类准确率。
还不确定吗?从kappa开始,它将让您更好地了解正在发生的事情,而不是分类准确率。
还不确定吗?从 kappa 开始,它将让您更好地了解正在发生的事情,而不是分类准确率。
### 3)尝试重采样数据集
......@@ -132,32 +132,32 @@
事实上,我建议你总是在所有不平衡数据集上尝试这两种方法,只是为了看看它是否能提高你的首选精确度量。
您可以在Wikipedia文章“[过采样和数据分析中的欠采样](https://en.wikipedia.org/wiki/Oversampling_and_undersampling_in_data_analysis)”中学到更多内容。
您可以在 Wikipedia 文章“[过采样和数据分析中的欠采样](https://en.wikipedia.org/wiki/Oversampling_and_undersampling_in_data_analysis)”中学到更多内容。
#### 一些经验法则
* 当您拥有大量数据(数十或数十万个实例或更多)时,请考虑对欠采样进行测试
* 当您没有大量数据(数万条记录或更少)时,请考虑测试过采样
* 考虑测试随机和非随机(例如分层)采样方案。
* 考虑测试不同的重采样比率(例如,您不必在二分类问题中以1:1的比例为目标,尝试其他比率)
* 考虑测试不同的重采样比率(例如,您不必在二分类问题中以 1:1 的比例为目标,尝试其他比率)
### 4)尝试生成合成样品
生成合成样本的一种简单方法是从少数类中的实例中随机采样属性。
您可以在数据集中凭经验对它们进行采样,或者您可以使用像Naive Bayes这样的方法,可以在反向运行时独立地对每个属性进行采样。您将拥有更多不同的数据,但可能无法保留属性之间的非线性关系。
您可以在数据集中凭经验对它们进行采样,或者您可以使用像 Naive Bayes 这样的方法,可以在反向运行时独立地对每个属性进行采样。您将拥有更多不同的数据,但可能无法保留属性之间的非线性关系。
您可以使用系统算法生成合成样本。最流行的此类算法称为SMOTE或合成少数过采样技术。
您可以使用系统算法生成合成样本。最流行的此类算法称为 SMOTE 或合成少数过采样技术。
顾名思义,SMOTE是一种过采样方法。它的工作原理是从次要类创建合成样本,而不是创建副本。该算法选择两个或更多个类似的实例(使用距离测量)并且通过差异内的相邻实例的随机量一次扰动实例一个属性。
顾名思义,SMOTE 是一种过采样方法。它的工作原理是从次要类创建合成样本,而不是创建副本。该算法选择两个或更多个类似的实例(使用距离测量)并且通过差异内的相邻实例的随机量一次扰动实例一个属性。
了解有关SMOTE的更多信息,请参阅2002年原创题为“ [SMOTE:合成少数过采样技术](http://www.jair.org/papers/paper953.html)”的论文。
了解有关 SMOTE 的更多信息,请参阅 2002 年原创题为“ [SMOTE:合成少数过采样技术](http://www.jair.org/papers/paper953.html)”的论文。
SMOTE算法有许多实现,例如:
SMOTE 算法有许多实现,例如:
*Python中,看一下“ [UnbalancedDataset](https://github.com/fmfn/UnbalancedDataset) ”模块。它提供了许多SMOTE实现以及您可以尝试的各种其他重采样技术。
*R中, [DMwR包](https://cran.r-project.org/web/packages/DMwR/index.html)提供了SMOTE的实现。
*Weka中,您可以使用 [SMOTE监督滤波器](http://weka.sourceforge.net/doc.packages/SMOTE/weka/filters/supervised/instance/SMOTE.html)
* Python 中,看一下“ [UnbalancedDataset](https://github.com/fmfn/UnbalancedDataset) ”模块。它提供了许多 SMOTE 实现以及您可以尝试的各种其他重采样技术。
* R 中, [DMwR 包](https://cran.r-project.org/web/packages/DMwR/index.html)提供了 SMOTE 的实现。
* Weka 中,您可以使用 [SMOTE 监督滤波器](http://weka.sourceforge.net/doc.packages/SMOTE/weka/filters/supervised/instance/SMOTE.html)
### 5)尝试不同的算法
......@@ -167,11 +167,11 @@ SMOTE算法有许多实现,例如:
话虽这么说,决策树通常在不平衡的数据集上表现良好。查看用于创建树的类变量的拆分规则可以强制解决这两个类。
如果有疑问,请尝试一些流行的决策树算法,如C4.5,C5.0,CART和随机森林。
如果有疑问,请尝试一些流行的决策树算法,如 C4.5,C5.0,CART 和随机森林。
对于使用决策树的一些R代码示例,请参阅我的帖子“带有决策树的R中的[非线性分类”。](http://machinelearningmastery.com/non-linear-classification-in-r-with-decision-trees/)
对于使用决策树的一些 R 代码示例,请参阅我的帖子“带有决策树的 R 中的[非线性分类”。](http://machinelearningmastery.com/non-linear-classification-in-r-with-decision-trees/)
有关在Python和scikit-learn中使用CART的示例,请参阅我的帖子标题为“[让你的手弄乱Scikit-Learn Now](http://machinelearningmastery.com/get-your-hands-dirty-with-scikit-learn-now/) ”。
有关在 Python 和 scikit-learn 中使用 CART 的示例,请参阅我的帖子标题为“[让你的手弄乱 Scikit-Learn Now](http://machinelearningmastery.com/get-your-hands-dirty-with-scikit-learn-now/) ”。
### 6)尝试惩罚模型
......@@ -179,9 +179,9 @@ SMOTE算法有许多实现,例如:
惩罚分类会对模型造成额外成本,以便在训练期间对少数群体犯下分类错误。这些处罚可能会使模型偏向于更多地关注少数民族。
通常,类惩罚或权重的处理专用于学习算法。存在惩罚版本的算法,例如惩罚的SVM和惩罚的LDA。
通常,类惩罚或权重的处理专用于学习算法。存在惩罚版本的算法,例如惩罚的 SVM 和惩罚的 LDA。
也可以为惩罚模型提供通用框架。例如,Weka有一个 [CostSensitiveClassifier](http://weka.sourceforge.net/doc.dev/weka/classifiers/meta/CostSensitiveClassifier.html) ,可以包装任何分类器并应用自定义惩罚矩阵进行未命中分类。
也可以为惩罚模型提供通用框架。例如,Weka 有一个 [CostSensitiveClassifier](http://weka.sourceforge.net/doc.dev/weka/classifiers/meta/CostSensitiveClassifier.html) ,可以包装任何分类器并应用自定义惩罚矩阵进行未命中分类。
如果您被锁定在特定算法中并且无法重新取样或者您的结果不佳,则需要使用惩罚。它提供了另一种“平衡”类的方法。设置惩罚矩阵可能很复杂。您很可能必须尝试各种惩罚方案,看看什么最适合您的问题。
......@@ -205,7 +205,7 @@ SMOTE算法有许多实现,例如:
真正爬进你的问题并思考如何将其分解为更容易处理的小问题。
为了获得灵感,请回顾Quora上非常有创意的答案,回答问题“[在分类中,您如何处理不平衡的训练集?](http://www.quora.com/In-classification-how-do-you-handle-an-unbalanced-training-set)
为了获得灵感,请回顾 Quora 上非常有创意的答案,回答问题“[在分类中,您如何处理不平衡的训练集?](http://www.quora.com/In-classification-how-do-you-handle-an-unbalanced-training-set)
例如:
......@@ -217,7 +217,7 @@ SMOTE算法有许多实现,例如:
这些只是您可以尝试的一些有趣且富有创意的想法。
有关更多想法,请查看reddit帖子“[分类时的这些评论,当我80%的训练集属于一个类](https://www.reddit.com/r/MachineLearning/comments/12evgi/classification_when_80_of_my_training_set_is_of/)”时。
有关更多想法,请查看 reddit 帖子“[分类时的这些评论,当我 80%的训练集属于一个类](https://www.reddit.com/r/MachineLearning/comments/12evgi/classification_when_80_of_my_training_set_is_of/)”时。
## 选择一种方法并采取行动
......
......@@ -27,7 +27,7 @@
## 概观
这篇文章分为4部分;他们是:
这篇文章分为 4 部分;他们是:
1. 模型评估
2. 模型表现不匹配
......@@ -44,7 +44,7 @@
一种流行的方法是使用一部分数据来拟合和调整模型,以及一部分用于在样本外数据上提供调整模型的技能的客观估计。
数据样本分为训练和测试数据集。使用诸如k折交叉验证的重采样方法在训练数据集上评估模型,并且可以将集合本身​​进一步划分为用于调整模型的超参数的验证数据集。
数据样本分为训练和测试数据集。使用诸如 k 折交叉验证的重采样方法在训练数据集上评估模型,并且可以将集合本身​​进一步划分为用于调整模型的超参数的验证数据集。
测试集被阻止并用于评估和比较调谐模型。
......@@ -70,9 +70,9 @@
在应用机器学习中这是一个具有挑战性且非常普遍的情况。
我们可以将此问题称为“_模型表现不匹配_”问题。
我们可以将此问题称为“_ 模型表现不匹配 _”问题。
**注意**:模型表现中“_大差异_”的想法与您选择的表现指标,数据集和模型有关。我们不能客观地谈论一般的差异,只能说出你必须解释的相对差异。
**注意**:模型表现中“_ 大差异 _”的想法与您选择的表现指标,数据集和模型有关。我们不能客观地谈论一般的差异,只能说出你必须解释的相对差异。
## 可能的原因和补救措施
......@@ -90,13 +90,13 @@
您已经找到了一个模型,一组模型超参数,一个数据视图,或这些元素的组合等等,恰好可以对训练数据集进行良好的技能评估。
使用k折交叉验证在某种程度上有所帮助。使用具有单独数据集的调整模型也会有所帮助。然而,可以在训练数据集上继续推进和过拟合。
使用 k 折交叉验证在某种程度上有所帮助。使用具有单独数据集的调整模型也会有所帮助。然而,可以在训练数据集上继续推进和过拟合。
如果是这种情况,测试技能可能更能代表所选模型和配置的真实技能。
诊断您是否过度训练训练数据集的一种简单(但不容易)的方法是获得关于模型技能的另一个数据点。在另一组数据上评估所选模型。例如,要尝试的一些想法包括:
* 尝试在测试数据集上对模型进行k折交叉验证评估。
* 尝试在测试数据集上对模型进行 k 折交叉验证评估。
* 尝试在训练数据集上拟合模型,并对测试和新数据样本进行评估。
如果你过度适合,你可以选择。
......@@ -123,7 +123,7 @@
另一个好的第二个测试是检查训练和测试集上每个变量的汇总统计量,最好是交叉验证折叠。您正在寻找样本均值和标准差的较大差异。
补救措施通常是从域中获取更大,更具代表性的数据样本。或者,在准备数据样本和分割时使用更多区别的方法。考虑分层k折交叉验证,但应用于输入变量,以试图除了分类变量的分布之外,还保持实值变量的总体均值和标准差。
补救措施通常是从域中获取更大,更具代表性的数据样本。或者,在准备数据样本和分割时使用更多区别的方法。考虑分层 k 折交叉验证,但应用于输入变量,以试图除了分类变量的分布之外,还保持实值变量的总体均值和标准差。
通常,当我看到过拟合项目时,这是因为测试工具不像应该的那样健壮,而不是因为攀爬测试数据集。
......@@ -143,7 +143,7 @@
这里的不同之处在于可以通过重复模型评估过程来清除方差,例如,交叉验证,以控制训练模型的随机性。
这通常被称为多次重复k次交叉验证,并且在资源允许时用于神经网络和随机优化算法。
这通常被称为多次重复 k 次交叉验证,并且在资源允许时用于神经网络和随机优化算法。
我有更多关于评估帖子中模型的方法:
......@@ -156,7 +156,7 @@
这可能包括在开始评估真实模型之前运行实验。实验如下:
* 训练/测试分裂的灵敏度分析。
* 交叉验证的k值灵敏度分析。
* 交叉验证的 k 值灵敏度分析。
* 对给定模型行为的敏感性分析。
* 对重复次数的敏感性分析。
......
......@@ -10,7 +10,7 @@
我曾多次勾勒出“完美”系统,其中模型运行,调整和结果混合是自动化的,人类的努力专注于定义问题的不同观点。
我甚至用几种不同语言为竞赛建立了几次不完美的系统变体。第一个版本是在十多年前的Java中。最近的版本是在R中使用make文件和bash脚本大约6个月前。
我甚至用几种不同语言为竞赛建立了几次不完美的系统变体。第一个版本是在十多年前的 Java 中。最近的版本是在 R 中使用 make 文件和 bash 脚本大约 6 个月前。
[![machine learning pipeline](img/8e7964ae28b4b9ec47b735d3dbcdbe8d.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/04/machine-learning-pipeline.jpg)
......@@ -42,7 +42,7 @@
如上所述,管道设计旨在让计算机专注于自动化程序,使操作员能够专注于提出有关手头问题的新观点。该方法的一些好处包括:
* 算法一直存在,能够修复,调整和重新运行非常重要。
* 竞争中的限制因素通常是对问题的新观点,而不是CPU时间或算法调整,持续集成系统可以整天重新运行主脚本寻找新的结果进行整合,使用新的配置,新的混合推广。
* 竞争中的限制因素通常是对问题的新观点,而不是 CPU 时间或算法调整,持续集成系统可以整天重新运行主脚本寻找新的结果进行整合,使用新的配置,新的混合推广。
* 该设计允许以新数据视图和新模型配置文件的形式放弃添加想法。
其他报告可以插入“分析报告”部分,其结果旨在激发“数据视图”部分的更多想法。
......@@ -53,11 +53,11 @@
## 徒劳无功
所述系统是一个诱人的陷阱。它放弃了设计数据问题解决方案的责任。根据领域知识和专业知识智能地选择属性和算法。它将问题视为搜索问题并释放CPU猎犬。
所述系统是一个诱人的陷阱。它放弃了设计数据问题解决方案的责任。根据领域知识和专业知识智能地选择属性和算法。它将问题视为搜索问题并释放 CPU 猎犬。
我认为构建这个系统的生产级版本是徒劳的。我认为这是因为它旨在解决一个人为的问题:机器学习竞赛。
我大多相信这一点,比如99.99%。我一直在探讨这个想法,以防万一我错了。这篇文章是我推动这一信念的界限的一个例子。
我大多相信这一点,比如 99.99%。我一直在探讨这个想法,以防万一我错了。这篇文章是我推动这一信念的界限的一个例子。
如果我描述的这样的系统存在,我会使用它还是我还想构建我自己的系统版本?你会怎么做?
......@@ -65,13 +65,13 @@
我认为这种系统的风格确实存在,或者我可以欺骗自己认为它存在是为了争论。我认为这个愿景的商业友好版本已经存在,它是商品化的机器学习或机器学习即服务(MLaaS)。
我上面描述的系统专注于一个问题:给定数据集,可以生成哪些最佳预测? [谷歌预测API](https://developers.google.com/prediction/) 可能是这种类型的系统的一个例子(如果我关闭一只眼睛并与另一只眼睛斜视)。我不在乎我如何获得最好的结果(或者足够好的结果),只是给他们我,该死的。
我上面描述的系统专注于一个问题:给定数据集,可以生成哪些最佳预测? [谷歌预测 API](https://developers.google.com/prediction/) 可能是这种类型的系统的一个例子(如果我关闭一只眼睛并与另一只眼睛斜视)。我不在乎我如何获得最好的结果(或者足够好的结果),只是给他们我,该死的。
[![BigML Interactive Decision Tree](img/9201339dae39c27755ad066f401d4656.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/03/bigml-decision-tree.png)
BigML交互式决策树
BigML 交互式决策树
我将其与所谓的“商业友好型”MLaaS区分开来。我想到 [BigML](http://machinelearningmastery.com/bigml-review-discover-the-clever-features-in-this-machine-learning-as-a-service-platform/ "BigML Review: Discover the Clever Features in This Machine Learning as a Service Platform") 就是这类服务的一个例子。他们是我想象的这样的服务,如果它打扮得很好,可以卖给企业。差异化的一个关键点是以牺牲预测准确率为代价进行模型内省的能力。
我将其与所谓的“商业友好型”MLaaS 区分开来。我想到 [BigML](http://machinelearningmastery.com/bigml-review-discover-the-clever-features-in-this-machine-learning-as-a-service-platform/ "BigML Review: Discover the Clever Features in This Machine Learning as a Service Platform") 就是这类服务的一个例子。他们是我想象的这样的服务,如果它打扮得很好,可以卖给企业。差异化的一个关键点是以牺牲预测准确率为代价进行模型内省的能力。
你不仅想要“有史以来最好的预测,该死的”,你想知道如何。这些数字需要围绕它们进行叙述。企业需要这些信息,因此他们可以内化并将其转移到其他问题,并在概念漂移后将来转移到同样的问题。知识是秘诀,而不是创造知识的模型。
......
......@@ -8,9 +8,9 @@
初学者会向现场询问此错误,例如:
* _如何通过交叉验证做出预测?_
* _我从交叉验证中选择哪种模型?_
* _我是否在训练数据集上准备好后使用该模型?_
* _ 如何通过交叉验证做出预测?_
* _ 我从交叉验证中选择哪种模型?_
* _ 我是否在训练数据集上准备好后使用该模型?_
这篇文章将澄清混乱。
......@@ -29,7 +29,7 @@
也就是说,给定输入数据的新示例,您希望使用该模型来预测预期输出。这可以是分类(分配标签)或回归(实际值)。
例如,照片是_狗_还是_猫_的照片,还是明天的估计销售数量。
例如,照片是 _ 狗 _ 还是 _ 猫 _ 的照片,还是明天的估计销售数量。
您的机器学习项目的目标是获得最佳的最终模型,其中“最佳”定义为:
......@@ -55,7 +55,7 @@
### 让我们进一步解压缩
当我们评估算法时,我们实际上正在评估过程中的所有步骤,包括如何准备训练数据(例如缩放),算法的选择(例如kNN)以及所选算法的配置方式(例如k = 3) )。
当我们评估算法时,我们实际上正在评估过程中的所有步骤,包括如何准备训练数据(例如缩放),算法的选择(例如 kNN)以及所选算法的配置方式(例如 k = 3) )。
根据预测计算的绩效指标是对整个程序技能的估计。
......@@ -80,11 +80,11 @@
结果是我们可能完全不确定程序对看不见的数据的实际执行情况以及一个程序与另一个程序的比较。
通常,在时间允许的情况下,我们更愿意使用k折交叉验证。
通常,在时间允许的情况下,我们更愿意使用 k 折交叉验证。
## k折交叉验证的目的
## k 折交叉验证的目的
为什么我们使用k-fold交叉验证?
为什么我们使用 k-fold 交叉验证?
交叉验证是另一种估计方法对看不见的数据的技能的方法。就像使用训练测试一样。
......@@ -99,7 +99,7 @@
此外,这些信息非常宝贵,因为您可以使用均值和点差来给出实际机器学习过程中预期表现的置信区间。
训练测试分裂和k折交叉验证都是重采样方法的示例。
训练测试分裂和 k 折交叉验证都是重采样方法的示例。
## 为什么我们使用重采样方法?
......@@ -109,14 +109,14 @@
我们没有新数据,所以我们必须假装统计技巧。
训练测试拆分和k折交叉验证称为重采样方法。重采样方法是对数据集进行采样和估计未知数量的统计程序。
训练测试拆分和 k 折交叉验证称为重采样方法。重采样方法是对数据集进行采样和估计未知数量的统计程序。
在应用机器学习的情况下,我们感兴趣的是估计机器学习过程对看不见的数据的技能。更具体地说,由机器学习过程做出的预测的技巧。
一旦我们获得了估计的技能,我们就完成了重采样方法。
* 如果使用训练测试拆分,则意味着您可以丢弃拆分数据集和训练模型。
* 如果您正在使用k-fold交叉验证,那意味着您可以丢弃所有经过训练的模型。
* 如果您正在使用 k-fold 交叉验证,那意味着您可以丢弃所有经过训练的模型。
他们已达到目的,不再需要。
......@@ -167,9 +167,9 @@
您已使用重采样程序回答了此问题。
如果设计得很好,您使用训练测试或k折交叉验证计算的表现指标可以适当地描述对所有可用历史数据进行训练的最终模型在一般情况下的表现。
如果设计得很好,您使用训练测试或 k 折交叉验证计算的表现指标可以适当地描述对所有可用历史数据进行训练的最终模型在一般情况下的表现。
如果您使用k-fold交叉验证,您将估计模型平均的“错误”(或相反,“正确”),以及该错误或正确性的预期传播。
如果您使用 k-fold 交叉验证,您将估计模型平均的“错误”(或相反,“正确”),以及该错误或正确性的预期传播。
这就是为什么精心设计的测试装置在应用机器学习中绝对至关重要。更强大的测试工具将使您能够更加依赖于估计的表现。
......@@ -177,7 +177,7 @@
机器学习算法是随机的,并且可以预期在相同数据上的这种不同表现的行为。
重复采样方法(例如重复训练/测试或重复k折叠交叉验证)将有助于了解方法中存在多少差异。
重复采样方法(例如重复训练/测试或重复 k 折叠交叉验证)将有助于了解方法中存在多少差异。
如果这是一个真正的问题,您可以创建多个最终模型并从预测集合中取平均值以减少方差。
......@@ -191,7 +191,7 @@
您已经克服了最终确定模型的障碍,例如:
* 了解重采样程序的目标,例如训练测试拆分和k折交叉验证。
* 了解重采样程序的目标,例如训练测试拆分和 k 折交叉验证。
* 模型定型作为训练所有可用数据的新模型。
* 将估算绩效的关注与最终确定模型分开。
......
......@@ -6,7 +6,7 @@
可以用来快速建立与新数据问题的关系的经典和未充分利用的方法是**探索性数据分析**
在这篇文章中,您将发现探索性数据分析(EDA),您可以使用的技术和策略,以及为什么您应该在下一个问题上执行EDA。
在这篇文章中,您将发现探索性数据分析(EDA),您可以使用的技术和策略,以及为什么您应该在下一个问题上执行 EDA。
[![Exploratory Data Analysis](img/e1109dd520c06c6257c547b8dc4c4f10.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/11/Exploratory-Data-Analysis.jpg)
......@@ -31,15 +31,15 @@
## 探索性数据分析的起源
探索性数据分析由贝尔实验室的 [John Tukey](http://en.wikipedia.org/wiki/John_Tukey) 开发,作为在开发关于数据的假设之前系统地使用统计工具的方法。它是“_验证数据分析_”的替代或相反方法。
探索性数据分析由贝尔实验室的 [John Tukey](http://en.wikipedia.org/wiki/John_Tukey) 开发,作为在开发关于数据的假设之前系统地使用统计工具的方法。它是“_ 验证数据分析 _”的替代或相反方法。
该过程的开创性描述在Tukey的1977年书[探索性数据分析](http://www.amazon.com/dp/0201076160?tag=inspiredalgor-20)中。
该过程的开创性描述在 Tukey 的 1977 年书[探索性数据分析](http://www.amazon.com/dp/0201076160?tag=inspiredalgor-20)中。
目的是了解问题以产生可测试的假设。因此,图表和汇总统计量等结果仅供您改善的理解,而不是为了向一般受众展示数据中的关系。这为该过程提供了敏捷的味道。
[S语言](http://en.wikipedia.org/wiki/S_(programming_language))是在同一个实验室开发的,并被用作EDA的工具。使用脚本生成数据摘要和视图是该过程的自然和有意的契合。
[S 语言](http://en.wikipedia.org/wiki/S_(programming_language))是在同一个实验室开发的,并被用作 EDA 的工具。使用脚本生成数据摘要和视图是该过程的自然和有意的契合。
维基百科提供了一个很好的 [EDA目标的简短列表](http://en.wikipedia.org/wiki/Exploratory_data_analysis)
维基百科提供了一个很好的 [EDA 目标的简短列表](http://en.wikipedia.org/wiki/Exploratory_data_analysis)
* 建议关于观察现象的原因的假设
* 评估统计推断将基于的假设
......@@ -87,7 +87,7 @@
您无需深入了解高级统计方法或图表。保持简单并花时间处理数据。
SQL这样的查询接口可以帮助您使用数据样本快速播放大量的假设情景。
SQL 这样的查询接口可以帮助您使用数据样本快速播放大量的假设情景。
模型只会与您对数据和问题的问题和理解一样好。
......@@ -95,7 +95,7 @@
[![Amazon Image](img/b2e5de14ca298184b1c5ae6d58fb8486.jpg)](http://www.amazon.com/dp/0961392142?tag=inspiredalgor-20)
[做数据科学:从前线直接谈话](http://www.amazon.com/dp/1449358659?tag=inspiredalgor-20)有一个关于EDA的简短部分,并提供了一个很好的阅读列表,以获取更多信息:
[做数据科学:从前线直接谈话](http://www.amazon.com/dp/1449358659?tag=inspiredalgor-20)有一个关于 EDA 的简短部分,并提供了一个很好的阅读列表,以获取更多信息:
* [探索性数据分析](http://www.amazon.com/dp/0201076160?tag=inspiredalgor-20)
* [定量信息的视觉显示](http://www.amazon.com/dp/0961392142?tag=inspiredalgor-20)(强烈推荐)
......
# 什么是数据挖掘和KDD
# 什么是数据挖掘和 KDD
> 原文: [https://machinelearningmastery.com/what-is-data-mining-and-kdd/](https://machinelearningmastery.com/what-is-data-mining-and-kdd/)
......@@ -17,13 +17,13 @@
### 数据挖掘:实用的机器学习工具和技术
[![Amazon Image](img/483d36fccc87c2d89a30a5c319c2d300.jpg)](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20) 这是Ian Witten和Eibe Frank的教科书。
[![Amazon Image](img/483d36fccc87c2d89a30a5c319c2d300.jpg)](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20) 这是 Ian Witten 和 Eibe Frank 的教科书。
作者在前言中评论道:
> “数据挖掘是从数据中提取隐含的,以前未知的,可能有用的信息。我们的想法是构建自动筛选数据库,寻求规律或模式的计算机程序。如果找到强有力的模式,可能会推广以对未来数据做出准确的预测。 ...机器学习为数据挖掘提供了技术基础。它用于从数据库中的原始数据中提取信息......“
在本书的第1章中,作者写道:
在本书的第 1 章中,作者写道:
> “数据挖掘被定义为发现数据模式的过程。该过程必须是自动的(或更常见的)半自动的。发现的模式必须有意义,因为它会带来一些优势,通常是经济优势。数据总是大量存在。“
......@@ -31,15 +31,15 @@
### 数据挖掘:概念和技术
[![Amazon Image](img/63c414f3635cb62cf2b3fa250762621d.jpg)](http://www.amazon.com/dp/0123814790?tag=inspiredalgor-20) 这是Jiawei Han和Micheline Kamber的教科书。
[![Amazon Image](img/63c414f3635cb62cf2b3fa250762621d.jpg)](http://www.amazon.com/dp/0123814790?tag=inspiredalgor-20) 这是 Jiawei Han 和 Micheline Kamber 的教科书。
在作者的序言中写道:
> “数据挖掘,通常也被称为数据知识发现(KDD),是自动或方便地提取模式,表示在大型数据库,数据仓库,Web,其他海量信息库或数据流中隐式存储或捕获的知识。”
这是KDD略有不同的定义,我认为这是该领域的标准。我相信KDD的首选定义是数据库中的知识发现。
这是 KDD 略有不同的定义,我认为这是该领域的标准。我相信 KDD 的首选定义是数据库中的知识发现。
在第1章中,作者总结了KDD过程(第7页和第8页):
在第 1 章中,作者总结了 KDD 过程(第 7 页和第 8 页):
1. **数据清理**,以消除噪音和不一致的数据。
2. **数据集成**,可以组合多个数据源。
......@@ -53,42 +53,42 @@
## 权威文章
在本节中,我们将在该领域的权威文章中探索数据库中的知识发现(KDD)的过程。这些都是可重复技术的macgainze文章,而不是同行评审的期刊文章。然而,较不正式的语气允许对这一高级主题进行有益的讨论。
在本节中,我们将在该领域的权威文章中探索数据库中的知识发现(KDD)的过程。这些都是可重复技术的 macgainze 文章,而不是同行评审的期刊文章。然而,较不正式的语气允许对这一高级主题进行有益的讨论。
### 从数据挖掘到数据库中的知识发现
这是1996年由Usama Fayyad,Gregory Piatetsky-Shapiro和Padhraic Smyth撰写的AI杂志上的一篇文章。
这是 1996 年由 Usama Fayyad,Gregory Piatetsky-Shapiro 和 Padhraic Smyth 撰写的 AI 杂志上的一篇文章。
他们将KDD定义为数据库中的知识发现,这是我更熟悉的定义:
他们将 KDD 定义为数据库中的知识发现,这是我更熟悉的定义:
> “...... KDD领域关注的是开发用于理解数据的方法和技术。 ......该过程的核心是应用特定的数据挖掘方法进行模式发现和提取。“
> “...... KDD 领域关注的是开发用于理解数据的方法和技术。 ......该过程的核心是应用特定的数据挖掘方法进行模式发现和提取。“
> “... KDD是指从数据中发现有用知识的整个过程,而数据挖掘是指此过程中的特定步骤。数据挖掘是特定算法的应用,用于从数据中提取模式。“
> “... KDD 是指从数据中发现有用知识的整个过程,而数据挖掘是指此过程中的特定步骤。数据挖掘是特定算法的应用,用于从数据中提取模式。“
作者在图片中提供了有用的KDD摘要,其中包含框中的实体和将框连接为实体上的变换的过程。该描述总结如下。我很勉强重现图像,对不起,正式出版物在这方面可能很难。
作者在图片中提供了有用的 KDD 摘要,其中包含框中的实体和将框连接为实体上的变换的过程。该描述总结如下。我很勉强重现图像,对不起,正式出版物在这方面可能很难。
* **第1步**:选择(数据到目标数据)
* **第2步**:预处理(将目标数据转换为已处理数据)
* **第3步**:转换(将处理后的数据转换为转换后的数据)
* **第4步**:数据挖掘(将数据转换为模式)
* **第5步**:将解释和/或评估模式转化为知识)
* **第 1 步**:选择(数据到目标数据)
* **第 2 步**:预处理(将目标数据转换为已处理数据)
* **第 3 步**:转换(将处理后的数据转换为转换后的数据)
* **第 4 步**:数据挖掘(将数据转换为模式)
* **第 5 步**:将解释和/或评估模式转化为知识)
这个过程很简单,它是我在处理问题时喜欢使用的模型。
### 从数据量中提取有用知识的KDD过程
### 从数据量中提取有用知识的 KDD 过程
这是1996年由Usama Fayyad,Gregory Piatetsky-Shapiro和Padhraic Smyth在ACM通讯中的一篇文章。
这是 1996 年由 Usama Fayyad,Gregory Piatetsky-Shapiro 和 Padhraic Smyth 在 ACM 通讯中的一篇文章。
在本文中,作者给出了KDD过程的更详细的总结。这个更详细的版本在上面的“From Data Mining ...”文章中,但我感觉不太清楚。下面将更详细地概述KDD过程。
在本文中,作者给出了 KDD 过程的更详细的总结。这个更详细的版本在上面的“From Data Mining ...”文章中,但我感觉不太清楚。下面将更详细地概述 KDD 过程。
1. 了解应用程序域和过程的目标
2. 创建目标数据集作为所有可用数据的子集
3. 数据清理和预处理,以消除噪音,处理缺失数据和异常值
4. 数据缩减和投影,以便专注于与问题相关的功能
5. 将进程的目标与数据挖掘方法相匹配。确定模型的目的,例如摘要或分类。
6. 选择数据挖掘算法以匹配模型的目的(从步骤5开始)
6. 选择数据挖掘算法以匹配模型的目的(从步骤 5 开始)
7. 数据挖掘,即运行数据算法。
8. 解释挖掘的模式以使用户可以理解,例如摘要和可视化。
9. 根据发现的知识,例如报告或做出决定。
......@@ -99,9 +99,9 @@
在这篇文章中,您了解到数据挖掘是从数据中发现模式。您了解到,这是一个由许多步骤组成的过程,包括数据准备,算法运行和结果表示。
您了解到机器学习是数据挖掘中使用的工具,数据挖掘实际上是数据库或KDD中知识发现过程中的一个步骤,并且它已经成为术语的同义词,因为它更容易说。
您了解到机器学习是数据挖掘中使用的工具,数据挖掘实际上是数据库或 KDD 中知识发现过程中的一个步骤,并且它已经成为术语的同义词,因为它更容易说。
您了解到,当您从事机器学习项目时,您可能正在执行某种形式的KDD流程,其具体目标是解决问题而不是进行发现。
您了解到,当您从事机器学习项目时,您可能正在执行某种形式的 KDD 流程,其具体目标是解决问题而不是进行发现。
## 资源
......@@ -109,7 +109,7 @@
* [数据挖掘:实用机器学习工具和技术](http://www.amazon.com/dp/0123748569?tag=inspiredalgor-20)(会员链接)
* [数据挖掘:概念与技术](http://www.amazon.com/dp/0123814790?tag=inspiredalgor-20)(会员链接)
* [从数据挖掘到数据库中的知识发现](http://scholar.google.com/scholar?q=From+Data+Mining+to+Knowledge+Discovery+in+Databases)(谷歌学者),1996年
* [从数据量中提取有用知识的KDD过程](http://scholar.google.com/scholar?q=The+KDD+Process+for+Extracting+Useful+Knowledge+from+Volumes+of+Data)(谷歌学者),1996
* [从数据挖掘到数据库中的知识发现](http://scholar.google.com/scholar?q=From+Data+Mining+to+Knowledge+Discovery+in+Databases)(谷歌学者),1996
* [从数据量中提取有用知识的 KDD 过程](http://scholar.google.com/scholar?q=The+KDD+Process+for+Extracting+Useful+Knowledge+from+Volumes+of+Data)(谷歌学者),1996
您如何理解数据挖掘以及机器学习如何适应?发表评论并分享您的经验。
\ No newline at end of file
......@@ -17,7 +17,7 @@
![Why One-Hot Encode Data in Machine Learning?](img/03f323e995227503e4022f5cbbca0fbf.jpg)
为什么One-Hot在机器学习中编码数据?
为什么 One-Hot 在机器学习中编码数据?
[Karan Jain](https://www.flickr.com/photos/jiangkeren/8263176332/) 的照片,保留一些权利。
## 什么是分类数据?
......@@ -31,8 +31,8 @@
一些例子包括:
*`pet`”变量,其值为:“`dog`”和“`cat`”。
* “_颜色_”变量,其值为:“`red`”,“`green`”和“`blue`”。
* “_位置_”变量的值为:“first”,“`second`”_和_“`third`”。
* “_ 颜色 _”变量,其值为:“`red`”,“`green`”和“`blue`”。
* “_ 位置 _”变量的值为:“first”,“`second`”_ 和 _“`third`”。
每个值代表一个不同的类别。
......@@ -63,7 +63,7 @@
作为第一步,为每个唯一类别值分配一个整数值。
例如,“`red`”为1,“`green`”为2,“`blue`”为3。
例如,“`red`”为 1,“`green`”为 2,“`blue`”为 3。
这称为标签编码或整数编码,并且易于反转。
......@@ -81,7 +81,7 @@
在这种情况下,可以将单热编码应用于整数表示。这是移除整数编码变量的位置,并为每个唯一整数值​​添加新的二进制变量。
在“_颜色_”变量示例中,有3个类别,因此需要3个二进制变量。 “1”值放在颜色的二进制变量中,“0”值放在其他颜色上。
在“_ 颜色 _”变量示例中,有 3 个类别,因此需要 3 个二进制变量。 “1”值放在颜色的二进制变量中,“0”值放在其他颜色上。
例如:
......
......@@ -8,7 +8,7 @@
照片来自 [withassociates](http://www.flickr.com/photos/withassociates/4385364607/sizes/l/) ,保留一些权利
在这篇文章中,您将发现斑点检查算法的3个好处,5个用于对您的下一个问题进行抽查的技巧,以及您可以在算法套件中进行抽查的十大最流行的数据挖掘算法。
在这篇文章中,您将发现斑点检查算法的 3 个好处,5 个用于对您的下一个问题进行抽查的技巧,以及您可以在算法套件中进行抽查的十大最流行的数据挖掘算法。
## 采样检查算法
......@@ -35,36 +35,36 @@
点检算法提示
[vintagedept](http://www.flickr.com/photos/vintagedept/6358537847/sizes/l/) ,保留一些权利。
以下是5个提示,以确保您从问题的现场检查机器学习算法中获得最大收益。
以下是 5 个提示,以确保您从问题的现场检查机器学习算法中获得最大收益。
* **算法多样性**:您需要良好的算法类型组合。我喜欢包括基于实例的方法(实时LVQ和knn),函数和内核(如神经网络,回归和SVM),规则系统(如决策表和RIPPER)和决策树(如CART,ID3和C4.5)。
* **最佳足部前锋**:每个算法都需要有机会将其发挥得最好。这并不意味着对每个算法的参数进行灵敏度分析,而是使用实验和启发式方法为每个算法提供公平的机会。例如,如果kNN在混合中,则给它3次机会,k值为1,5和7。
* **正式实验**:不要玩。以非正式的方式尝试许多不同的东西,以解决问题的算法是一种巨大的诱惑。现场检查的想法是快速找到能够很好地解决问题的方法。设计实验,运行它,然后分析结果。有条不紊。我喜欢通过统计显着的胜利(在成对比较中)对算法进行排名,并将前3-5作为调整的基础。
* **跳跃点**:表现最佳的算法是解决问题的起点。显示有效的算法可能不是该作业的最佳算法。它们最有可能是指向在问题上表现良好的算法类型的有用指针。例如,如果kNN表现良好,请考虑对您可以想到的所有基于实例的方法和kNN变体的后续实验。
* **算法多样性**:您需要良好的算法类型组合。我喜欢包括基于实例的方法(实时 LVQ 和 knn),函数和内核(如神经网络,回归和 SVM),规则系统(如决策表和 RIPPER)和决策树(如 CART,ID3 和 C4.5)。
* **最佳足部前锋**:每个算法都需要有机会将其发挥得最好。这并不意味着对每个算法的参数进行灵敏度分析,而是使用实验和启发式方法为每个算法提供公平的机会。例如,如果 kNN 在混合中,则给它 3 次机会,k 值为 1,5 和 7。
* **正式实验**:不要玩。以非正式的方式尝试许多不同的东西,以解决问题的算法是一种巨大的诱惑。现场检查的想法是快速找到能够很好地解决问题的方法。设计实验,运行它,然后分析结果。有条不紊。我喜欢通过统计显着的胜利(在成对比较中)对算法进行排名,并将前 3-5 作为调整的基础。
* **跳跃点**:表现最佳的算法是解决问题的起点。显示有效的算法可能不是该作业的最佳算法。它们最有可能是指向在问题上表现良好的算法类型的有用指针。例如,如果 kNN 表现良好,请考虑对您可以想到的所有基于实例的方法和 kNN 变体的后续实验。
* **构建您的短名单**:当您学习并尝试许多不同的算法时,您可以将新算法添加到您在采样实验中使用的算法套件中。当我发现一个特别强大的算法配置时,我喜欢将它概括并将其包含在我的套件中,使我的套件对下一个问题更加健壮。
开始构建用于抽查实验的算法套件。
## 十大算法
2008年发表了一篇题为“[数据挖掘前十大算法](http://scholar.google.com/scholar?q=Top+10+algorithms+in+data+mining)”的论文。谁可以通过这样的头衔?它也变成了一本书“[数据挖掘中的十大算法](http://www.amazon.com/dp/1420089641?tag=inspiredalgor-20)”,并启发了另一个“机器学习在行动”的结构。
2008 年发表了一篇题为“[数据挖掘前十大算法](http://scholar.google.com/scholar?q=Top+10+algorithms+in+data+mining)”的论文。谁可以通过这样的头衔?它也变成了一本书“[数据挖掘中的十大算法](http://www.amazon.com/dp/1420089641?tag=inspiredalgor-20)”,并启发了另一个“机器学习在行动”的结构。
[![Amazon Image](img/6ecaee515e4ac4c1906474d65ec2907e.jpg)](http://www.amazon.com/dp/1420089641?tag=inspiredalgor-20)
这可能是一篇很好的论文,可以帮助您快速启动算法的简短列表,以便对您的下一次机器学习问题进行抽查。本文列出的前10个数据挖掘算法是。
这可能是一篇很好的论文,可以帮助您快速启动算法的简短列表,以便对您的下一次机器学习问题进行抽查。本文列出的前 10 个数据挖掘算法是。
* C4.5这是一种决策树算法,包括着名的C5.0和ID3算法等后代方法。
* K均值。转向聚类算法。
* C4.5 这是一种决策树算法,包括着名的 C5.0 和 ID3 算法等后代方法。
* K 均值。转向聚类算法。
* 支持向量机。这真是一个巨大的研究领域。
* 先验。这是规则提取的首选算法。
* EM。随着k-means,go-to聚类算法。
* EM。随着 k-means,go-to 聚类算法。
* 网页排名。我很少接触基于图形的问题。
* AdaBoost的。这实际上是推动整体方法的一族。
* AdaBoost 的。这实际上是推动整体方法的一族。
* knn(k-最近邻居)。简单有效的基于实例的方法。
* 朴素贝叶斯。在数据上简单而稳健地使用贝叶斯定理。
* CART(分类和回归树)另一种基于树的方法。
关于这个主题还有一个[伟大的Quora问题,你可以挖掘算法的想法来试试你的问题。](http://www.quora.com/Machine-Learning/What-are-some-Machine-Learning-algorithms-that-you-should-always-have-a-strong-understanding-of-and-why)
关于这个主题还有一个[伟大的 Quora 问题,你可以挖掘算法的想法来试试你的问题。](http://www.quora.com/Machine-Learning/What-are-some-Machine-Learning-algorithms-that-you-should-always-have-a-strong-understanding-of-and-why)
## 资源
......
......@@ -33,7 +33,7 @@
您对随时间收集的客户,电压,价格等内容有所了解。
你也有一些与每次观察相关的结果,可能是“_好_”或“_坏_”这样的标签,或者像`50.1`这样的数量。
你也有一些与每次观察相关的结果,可能是“_ 好 _”或“_ 坏 _”这样的标签,或者像`50.1`这样的数量。
您想要解决的问题是,鉴于未来的新观察,最可能的相关结果是什么?
......
......@@ -88,7 +88,7 @@ model.add(Activation('sigmoid'))
* **二分类(2 级)**`Logistic` 激活函数或`sigmoid`激活函数和一个神经元输出层。
* **多元分类(>2 类)**:假设单热编码输出模式,`Softmax` 激活函数或`softmax`和每个神经元代表一个输出。
## 步骤2. 编译网络
## 步骤 2. 编译网络
一旦我们定义了网络,我们就必须编译它。
......@@ -136,7 +136,7 @@ model.compile(optimizer='sgd', loss='mse', metrics=['accuracy'])
一旦网络被编译完成之后,它就可以被拟合,这意味着需要在训练数据集上调整权重参数。
拟合网络需要指定训练数据,输入模式矩阵 X 和匹配输出模式数组Y。
拟合网络需要指定训练数据,输入模式矩阵 X 和匹配输出模式数组 Y。
使用反向传播算法训练网络,并根据编译模型时指定的优化算法和损失函数进行优化。
......@@ -152,7 +152,7 @@ history = model.fit(X, y, batch_size=10, epochs=100)
拟合后,将返回历史对象,该对象提供训练期间模型表现的摘要,这包括损失和编译模型过程中每个迭代所记录的的任何其他指标。
## 步骤4. 评估网络
## 步骤 4. 评估网络
一旦网络被训练完成,就可以对其进行评估。
......@@ -168,7 +168,7 @@ history = model.fit(X, y, batch_size=10, epochs=100)
loss, accuracy = model.evaluate(X, y)
```
## 步骤5. 做出预测
## 步骤 5. 做出预测
最后,一旦我们对拟合模型的表现感到满意,我们就可以用它来预测新的数据。
......
......@@ -8,9 +8,9 @@
您应该使用哪个库以及您应该关注哪些技术?
在这篇文章中,您将学习一个由 14个 部分组成的 Python 深度学习速成课程,其中包含易于使用且功能强大的 Keras 库。
在这篇文章中,您将学习一个由 14 个 部分组成的 Python 深度学习速成课程,其中包含易于使用且功能强大的 Keras 库。
这个迷你课程适用于已经熟悉 SciPy 生态学机器学习的Python机器学习从业者。
这个迷你课程适用于已经熟悉 SciPy 生态学机器学习的 Python 机器学习从业者。
让我们现在开始吧。
......@@ -40,7 +40,7 @@
这个迷你课程分为 14 个部分。
开发者每节课平均需要花费的时间大约是30分钟,课程中的一些知识也许可以很快的学完,而另一些知识则需要花费更多的时间以便于学习的更加深入。
开发者每节课平均需要花费的时间大约是 30 分钟,课程中的一些知识也许可以很快的学完,而另一些知识则需要花费更多的时间以便于学习的更加深入。
您可以根据自己的需要或快或慢的完成每个部分,强烈推荐您可以在两周的时间内每天花费一些的时间完成一节课的内容。
......@@ -98,7 +98,7 @@ b = tensor.dscalar()
# 创建一个简单的表达式
c = a + b
# 将表达式转换为可调用的对象
# 计算输入值并将其赋值给输出变量c
# 计算输入值并将其赋值给输出变量 c
f = theano.function([a,b], c)
result = f(1.5, 2.5)
......@@ -210,7 +210,7 @@ Keras 允许您在极少数代码行中开发和评估深度学习模型。
您可以[将 Pima Indians 数据集](https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data)下载到您当前的工作目录中,文件名为 _pima-indians-diabetes.csv_ (更新:[从这里下载](https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv)) 。
```py
# 利用keras创建第一个神经网络
# 利用 keras 创建第一个神经网络
from keras.models import Sequential
from keras.layers import Dense
import numpy
......@@ -238,7 +238,7 @@ print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
现在,根据此示例,您可以在利用不同数据集开发不同的模型或者继续调整此模型。
您可以在[Keras API更多信息](http://keras.io/models/sequential/)上了解有关用于简单模型开发的更多的知识。
您可以在[Keras API 更多信息](http://keras.io/models/sequential/)上了解有关用于简单模型开发的更多的知识。
## 第 06 课:使用 Scikit-Learn 的 Keras 模型
......@@ -255,7 +255,7 @@ Keras 提供了一个封装类,允许您使用 scikit-learn 的深度学习模
例如,您可以定义 KerasClassifier 的实例和自定义函数来创建模型,如下所示:
```py
# KerasClassifier类中创建模型的函数
# KerasClassifier 类中创建模型的函数
def create_model():
# 创建模型
model = Sequential()
......@@ -264,9 +264,9 @@ def create_model():
model.compile(...)
return model
# 使用scikit-learn创建分类器
# 使用 scikit-learn 创建分类器
model = KerasClassifier(build_fn=create_model, nb_epoch=150, batch_size=10)
# 在scikit-learn中使用10折交叉验证评估模型表现
# 在 scikit-learn 中使用 10 折交叉验证评估模型表现
kfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=seed)
results = cross_val_score(model, X, Y, cv=kfold)
```
......@@ -299,7 +299,7 @@ print(history.history.keys())
应用程序检查点是一种适用于长时间运行过程的容错技术。
Keras 库通过回调 API 提供检查点功能, ModelCheckpoint回调类允许您定义模型权重参数检查点的位置,文件命名规范和创建模型检查点的条件。
Keras 库通过回调 API 提供检查点功能, ModelCheckpoint 回调类允许您定义模型权重参数检查点的位置,文件命名规范和创建模型检查点的条件。
如果训练运行过早停止,则检查点可用于跟踪模型权重,也可以跟踪训练期间观察到的最佳模型。
......@@ -328,7 +328,7 @@ model.fit(..., callbacks=callbacks_list)
您可以使用 Dropout 层类将随机失活层添加到深度学习模型中。
在本课程中,您的目标是尝试在神经网络的不同节点添加随机dropout,并设置不同的dropout的概率值。
在本课程中,您的目标是尝试在神经网络的不同节点添加随机 dropout,并设置不同的 dropout 的概率值。
例如,您可以创建一个概率为 20%的随机失活层,并将其添加到您的模型中,如下所示:
......@@ -348,7 +348,7 @@ model.add(Dropout(0.2))
Keras 具有基于时间的学习率计划,该表内置于 SGD 类中的随机梯度下降算法的实现中。
构建类时,您可以指定衰减数量,即您的学习率(也是被指定的)每次迭代时减少的数量,当使用学习率衰减数量时,你应该指定您的初始学习率值并考虑增加一个大的动量值,如0.8或者0.9.
构建类时,您可以指定衰减数量,即您的学习率(也是被指定的)每次迭代时减少的数量,当使用学习率衰减数量时,你应该指定您的初始学习率值并考虑增加一个大的动量值,如 0.8 或者 0.9.
您在本课程中的目标是尝试 Keras 内置的基于时间的学习率计划。
......@@ -403,7 +403,7 @@ from keras.datasets import mnist
将文件下载到您的计算机可能需要一些时间。
>一个小提示:您 Keras [Conv2D](http://keras.io/layers/convolutional/) 作为您的第一个隐藏层,数据的格式为`通道 x 宽 x 高`的图像数据,其中 MNIST 数据集具有 1 个通道,因为图像是宽度和高度都是28像素的灰度级图像,您可以很容易的在代码中重新改变数据的格式,如下代码所示:
>一个小提示:您 Keras [Conv2D](http://keras.io/layers/convolutional/) 作为您的第一个隐藏层,数据的格式为`通道 x 宽 x 高`的图像数据,其中 MNIST 数据集具有 1 个通道,因为图像是宽度和高度都是 28 像素的灰度级图像,您可以很容易的在代码中重新改变数据的格式,如下代码所示:
```py
X_train = X_train.reshape(X_train.shape[0], 1, 28, 28)
......@@ -494,11 +494,11 @@ datagen = ImageDataGenerator(rotation_range=90)
datagen.fit(X_train)
# configure batch size and retrieve one batch of images
for X_batch, y_batch in datagen.flow(X_train, y_train, batch_size=9):
# 创建一个3×3的网格图像
# 创建一个 3×3 的网格图像
for i in range(0, 9):
pyplot.subplot(330 + 1 + i)
pyplot.imshow(X_batch[i].reshape(28, 28), cmap=pyplot.get_cmap('gray'))
# 显示突袭iang
# 显示突袭 iang
pyplot.show()
break
```
......
......@@ -91,11 +91,11 @@ encoded_Y = encoder.transform(Y)
我们将使用 scikit-learn 来使用分层 k 折交叉验证来评估模型,这是一种重采样技术,可以提供模型表现的估计。它通过将数据集分成 k 个部分来实现这一点,除了作为测试集的一部分用以评估模型的表现外,在其他所有训练数据上训练模型,该过程重复 k 次,并且所有构建的模型的平均分数被用作模型表现的稳健估计,因为它是分层的设计,这意味着它将查看输出值并尝试平衡属于数据 k 分裂中每个类的实例数。
要将 Keras 模型与 scikit-learn 一起使用,我们必须使用 KerasClassifier封装器。该类采用创建并返回神经网络模型的函数,将参数传递给 `fit()`调用,例如迭代数和批量大小。
要将 Keras 模型与 scikit-learn 一起使用,我们必须使用 KerasClassifier 封装器。该类采用创建并返回神经网络模型的函数,将参数传递给 `fit()`调用,例如迭代数和批量大小。
让我们从定义创建基线模型的函数开始,我们的模型将具有单个完全连接的隐藏层,其具有与输入变量相同数量的神经元,这是创建神经网络时的一个很好的默认起点。
使用较小的高斯随机数初始化权重参数,使用整流器激活函数,输出层包含单个神经元以做出预测,它使用 `sigmod()`激活函数,以产生 0 到 1 范围内的概率输出,可以轻松地转换为清晰的类值(如0和1)。
使用较小的高斯随机数初始化权重参数,使用整流器激活函数,输出层包含单个神经元以做出预测,它使用 `sigmod()`激活函数,以产生 0 到 1 范围内的概率输出,可以轻松地转换为清晰的类值(如 0 和 1)。
最后,我们在训练期间使用对数损失函数(binary_crossentropy),这是二分类问题的首选损失函数。该模型还使用高效的 Adam 优化算法进行梯度下降,并在训练模型时收集精度度量指标。
......@@ -113,7 +113,7 @@ def create_baseline():
现在可以在在 scikit-learn 框架中使用分层交叉验证来评估这个模型。
我们再次使用合理的默认值将训练时期的数量传递给 KerasClassifier,设定00模型将被创建 10 次以进行 10 次交叉验证,并且关闭详细输出选项(即参数`verbose = 0`)。
我们再次使用合理的默认值将训练时期的数量传递给 KerasClassifier,设定 00 模型将被创建 10 次以进行 10 次交叉验证,并且关闭详细输出选项(即参数`verbose = 0`)。
```py
# evaluate model with standardized dataset
......@@ -137,7 +137,7 @@ Baseline: 81.68% (7.26%)
神经网络模型尤其适用于在数据规模和分布方面具有一致性的输入值。
建立神经网络模型时表格数据的有效数据chuli1方案是标准化,这是重缩放数据,使得数据每个属性的平均值为 0,标准偏差为 1.这种处理方法保留了高斯和高斯类分布,同时规范了数据每个属性的中心趋势。
建立神经网络模型时表格数据的有效数据 chuli1 方案是标准化,这是重缩放数据,使得数据每个属性的平均值为 0,标准偏差为 1.这种处理方法保留了高斯和高斯类分布,同时规范了数据每个属性的中心趋势。
我们可以使用 scikit-learn 使用 [StandardScaler](http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html) 类来执行 Sonar 数据集的标准化。
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册