小编Dav*_*vid的帖子

KFolds Cross Validation vs train_test_split

I just built my first random forest classifier today and I am trying to improve its performance. I was reading about how cross-validation is important to avoid overfitting of data and hence obtain better results. I implemented StratifiedKFold using sklearn, however, surprisingly this approach resulted to be less accurate. I have read numerous posts suggesting that cross-validating is much more efficient than train_test_split.

Estimator:

rf = RandomForestClassifier(n_estimators=100, random_state=42)
Run Code Online (Sandbox Code Playgroud)

K-Fold:

ss = StratifiedKFold(n_splits=10, shuffle=True, random_state=42)
for train_index, test_index in …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn cross-validation

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

熊猫从组中获取列的第一个和最后一个值

嗨,我有dataframe多个包含相同ID的行。列之一是日期(升序)。我想计算第一个条目和最后一个条目之间的日期差。

我通过实例化pandas构造函数来做到这一点,如下所示:

g = df.groupby('ID')

print(pd.DataFrame({'first':g.Date.nth(0), 'last':g.Date.nth(-1)}))
Run Code Online (Sandbox Code Playgroud)

第一个值正确,但是最后一个值远不正确。

例如,对于特定ID,first dateis 2000-05-08last dateis是8/21/2010。输出结果为:

               first       last
ID                         
31965.0        2000-05-08  2002-12-29
Run Code Online (Sandbox Code Playgroud)

2002-12-29 在中间的某个地方。

样本数据:

ID  Date
31965   5/8/2000
31965   5/10/2000
31965   5/18/2000
31965   5/22/2000
31965   5/23/2000
31965   5/25/2000
31965   5/30/2000
31965   6/7/2000
31965   6/8/2000
31965   6/11/2000
31965   6/13/2000
.....
31965   4/11/2009
31965   5/9/2009
31965   5/16/2009
31965   5/23/2009
31965   2/5/2010
31965   2/26/2010
31965   3/13/2010
31965   4/10/2010
31965   8/21/2010
Run Code Online (Sandbox Code Playgroud)

我希望ID 31965的结果为:5/8/2000和8/21/2010,以便最终确定日期差。

python date dataframe pandas

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

在迭代中放置条件语句是一种不好的做法吗?

因此,让我们考虑存在以下代码段的情况:

if(x == 0)
{
     for(var i = 0; i < 5; ++ i)
     {
         //do something  
     }
}
else
{
   for(var i = 0; i < 5; ++ i)
     {
         //do something different
     }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,这两个条件都遍历相同的 for 循环,但会根据条件执行不同的操作。我的问题是,有这样的事情是不是不好的做法:

for(var i = 0; i < 5; ++ i)
{
     if(x == 0){
       // do something
     }else{
        // do something else
     }
}
Run Code Online (Sandbox Code Playgroud)

原因是我认为这可能是一个不好的做法是因为对于循环的每个实例,都会针对第一个片段执行条件检查,首先检查条件然后执行循环. 我错了吗?

performance loops if-statement

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

C中格式字符串未使用的数据参数

所有printf语句都出错,说明:

格式字符串不使用数据争论.

我在互联网上环顾四周,发现了一些相关的事情,但是我并没有完全理解这个解决方案,希望也许有人可以进一步解释.

void displayPuzzle()
{
int i, j;
char x = 'A';

for (i = 0; i < COLOUMNS; i ++)
{
    printf("%c  ", x); //error here
    x++;
}
printf("\n\n");
for (i = 0; i < ROWS; i ++)
{
    printf("%d\t", i); //error here
    for (j = 0; j < COLOUMNS; j ++)
    {
        printf("%c  ", puzzle[i][j]); //error here
    }
    printf("\n\n");
}

}
Run Code Online (Sandbox Code Playgroud)

c string printf

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