小编use*_*021的帖子

R生成所有可能的交互变量

我有一个带变量的数据框,比如a,b,c,d

dat <- data.frame(a=runif(1e5), b=runif(1e5), c=runif(1e5), d=runif(1e5))
Run Code Online (Sandbox Code Playgroud)

并希望在每列之间生成所有可能的双向交互项,即:ab,ac,ad,bc,bd,cd.实际上我的数据框有超过100列,所以我不能手动编码.什么是最有效的方法(注意我不想要b和b a)?

statistics r

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

无法在Excel中导入xlwings函数

我使用pip 安装了xlwings python包,然后使用此处记录的步骤安装了Excel加载项.但是,当我尝试打开一个.xlsm文件,然后从标题相同的.py文件中导入python函数时,我在Excel中收到以下弹出错误消息:

在此输入图像描述

我已经尝试重新安装xlwings无济于事,除了这个未答复的帖子之外,没有找到任何针对此错误消息的帮助.这个github页面代码表明当抛出此错误消息时

在配置中指定了[not]命令

但我不确定这意味着什么,或者如何修复它.感谢任何帮助 - 谢谢!

我的python和xlwings版本详细信息如下:

Python版本:3.6.1 | Anaconda自定义(64位)| (默认,2017年5月11日,13:25:24)[MSC v.1900 64 bit(AMD64)]

xlwings版本:0.11.5-py36_0

python excel vba excel-vba python-3.x xlwings

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

测试列名是否包含R中的字符串

我试图测试我的数据框中的每个列名是否包含特定的字符串(在本例中为"Fld".我的下面的尝试不是编译,我不知道我哪里出错.任何帮助都会是赞赏.

varnames <-colnames(data)
for (i in 1:len(varnames)){
  if grepl("Fld",varnames[i])==TRUE {
    print varnames[i]
  }
}
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
8985
查看次数

python中lightGBM的自定义多类对数损失函数返回错误

我正在尝试使用自定义目标函数实现 lightGBM 分类器。我的目标数据有四类,我的数据被分成 12 个观察值的自然组。

自定义目标函数实现两件事:

  1. 预测的模型输出必须是概率性的,并且每次观察的概率之和必须为 1。这也称为 softmax 目标函数,实现起来相对简单
  2. 在每个组中,每个类别的概率总和必须为 1。这已在二项式分类空间中实现,被称为条件 logit 模型。

总之,对于每组(在我的情况下为 4 个观察值),每列和每行的概率总和应为 1。我编写了一个稍微有点hacky的函数来实现这一点,但是当我尝试在python的xgb框架内运行我的自定义目标函数时,出现以下错误:

类型错误:无法解包不可迭代的 numpy.float64 对象

我的完整代码如下:

import lightgbm as lgb
import numpy as np
import pandas as pd

def standardiseProbs(preds, groupSize, eta = 0.1, maxIter = 100):

    # add groupId to preds dataframe
    n = preds.shape[0]
    if n % groupSize != 0:
        print('The selected group size paramter is not compatible with the data')
    preds['groupId'] = np.repeat(np.arange(0, int(n/groupSize)), groupSize)

    #initialise variables
    error = 10000
    i …
Run Code Online (Sandbox Code Playgroud)

python machine-learning data-science lightgbm

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

生成R中所有列的日志转换

我的数据框中有100个非负列,并希望在R中创建每个非负列的日志转换。如何实现此目的?理想情况下,我想保留原始变量名称,并将后缀“ _log”附加到新变量中。

r

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

生成Stata +交互中所有连续变量的对数转换

我正在尝试foreach在Stata中编写一个循环,它将自动生成数据集中所有连续变量的日志转换(排除字符串,二进制变量).我试过的代码似乎不起作用如下:

qui foreach v of varlist _all {
    gen 'v' = log(v)
}
Run Code Online (Sandbox Code Playgroud)

另外,我想编写一个循环,它将生成所有可能的交互项排列,但我不知道如何处理这个问题.

statistics stata

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