小编Amr*_*mro的帖子

在曲线上找到最佳权衡点

假设我有一些数据,我想在其上安装一个参数化模型.我的目标是为此模型参数找到最佳值.

我正在使用AIC/BIC/MDL类型的标准进行模型选择,这种标准可以奖励低误差的模型,但也会对高复杂度的模型进行惩罚(我们正在寻找对这些数据最简单但最有说服力的解释,可以这么说,奥卡姆的剃刀).

按照上面的说明,这是我得到的三种不同标准的例子(两个要最小化,一个要最大化):

AIC-BIC 适合

在视觉上你可以很容易地看到肘部形状,你会在该区域的某处选择一个参数值.问题是我正在为大量实验做这件事,我需要一种方法来找到这个值而不需要干预.

我的第一个直觉是尝试从角落以45度角绘制一条直线并继续移动它直到它与曲线相交,但这说起来容易做起来:)如果曲线有些偏斜,它也会错过感兴趣的区域.

关于如何实现这个或更好的想法的任何想法?

以下是重现上述一个图表所需的样本:

curve = [8.4663 8.3457 5.4507 5.3275 4.8305 4.7895 4.6889 4.6833 4.6819 4.6542 4.6501 4.6287 4.6162 4.585 4.5535 4.5134 4.474 4.4089 4.3797 4.3494 4.3268 4.3218 4.3206 4.3206 4.3203 4.2975 4.2864 4.2821 4.2544 4.2288 4.2281 4.2265 4.2226 4.2206 4.2146 4.2144 4.2114 4.1923 4.19 4.1894 4.1785 4.178 4.1694 4.1694 4.1694 4.1556 4.1498 4.1498 4.1357 4.1222 4.1222 4.1217 4.1192 4.1178 4.1139 4.1135 4.1125 4.1035 4.1025 4.1023 4.0971 4.0969 4.0915 …
Run Code Online (Sandbox Code Playgroud)

algorithm matlab data-modeling model-fitting

47
推荐指数
6
解决办法
2万
查看次数

如何以编程方式设置文档字符串?

我有一个返回函数的包装函数.有没有办法以编程方式设置返回函数的docstring?如果我可以写信,__doc__我会做以下事情:

def wrapper(a):
    def add_something(b):
       return a + b
    add_something.__doc__ = 'Adds ' + str(a) + ' to `b`'
    return add_something
Run Code Online (Sandbox Code Playgroud)

然后我就能做到

>>> add_three = wrapper(3)
>>> add_three.__doc__
'Adds 3 to `b`
Run Code Online (Sandbox Code Playgroud)

但是,由于__doc__是只读的,我不能这样做.什么是正确的方法?


编辑:好的,我想保持这个简单,但当然这不是我真正想要做的.虽然一般来说__doc__在我的情况下是可写的但事实并非如此.

我正在尝试unittest自动创建测试用例.我有一个包装函数,它创建一个类对象,它是以下的子类unittest.TestCase:

import unittest
def makeTestCase(filename, my_func):
    class ATest(unittest.TestCase):
        def testSomething(self):
            # Running test in here with data in filename and function my_func
            data  = loadmat(filename)
            result = my_func(data)
            self.assertTrue(result > 0)

    return ATest
Run Code Online (Sandbox Code Playgroud)

如果我创建这个类并尝试设置docstring testSomething我得到一个错误: …

python docstring

45
推荐指数
5
解决办法
2万
查看次数

群集环境中的单例

将Singleton对象重构为集群环境的最佳策略是什么?

我们使用Singleton从Database中缓存一些自定义信息.它主要是只读的,但在某些特定事件发生时会刷新.

现在我们的应用程序需要部署在集群环境中.根据定义,每个JVM都有自己的Singleton实例.因此,当在单个节点上发生刷新事件并刷新其缓存时,缓存可能在JVM之间不同步.

保持缓存同步的最佳方法是什么?

谢谢.

编辑:缓存主要用于向UI提供自动完成列表(性能原因),我们使用Websphere.所以任何与Websphere相关的技巧都欢迎.

java websphere singleton cluster-computing

43
推荐指数
3
解决办法
4万
查看次数

从Python到MATLAB的矩阵

我现在正在使用Python和MATLAB,我在Python中有一个2D数组,我需要将其写入文件,然后能够将其作为矩阵读入MATLAB.关于如何做到这一点的任何想法?

谢谢!

python import file-io matlab matrix

42
推荐指数
5
解决办法
6万
查看次数

如何将相关矩阵可视化为Matlab中的模式球

我有42个变量,我在Matlab中为它们计算了相关矩阵.现在我想用一个模式球来形象化它.有没有人有任何建议/经验如何在Matlab中完成?以下图片将更好地解释我的观点:

SCHEMABALL

在此输入图像描述

在图片中,变量之间的每个抛物线将意味着它们之间的相关强度.线越粗,相关性越大.我比图2中的风格更喜欢图片1的风格,在那里我使用了不同的颜色来突出相关的强度.

matlab plot visualization correlation graph-visualization

42
推荐指数
3
解决办法
1万
查看次数

40
推荐指数
3
解决办法
14万
查看次数

MATLAB,填充两组数据之间的区域,一行中的线条

我有一个关于使用该area功能的问题; 或者也许是另一个功能......我从一个大文本文件中创建了这个图:

http://img818.imageshack.us/img818/9519/iwantthisareafilledin.jpg

绿色和蓝色代表两个不同的文件.我想要做的是分别填写红线和每次运行之间的区域.我可以用类似的想法创建一个区域图,但是当我在同一个图上绘制它们时,它们没有正确重叠.基本上,一个数字上有4个图.

我希望这是有道理的.

matlab plot area fill

40
推荐指数
4
解决办法
16万
查看次数

钳制实际(固定/浮点)值的最快方法?

是否有一种比使用if语句或三元运算符更有效的方法来钳制实数?我想为双打和32位修复点实现(16.16)做到这一点.我不是要求代码可以处理这两种情况; 它们将在不同的功能中处理.

显然,我可以这样做:

double clampedA;
double a = calculate();
clampedA = a > MY_MAX ? MY_MAX : a;
clampedA = a < MY_MIN ? MY_MIN : a;
Run Code Online (Sandbox Code Playgroud)

要么

double a = calculate();
double clampedA = a;
if(clampedA > MY_MAX)
    clampedA = MY_MAX;
else if(clampedA < MY_MIN)
    clampedA = MY_MIN;
Run Code Online (Sandbox Code Playgroud)

fixpoint版本将使用函数/宏进行比较.

这是在代码的性能关键部分完成的,所以我正在寻找一种尽可能有效的方法(我怀疑它会涉及位操作)

编辑:它必须是标准/便携式C,平台特定的功能在这里没有任何兴趣.此外,MY_MINMY_MAX我想要钳制的值相同(在上面的例子中加倍).

c numbers bit-manipulation clamp

37
推荐指数
7
解决办法
4万
查看次数

如何在MATLAB中生成函数依赖项列表?

为了分发我编写的函数,它依赖于我编写的其他函数,它们有自己的依赖关系等等而不分发我写过的每个m文件,我需要弄清楚依赖项的完整列表是什么对于给定的m文件.是否有内置/可免费下载的方式来做到这一点?

具体来说,我对MATLAB 7.4.0(R2007a)的解决方案感兴趣,但如果在旧版本中有不同的方法,请务必在此处添加.

matlab dependencies code-analysis function

36
推荐指数
2
解决办法
2万
查看次数

如何在脚本/函数中检查已安装的MATLAB工具箱?

如何在脚本/函数中检查已安装的MATLAB工具箱?(检查工具箱版本也会很好!)当有人试图在没有必需工具箱的情况下运行脚本时,这可以提供快速有用的错误消息.

想到的一个快速的,虽然粗略的解决方案是解析ver命令的文本输出.我想知道是否有更好的方法.

一些快速搜索显示ver product或参数的license功能'test'可能是有用的,但我找不到工具箱名称(即.'Image Processing Toolbox')到产品名称(即.'control')或功能名称(即.image_toolbox)的映射.

此外,当我跑步时license('inuse'),我只收到以下内容:

>> a = license('inuse'); a

a = 

    feature: 'matlab'
       user: <username>

我希望有一个我可以访问的许多工具箱的列表.

试图通过尽早测试同事脚本来提出这个问题.不幸的是,它需要我目前缺乏的图像处理工具箱.一个有用的错误消息将节省时间来尝试诊断问题.现在我将在测试之前等待编译版本.

matlab

34
推荐指数
3
解决办法
9万
查看次数