李思晓又一个WordPress站点

浏览: 196

打造自动化数据科学家:新的分类和预测函数-现代科学计算软件Mathematica东宁记 █ 本文译自高级研究团队首席架构师Etienne Bernard 于2017年10月10日的博客


打造自动化数据科学家:新的分类和预测函数-现代科学计算软件Mathematica东宁记

█ 本文译自高级研究团队首席架构师Etienne Bernard 于2017年10月10日的博客文章:Building the Automated Data Scientist : The New Classify and Predict
自动化数据科学
想象一下,面包师将数据科学应用程序连接到他的数据库农家弃妃,并问:"我们下周日要卖出多少个羊角面包?" 应用程序将简单地回答:"根据您记录的数据和其他因素,如天气预报,有90%的机会,会卖出62到67个羊角面包。" 面包师可以相应地进行规划。这就是一个自动化数据科学家的例子,它其实是一个系统,你可以对其抛出任意数据并获得分析或预测。
将此变为现实的一个关键因素是学习预测模型的能力,而人类除了数据之外无需给出任何规范。在Wolfram 语言中,函数Classify和Predict就起着这样的作用。例如,让我们训练一个分类器,从美味齿菌(Hedgehog)中识别羊肚菌(Morel):

现在我们可以将得到的ClassifierFunction用于新的例子:


我们可以获得每种可能性的概率:

再举一个例子,我们来训练一个预测函数PredictorFunction来预测美国一些城市的月平均气温(https://datarepository.wolframcloud.com/resources/Sample-Data-US-City-Temperature):


同样,我们可以使用得到的函数进行预测:

我们可以获得预测的分布:

正如你所看到的,我们不需要告诉Classify和Predict变量是什么,要执行什么预处理或使用哪种算法丁柳雁,它们是自动化的函数。
Classify 和 Predict 的全新功能
Classify和Predict是大概三年前我们在Wolfram 语言第10版引入的,并且欣慰地看到它在各种环境中得以使用(我个人最喜欢的是跟宇航员、飞机和 Raspberry Pi 相关,详见 http://community.wolfram.com/groups/-/m/t/1179035)。在版本11.2中, 我们给两个函数做了完整的改造。最明显的更新是引入了一个信息面板,以便在训练期间得到反馈:

有了这个面板,我们可以监控当前最好的方法及当前的准确性,并且可以了解训练将持续多长时间——这在决定是否值得继续时非常有用柏吉尔! 如果要停止训练,有两种方式:可以通过"停止"按钮或直接中止运算来实现。在这两种情况下,Classify 和 Predict 到此前为止的最佳模式被返回(但是"停止" 中断更柔和:它等到当前训练结束时停止)。绊脚石的反义词
在分类器或预测器上使用ClassifierInformation和PredictorInformation时,将显示一个类似的面板:

我们尝试显示关于模型的有用信息,例如在测试集上的准确性、运算新示例所需时间及内存大小等。更重要的是,您可以在底部看到一条"学习曲线",显示作为用于训练的示例数的函数的损失值(一个尝试最小化的度量)。通过按左/右箭头,还可以查看其他曲线,例如作为训练样本数量的函数的准确度:

这类曲线有助于弄清楚是否需要更多的数据进行训练(例如当曲线趋于平稳时)夜欢凉 。我们希望对这些曲线的轻松访问可以简化建模工作流程(例如曙太郎,可能减少使用ClassifierMeasurements和PredictorMeasurements的需要)。
一项重要更新是TimeGoal选项的添加,它允许人们指定训练需要多长时间,例如:


TimeGoal的含义与TimeConstraint不同:它不是指定一个最大的时间量,而是一个实际上应该达到的目标。设置更高的时间目标 TimeGoal 可以让自动化系统尝试更多其他的东西,以便找到更好的模型。 我认为这将使得TimeGoal成为Classify和Predict最重要的选项(紧随其后是Method和PerformanceGoal选项)。
在方法方面奥克斯战争,也发生了一些变化。每个方法都有自己的文档页面("LogisticRegression"、"NearestNeighbors"等),它提供了通用信息,并允许高手使用各种介绍的选项。我们还添加了 两个新方法:"DecisionTree"和"GradientBoostedTrees",这是数据科学家的最爱。这是一个简单的预测实例:


主要更新
现在我们来看看版本11.2的主要更新,它不是直接可见的:我们重新实现了Classify和Predict确定最优方法和超参数的方式,对给定的数据集(在某种意义上,这是自动化的核心)。 对于有兴趣的朋友,我在这里简单解释下这个过程如何适用于Classify。
训练分类器需要使用某个方法(如"LogisticRegression"、"RandomForest"等),并且每个方法需要给出一些超参数(如"L2Regularization"或"NeighborsNumber")。自动化过程根据分类器(按配置进行训练)在测试集上的执行效果,以及分类器的内存有多快或多小,选出待用的最佳配置(即最佳方法+超参数)。在没有实际训练和测试的情况下,很难判断给定的配置是否表现良好。我们的程序思想是从多个我们认为可以表现良好的配置(比方说100个)开始,张葳葳 在小数据集上训练这些配置,并使用在这些"实验"中收集的信息,预测配置在完整数据集上的表现。预测并不完美,但它们有助于选出一组有前途的配置,在更大的数据集上训练现代修真录,从而收集更多信息(您可能会注意到这与Hyperband过程有一些相似)。这个操作不断重复,直到只有几个配置(有时甚至只有一个)在完整的数据集被训练益尔健收腹机。这是执行此操作的某些配置(每条曲线表示一个不同的配置)的损失函数的可视化:

正如你所看到的,许多配置在10和40个例子上进行了训练,其中只有几个在200个例子上训练,只有一个在800个例子上训练。我们发现,在基准中最终的配置通常是最佳的 (在初始配置集中存在的那些)。此外,由于对较小数据集的训练更快,所以整个过程所需的时间并不比在完整数据集上训练一个配置所需的时间长很多, 可以想象,这比在完整数据集上训练所有配置要快得多终不知车!
这种自动化策略除了比以前的版本快之外,也是前面所提到的一些新功能所必要的。例如,该过程直接生成模型性能和学习曲线的估计。此外,它还可以显示进度条,并快速生成有效的模型何晴近况,一旦按下停止按钮即可返回。最后,它可以根据可用时间量调整中间训练的次数,从而使得引入TimeGoal选项成为可能。
联系我们
最新版本中英文版Mathematica11.2.0已经发布,您可以通过以下链接来向我们申请最新版本免费试用:
http://www.newsciencecore.com/user/apply
对于想购买或升级的朋友也是有很大的优惠在等着您呢,快快行动吧!
010-82622887
Mathematica@sec.ac.cn

关于我们
中科院软件中心与美国Wolfram公司达成战略合作,我们深入研究Mathematica系列产品的特点及其在各个领域的应用,与Wolfram公司的专家共同制定有针对性的解决方案,推广Mathematica产品和相关技术,并且是国内第一个拥有Mathematica认证与培训资质的单位。
全文详见:https://p66p.cn/29867.html

TOP