小编Wil*_*amp的帖子

在64位python上训练的Scikits-Learn RandomForrest不会在32位python上打开

我在64位python上训练一个RandomForestRegressor模型.我挑选了这个物体.当试图在32位python上取消对象时,我得到以下错误:

'ValueError:缓冲区dtype不匹配,预期'SIZE_t'但得到'long long''

我真的不知道如何解决这个问题,所以任何帮助都会非常感激.

编辑:更多细节

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\python27\lib\pickle.py", line 1378, in load
    return Unpickler(file).load()
  File "c:\python27\lib\pickle.py", line 858, in load
    dispatch[key](self)
  File "c:\python27\lib\pickle.py", line 1133, in load_reduce
    value = func(*args)
  File "_tree.pyx", line 1282, in sklearn.tree._tree.Tree.__cinit__ (sklearn\tre
e\_tree.c:10389)
Run Code Online (Sandbox Code Playgroud)

machine-learning scikit-learn

13
推荐指数
1
解决办法
7280
查看次数

如何加快GLM估算?

我在Amazon EC2上使用RStudio 0.97.320(R 2.15.3).我的数据框有200k行和12列.

我试图用大约1500个参数拟合逻辑回归.

R使用7%的CPU并且具有60 + GB内存并且仍然需要很长时间.

这是代码:

glm.1.2 <- glm(formula = Y ~ factor(X1) * log(X2) * (X3 + X4 * (X5 + I(X5^2)) * (X8 + I(X8^2)) + ((X6 + I(X6^2)) * factor(X7))), 
  family = binomial(logit), data = df[1:150000,])
Run Code Online (Sandbox Code Playgroud)

有什么建议可以加快这一速度吗?

performance r bigdata

10
推荐指数
3
解决办法
8416
查看次数

估计glmnet中的许多交互术语

据我所知,glmnet采用矩阵,其中每列是一个解释变量.

我有一个包含~10个解释变量的数据框(其中一些是因素)

我怎么能得到y~(x1*x2*x3)+(x4*x5)+ x6这样的公式并使用glmnet估计这个?

我相信我必须创建一个矩阵,其中每个交互项都有自己的列,但我不知道如何简单地将输入公式和变量(其中一些是因子),并获得输出一个我可以轻松放入的矩阵glmnet.

r formula glmnet

6
推荐指数
1
解决办法
5210
查看次数

Python - 保存除大属性外的整个类对象

我有一个我想保存的对象,但它的一个属性非常大,不需要保存。除了一个属性之外,我如何保存对象。以下是我目前的解决方案。

class Example(object):
    def __init__(self):
        self.attribute_one = 1
        self.attribute_two = 'blah blah'
        ...
        self.attribute_large = very_large_object

save_this_except_attribute_large = Example() 
Run Code Online (Sandbox Code Playgroud)

一种可能的解决方案是

def save_example(example):
    save_this = copy.deepcopy(example)
    save_this.attribute_large = None
    pickle.dump(save_this,open('save_path','w'))
Run Code Online (Sandbox Code Playgroud)

除了上述解决方案的内存效率不高,因为在我们将其中一个设置为 None 之前,我们将在内存中有 2 个 attribute_large。

有什么建议

python serialization save python-2.7 python-3.x

2
推荐指数
1
解决办法
182
查看次数

Pythonic初始化函数参数的方法

哪个更pythonic?

一个

def my_function(arg, p=0):
    while arg:
        # do something
         value = arg.pop()
        # save value with a name which uses p for indexing
    p+=1
Run Code Online (Sandbox Code Playgroud)

或B.

def my_function(arg):
    p = 0
    while arg:
        # do something
        value = arg.pop()
        # save value with a name which uses p for indexing
    p+=1
Run Code Online (Sandbox Code Playgroud)

我认为它的一部分很愚蠢,包括p作为函数的参数,因为有人将它设置为一个奇怪的值.但与此同时,我不喜欢让p = 0混乱一个已经非常复杂的功能.

python coding-style function

0
推荐指数
1
解决办法
59
查看次数