今天的帖子是我们的第五篇系列博客文章关于BigMbeplay2网页登陆L主成分分析(PCA)的独特实现,是添加到我们平台的最新资源。PCA是数据准备阶段的不同类型的任务,如CRISP-DM方法,这意味着在现有数据集的基础上创建一个新数据集。
正如BigML中提到的beplay2网页登陆先前版本,数据准备是任何机器学习项目的关键部分,在这些项目中,通常需要大量操作才能充分利用数据。现在,将PCA引入BigML仪表板、API以及用于自动化的WhizzML和绑定,您将能够转换数据,这一次,通过减少简化数据集中的某些功能。让我们深入了解如何使用beplay2网页登陆嗖嗖和我们的Python绑定.如果您是WhizzML的新手,并想开始自动化您自己的机器学习工作流程,我们邀请您阅读这篇博文开始吧。
创建PCA
首先,我们将从现有数据集创建PCA。我们假设我们希望减少此数据集的功能数量,将其从原始形式转换为具有较少维度的另一种形式。不在配置中指定任何参数的WhizzML代码如下所示:
;使用默认配置创建PCA(定义my-pca(创建pca {“数据集”“数据集/ 5 bcbd2b5421aa9560d000000”}))
使用BigML Python Bindings的等效代码是:beplay2网页登陆
从…起beplay2网页登陆bigml.api进口beplay2网页登陆应用程序编程接口=beplay2网页登陆()my_pca = api.create_pca (“数据集/ 5 bcbd2b5421aa9560d000000”)
这是从数据集创建PCA的最简单方法。但是用户可以根据需要配置一些参数。现在,让我们看看配置选项,以在创建PCA时替换缺少的数值:
;;创建PCA设置为默认数值(定义my-pca(创建pca {“数据集”“数据集/ 5 bcbd2b5421aa9560d000000”“默认数值”“中位数”}))
以及Python绑定中的等效代码:
从…起beplay2网页登陆bigml.api进口beplay2网页登陆应用程序编程接口=beplay2网页登陆()args={“默认数值”:“中位数”}my_pca = api.create_pca (“数据集/ 5 bcbd2b5421aa9560d000000”,args)
这是如何在PCA创建期间添加参数的一个简单示例。您可以类似地设置许多其他值,例如,新资源的名称。有关PCA配置可用参数的完整列表,请检查API文档.
创建新投影
我们已经了解了PCA是如何将数据从一个空间转换到另一个空间的,这就是我们谈论“投影”的原因。因此,假设我们有一组输入,我们希望将PCA的结果应用于它们。按照正确的语法,我们的数据集应作为input_data
,它是一个在WhizzML中具有字段id和值对的对象。
;;为输入数据创建一个投影定义我的投影(创建投影{“pca”“pca/5BCD2B5421AA9560D000001”“input_data”{“000000”3.“000001”“伦敦”}))
Python绑定的等效代码传递一个字典,其中键是字段ID(或字段名),值是字段的值。
从…起beplay2网页登陆bigml.api进口beplay2网页登陆应用程序编程接口=beplay2网页登陆()输入_数据={“000000”:3.,“0000001”:“伦敦”}my_projection=api.create_projection(“pca/5BBD2B5421AA9560D000001”,input_data)
创建批处理的预测
一旦您创建了PCA,您很可能希望将我们在上面示例中已经应用的相同转换应用于不同的数据-不仅应用于一个实例,还应用于一组数据。这就是我们所称的批处理投影。要创建这样的调用,至少需要两个强制参数:以前使用的PCA创建并创建我们要投影的数据集。
;创建一组新数据的投影define my-batchprojection(创建批量投影){“pca”“主成分分析/ 5 bcbd2b5421aa9560d000001”“数据集”“数据集/5BBD2B5421AA9560D000003”}))
Python绑定的等效代码为:
从…起beplay2网页登陆bigml.api进口beplay2网页登陆应用程序编程接口=beplay2网页登陆() my_pca =“pca/5BBD2B5421AA9560D000001”我的新数据集=“数据集/5BBD2B5421AA9560D000003”my_batch_projection = api.create_batch_projection (我的妈妈,my_new_dataset)
我们示例的结果将包含原始数据集和投影主成分的所有字段作为特征。用户还可以更改并进一步使其适应API调用的输出。请检查API文档查看可用的选项。
那么降维呢?
PCA允许您通过创建新特性来减少数据集中的维数,这些新特性可以最好地描述数据中的方差。该算法生成了许多保持原始数据集维数的主成分,并根据原始数据的方差解释百分比方便地对新特征进行排序。有了这些信息,我们可以选择消除一部分Principal Component字段,以减少功能的数量,同时保留最大数量的有用信息。
为了帮助您做到这一点,有两个关键参数允许您选择要在新映射空间中使用多少PCA组件。这些参数是:
max_components
表示要在新数据集中使用的组件的整数个数方差阈值
确定要在新空间中捕获的原始数据集中总方差的百分比。
例如,让我们假设你想解释至少90%的数据方差与组件。WhizzML代码如下:
创建一个可以解释90%方差的投影define my-batchprojection(创建批量投影){“pca”/ 5 bcbd2b5421aa9560d000001”“数据集”“数据集/5BCD2B5421AA9560D000003”“variance_threshold”0.9}))
另一方面,如果我们使用Python Bindings来编写这个创建,等效的代码将是:
从…起beplay2网页登陆bigml.api进口beplay2网页登陆应用程序编程接口=beplay2网页登陆() my_pca =“pca/5BBD2B5421AA9560D000001”我的新数据集=“数据集/5BBD2B5421AA9560D000003”args={“variance_threshold”:0.9}my_batch_projection = api.create_batch_projection (我的妈妈,my_new_dataset, arg游戏)
这两个参数是最重要的参数,但还有许多其他参数可用于创建批处理投影。请查看完整列表在这里.
最后,请随意查看绑定集BigMLbeplay2网页登陆为最流行的编程语言,如Java或Node.js提供的。
想了解更多关于PCA的信息吗?
如果您有任何问题或您想了解更多关于PCA如何工作,请访问发布页面并为即将到来的关于主成分分析的网络研讨会预留场地2018年12月20日,星期四.出席是免费的,但空间有限,所以赶快登记!
一句话