一个python库,用于构建不同类型的copula并使用它们进行采样。

copulas的Python项目详细描述


“Copulas”麻省理工学院从数据到人工智能实验室的开源项目。

copulas

概述

一个python库,用于构建不同类型的copulas并使用它们进行采样。

支持的copula

二元

  • 克莱顿
  • 弗兰克
  • 甘贝尔

可从copulas.bivariate.copulas.Copula

访问

多变量

可从copulas.multivariate.models.CopulaModel

访问

安装

使用pip

安装

安装copulas最简单的方法是使用pip

pip install copulas

从源安装

您还可以克隆存储库并从源安装它

git clone git@github.com:DAI-Lab/Copulas.git
cd Copulas
python setup.py install

数据要求

此软件包在数据完全干净的假设下工作,这意味着:

  • 没有丢失的值。
  • 所有值都是数值

用法

在这个库中,您可以对单变量分布建模,并从数字数据集中创建copula。 对于这个例子,我们将使用数据文件夹中的iris数据集。

创建单变量分布

首先,我们将从数据文件夹中检索数据并创建一个单变量分布。 对于本例,我们将创建正态分布。首先在上键入以下命令 python终端。

>>>fromcopulas.univariate.gaussianimportGaussianUnivariate>>>importpandasaspd>>>data=pd.read_csv('data/iris.data.csv')>>>data.head()feature_01feature_02feature_03feature_0405.13.51.40.214.93.01.40.224.73.21.30.234.63.11.50.245.03.61.40.2

一旦我们有了数据,我们就可以把它传给gaussianunivariate类。

>>>feature1=data['feature_01']>>>gu=GaussianUnivariate()>>>gu.fit(feature1)>>>print(gu)DistributionType:GaussianVariablename:feature_01Mean:5.843333333333334Standarddeviation:0.8253012917851409

一旦你适应了这个分布,你就可以得到数据点的pdf或cdf,并且你可以取样 从发行版。

>>>gu.probability_density(5)0.2867858505472377>>>gu.cumulative_distribution(5)0.15342617720079227>>>gu.sample(1)array([6.14745446])

创建高斯copula

当您有一个数字数据表时,还可以创建一个copula并使用它从 多元分布。在这个例子中,我们将使用高斯copula。

>>>fromcopulas.multivariate.gaussianimportGaussianMultivariate>>>gc=GaussianMultivariate()>>>gc.fit(data)>>>print(gc)feature_01===============DistributionType:GaussianVariablename:feature_01Mean:5.843333333333334Standarddeviation:0.8253012917851409feature_02===============DistributionType:GaussianVariablename:feature_02Mean:3.0540000000000003Standarddeviation:0.4321465800705435feature_03===============DistributionType:GaussianVariablename:feature_03Mean:3.758666666666666Standarddeviation:1.7585291834055212feature_04===============DistributionType:GaussianVariablename:feature_04Mean:1.1986666666666668Standarddeviation:0.7606126185881716Covariancematrix:[[1.269355360.649877280.94166734...-0.57458312-0.14548004-0.43589371][0.649877280.333020680.4849735...-0.29401609-0.06772633-0.21867228][0.941667340.48497350.72674568...-0.42778472-0.04608618-0.27836438]...[-0.57458312-0.29401609-0.42778472...0.27086850.07860540.19208669][-0.14548004-0.06772633-0.04608618...0.07860540.176685620.14455133][-0.43589371-0.21867228-0.27836438...0.192086690.144551330.22229033]]

一旦你安装了copula,你就可以从中提取样本。

gc.sample(5)feature_01feature_02feature_03feature_0405.5296102.9669473.1628910.97426015.7088273.0110783.4078121.14980324.6237952.7122841.2831940.21379635.9526883.0862594.0882191.38252345.3602562.9209292.8447290.826919

历史记录

0.2.1-vine序列化

  • 将序列化添加到vine copulas。
  • 添加distribution作为高斯copula的参数。
  • 改进二元copulas码结构,消除码重复。
  • 修复vine copulas采样中的错误:“edge”对象没有属性“index”
  • 改进代码文档。
  • 改进代码样式和linting工具配置。

0.2.0-统一API

  • stats方法的新api。
  • 标准化输入和输出到numpy.ndarray
  • 将unittest覆盖率提高到90%。
  • 添加方法以加载/保存copula。
  • 提高高斯copula采样精度。

0.1.1-小改进

  • 在子类中分隔的不同copula类型
  • 广泛的单元测试
  • 公共api中有更多的pythonic名称。
  • 停止使用即将被否决的第三方元素。
  • 添加方法以对二元copulas上的新数据进行采样。
  • 新的kde单变量copula
  • 用额外的演示数据改进了示例。

0.1.0-首次发布

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript问题:通过URL用网站数据填充Textview   java TabLayout Android,如何用几个标签填充整个屏幕宽度,并用大量标签滚动?   Eclipse Java运行的文件不再存在于我的工作区中   安装两个Java版本时,使用Java的windows链接不起作用   java将多个图形添加到单个JPanel   java Kafka ConsumerFactory,带有两个Desiarizer   使用反射更改java类超类   当一致性测试失败时,java有没有办法让堆栈跟踪显示在控制台中   java映射到基元类型的HashMap的快速替代方案是什么?   java关闭一个jframe所有剩余的打开jframe都将关闭。   java为什么不推荐“使用getString()获取设备标识符”?   java值比较和值赋值之间有什么性能差异吗?   Java实体数组到JavaScript数组   java使用流将一个列表转换为另一个列表   在JTree中保存对象,但更改显示的名称(java swing)?   java“Hello world”Android应用程序,文件尽可能少,没有IDE,只有文本编辑器   java在方法之间传递值   java如何为项目数组创建ParseQuery?