小编Rom*_*ain的帖子

内核密度得分VS score_samples python scikit

我现在使用scikit learn和python几天,特别是KernelDensity.一旦模型拟合,我想评估新点的概率.方法得分()是为此而做的,但显然不起作用,因为当我输入数组时,条目1数字是输出.我使用score_samples()但它很慢.

我认为这个分数不起作用,但我没有技能可以帮助它.如果您有任何想法,请告诉我

python kernel-density scikit-learn

7
推荐指数
2
解决办法
2843
查看次数

实现XGboost自定义目标函数

我正在尝试使用XGboost实现自定义目标函数(在R中,但我也使用python,因此任何有关python的反馈也很好).

我创建了一个函数,吐出渐变和粗麻布(它正常工作),但当我尝试运行xgb.train然后它不起作用.然后我决定按照这个特定的顺序打印每一轮的预测,渐变和粗麻布.这是输出(只要我让它运行就会不断重复):

[1] 0 0 0 0 0 0 0 0 0 0

[1] -0.034106908 -0.017049339 -0.034106908 -0.034106908 -0.034106908 -0.034106908 -0.034106908 -0.004256162 -0.034106908 -0.008520554

[1] 0.003836107 0.004272548 0.003836107 0.003836107 0.003836107 0.003836107 0.003836107 0.004408935 0.003836107 0.004381​​658

[0]训练得分:0 val-score:0

[1] 0 0 0 0 0 0 0 0 0 0

[1] -0.034106908 -0.017049339 -0.034106908 -0.034106908 -0.034106908 -0.034106908 -0.034106908 -0.004256162 -0.034106908 -0.008520554

[1] 0.003836107 0.004272548 0.003836107 0.003836107 0.003836107 0.003836107 0.003836107 0.004408935 0.003836107 0.004381​​658

[1]训练得分:0 val-score:0

我们可以看到,即使渐变和粗麻布似乎没问题,每一轮的预测也不会改变!我不明白为什么会这样.如果有人遇到同样的问题或有想法请分享.

我使用的代码如下,但我认为它不是很有用:

reg <- xgb.train(data        = xgb.DMatrix(data.matrix(train[1:10,feature.names]),label=train$Response[1:10]),
             nrounds …
Run Code Online (Sandbox Code Playgroud)

python r xgboost

6
推荐指数
0
解决办法
1320
查看次数

python速度处理每行VS块

我试图在一个巨大的文件上执行非常简单的计算,例如计算某些列的标签数量或其他列的平均值和标准偏差.该文件太大,无法容纳在内存中,我目前正在每行处理它:

unique = {key: [] for key in categorical_keys}
means = {key: 0.0 for key in numerical_keys}
sds = {key: 0.0 for key in numerical_keys}
with open('input/train.csv', 'r') as read_file:
    reader = csv.DictReader(read_file, delimiter=',', quotechar='|')
    for i, row in enumerate(reader):
        for key, value in row.iteritems():
            if key in categorical_keys:
                if row[key] not in unique[key]:
                    unique[key].extend([value])
            elif key in numerical_keys:
                if value:
                    means[key] = (means[key]*i + float(value))/(i+1)
                    if i > 1:
                        sds[key] = (sds[key]*(i-1) + (float(value)-means[key])**2)/i
Run Code Online (Sandbox Code Playgroud)

现在这似乎太慢了,我想知道是否可以更快地处理它可以适合内存的块.会更快吗?如果是,为什么?

谢谢你的帮助.

python performance chunks

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

标签 统计

python ×3

chunks ×1

kernel-density ×1

performance ×1

r ×1

scikit-learn ×1

xgboost ×1