因果关系库。

cause-effect的Python项目详细描述


http://ci.appveyor.com/api/projects/status/m0f9fw5b670whkw8?svg=true

安装它

您可以通过以下方式安装cause_effect

$ pip install cause_effect

或者,您可以直接从代码库安装:

$ pip install hg+http://bitbucket.org/hyllos/cause_effect

核心功能

pareto(values)
数字列表是否存在pareto分布(ratio<;=1)?
mccauses(values)
哪些原因具有最高浓度(秩*值)?
mceffects(values)
哪个效应的浓度最高?
separator(values)`
最高浓度从哪个值(包括)开始?
causes(values, effects=0.8)
确定特定影响份额的原因。
effects(values, causes=0.2)
确定特定部分原因的影响。

次要功能

ratio(values)
entropy除以control_limit
entropy(values)
计算值的熵。
control_limit(count)
计算count个元素(长度values)的控制熵。

三级函数

make_causes(count)
返回原因列表,该列表是元素数量的累积百分比count
make_effects(values)
返回值累积百分比的效果列表。
make_concentration(values)
返回排名*值的values列表的浓度列表。
sort_list(values)
返回已排序的号码列表。

参数

values是一个数字列表。 effectscauses必须是介于0和1(包括)之间的数字。 countvalues列表的长度

使用它

函数pareto告诉您数字列表是否存在pareto分布:

fromparetoimportpareto,mccauses,mceffectspareto([789,621,109,65,45,30,27,15,12,9])True

这里,我们有一个帕累托分布。 那是少数人造成的大多数影响。

但是哪个少数人导致哪个多数人呢?

mccauses([789,621,109,65,45,30,27,15,12,9])0.2mceffects([789,621,109,65,45,30,27,15,12,9])0.818815331010453

20%的原因影响82%的结果。

但是那20%是多少呢?

separator([789,621,109,65,45,30,27,15,12,9])621

所有大于或等于621的值都是导致82%结果的20%。

就这样。

深入挖掘

只有90%的效果需要多少原因?

fromparetoimportcauses,effectscauses([789,621,109,65,45,30,27,15,12,9],0.9)0.4

40%

只有10%的原因背后有多少影响?

effects([789,621,109,65,45,30,27,15,12,9],0.1)0.458

45.8%。

它是如何工作的?

pareto计算效果列表的entropy

fromparetoimportentropy,control_limit,ratioentropy([789,621,109,65,45,30,27,15,12,9])1.9593816735406657

它计算由10个元素组成的控制组的熵。这是我们名单的长度。

control_limit(10)2.7709505944546686

然后检查entropy是否小于或等于control_limit

这可以简化为:

values=[789,621,109,65,45,30,27,15,12,9]entropy(values)/control_limit(len(values))<=1

比较的左侧由ratio完成。 因此,如果您想了解您离p are to分布有多远或多远,请执行以下操作:

ratio([109,65,45,30,27,15,12,9])1.051

如果删除前两个效果,值将超过control_limit。 因此,我们在这里了解到帕累托分布在前两种效应下消失了

mccausesmceffects返回浓度(秩*值)最高的原因和影响的各自份额。

历史

0.2.0(2016年10月21日)

  • 添加函数分隔符()。
  • 简化测试

0.1.0(2016年10月20日)

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
在ElasticSearch中将SearchHit转换为Java对象   第三方库类的java重写XmlAdapter   java如何使用动画类获得平滑的动画效果?   Java PDFBox如果文本内容超过PDF的第一页,如何添加新页面?   Java二叉搜索树u根到最近叶的距离   java什么是diff Scanner和BufferedReader   java如何设计不生成并行数组的程序   java多次声明变量会降低执行速度吗?   java如何使用JXLAPI读取下拉列表的值   多线程为什么自定义阻塞队列在Java中不是线程安全的   java在一个变量中每输入1000个单位,就从另一个变量中减去1?   java Mapstruct通用映射器   Java中的类能否确定它是否已被修改?   java如何在MogoOperations聚合函数中定义输出类型?