Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在关系数据库中查找统计相关性_Python_Machine Learning_Data Mining_Statistics - Fatal编程技术网

Python 在关系数据库中查找统计相关性

Python 在关系数据库中查找统计相关性,python,machine-learning,data-mining,statistics,Python,Machine Learning,Data Mining,Statistics,我有一个大型SQL数据库,其中包含状态特征和奖励指标之间的关联。e、 g A ^ B ^ C ^ D ^ Action(E) => 0.1 F ^ G ^ W ^ D ^ Action(R,P,H) => 0.9 A ^ T ^ U ^ Y ^ Action(A,S) => 0.2 我的特征可能是离散的、连续的或名义上的。我试图找到一套规则或模式,可以用来最大化奖励指标。为了找到最强的统计相关性(最好是用Python编写的或可以从Python中访问),挖掘这些数据的最佳工具是

我有一个大型SQL数据库,其中包含状态特征和奖励指标之间的关联。e、 g

A ^ B ^ C ^ D ^ Action(E) => 0.1
F ^ G ^ W ^ D ^ Action(R,P,H) => 0.9
A ^ T ^ U ^ Y ^ Action(A,S) => 0.2

我的特征可能是离散的、连续的或名义上的。我试图找到一套规则或模式,可以用来最大化奖励指标。为了找到最强的统计相关性(最好是用Python编写的或可以从Python中访问),挖掘这些数据的最佳工具是什么?

有一系列成熟的技术,精确地针对您问题中提出的用例。考虑到实现这些技术的库的系谱和braod选择,甚至许多数据分析师都不知道它们

这类技术称为频繁项集(或频繁项集学习);还使用了术语关联规则和市场集分析,但后者不太常见。(顺便说一句,也许这些听起来含糊不清的名字导致了它们的相对默默无闻)

arules背景文档的第一句话(arules是一个实现关联规则的R包):

挖掘频繁项集和关联规则是一种流行而有效的方法 一种经过充分研究的方法,可以发现 大型数据集中的变量

分类上,AR/FI是一种无监督的机器学习技术,根据HTF,它是“碰撞搜索”或“模式发现”的简化

在任何情况下,这两个术语——单独使用或一起使用——都是Web搜索的最佳初始查询术语。你会发现这两个术语的维基百科条目;这是一个很好的高级概述,但对于程序员来说足够详细。所以这两个术语描述了技术;“Apriori”和“Eclat”是原始关联规则算法的两个最广泛使用的实现,该算法最初由IBM Almaden Research开发

要使用apriori,您需要传入希望算法测试关联的数据库字段;您还传递了一个阈值关联——也称为支持级别。我通常选择5%,然后朝一个方向或另一个方向调整它,直到得到我想要的规则数(支持级别越高,返回的规则越少)

apriori返回的是关联规则本身

如果您想要一个python库来执行AR/FI,那么这是我所知道的唯一一个(可能还有其他库)。(正如您可能知道的,Orange有一个GUI,但它有一个很好的python脚本接口)。我从未使用过Orange,但我只是简单地看了一下它的关联规则模块,它的实现似乎与我个人使用的AR库类似。我认为(用python编写的)代码非常好

我的建议可能是使用R绑定通过Python访问R对AR/FI的强大支持


R是唯一用于关联规则的语言/平台,我拥有相当数量的五个AR/FI库。对于我的第一个AR/FI项目,我选择R与AR/FI库的可用性或质量无关,而是与简单易用的关系数据库驱动程序(用于MySQL、PostgreSQL和SQLite)有关;现在,最常用的NoSQL事务数据库(如MongoDB和CouchDB)也有驱动程序/绑定。MySQL驱动程序/绑定允许我通过R连接到数据库,并将数据直接提供给apriori算法。

您的问题“试图找到一组可用于最大化奖励指标的规则或模式”听起来很像。如果在给定状态下执行操作后,您过渡到另一个新状态,并且您正在寻找最佳策略(即在状态x下采取什么操作),那么您的问题基本上就是强化学习。如果转移概率(如果我在状态x下做了一段时间的动作,那么转移到状态y的概率)是已知的,那么你可能想研究,如果你不知道转移概率,那么就研究。请注意,根据您的状态空间,您可能需要聪明地将强化学习扩展,但如果是4D,那么您可能就可以了。虽然我不知道用于强化学习的python实现,但应该有一个。您可能还想查看RL。

您已经查过PyBrain了吗?@Thomas,我对PyBrain有点熟悉,据我所知,它是一个通用的机器学习库和机器人控制框架。但是,我认为它没有任何SQL数据库支持,也没有大规模的统计分析功能。我弄错了吗?你认为它对这项任务有什么帮助?好吧,我会尝试使用PyBrain的机器学习功能,如果需要,可以在较小的数据集上使用,这可能会为你提供输入输出关系,然后你可以尝试通过这种方式最大化输出。我担心我帮不了什么忙。RL正是我正在做的,但是传统的RL算法在这些类型的大型统计领域非常糟糕。例如,我的域中的每个“状态”都可能是唯一的,这使得对文字转换统计数据进行建模毫无用处。因此,我必须做一些状态缩减…这基本上是我在问的。我有点不清楚你所说的“统计域”是什么意思,以及每个状态可能是唯一的是什么意思。如果你指的是状态空间,并且你的数据集只包含每个状态的一个样本,那么我认为为了建立转移概率,一个合理的尝试是学习一个序列模型,比如HMM,它可以用给定的数据进行推广。HMM将实现一个了解转换机制的状态约简。Ng博士稍后关于RL的讲座提到了几种处理高维状态空间的技术,这些技术可能很有用。