我有一个名为输出的数据框,如下所示:
created_at
0 1/8/2017 0:00
1 1/8/2017 0:00
2 1/8/2017 0:00
3 1/8/2017 0:00
4 1/8/2017 0:00
5 1/8/2017 1:00
6 1/8/2017 2:00
7 1/8/2017 3:00
Run Code Online (Sandbox Code Playgroud)
我想计算特定时间在名为df3的数据框中出现的次数。结果如下:
1/8/2017 0:00 5
1/8/2017 1:00 1
1/8/2017 3:00 1
1/8/2017 2:00 1
Run Code Online (Sandbox Code Playgroud)
我想要的是将两个标题添加到 df3 中,称为created_at和count。
我首先做的是从输出数据框中删除重复项并对值进行排序,得到如下结果:
created_at
0 1/8/2017 0:00
5 1/8/2017 1:00
6 1/8/2017 2:00
7 1/8/2017 3:00
Run Code Online (Sandbox Code Playgroud)
现在我在输出数据框中添加了列数,但得到的结果如下:
created_at count
0 1/8/2017 0:00 NaN
5 1/8/2017 1:00 NaN
6 …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试使用 python 中的 sklearn 在分类中实现 K-FOLD 交叉验证。我了解 K-FOLD 和交叉验证背后的基本概念。但是,我不明白什么是 cross_val_score 以及它的作用以及 CV 迭代在获取我们获得的分数数组方面的作用。以下是来自 sklearn 官方文档页面的示例。
**Example 1**
from sklearn import datasets, linear_model
from sklearn.model_selection import cross_val_score
diabetes = datasets.load_diabetes()
X = diabetes.data[:150]
y = diabetes.target[:150]
lasso = linear_model.Lasso()
print(cross_val_score(lasso, X, y, cv=3))
***OUPUT***
[0.33150734 0.08022311 0.03531764]
Run Code Online (Sandbox Code Playgroud)
查看示例 1,输出在数组中生成 3 个值。我知道当我们使用 kfold 时,n_split 是生成折叠数的命令。那么 cv 在这个例子中做了什么?
**My Code**
kf = KFold(n_splits=4,random_state=seed,shuffle=False)
print('Get_n_splits',kf.get_n_splits(X),'\n\n')
for train_index, test_index in kf.split(X):
print('TRAIN:', train_index, 'TEST:', test_index)
x_train, x_test = df.iloc[train_index], df.iloc[test_index]
y_train, y_test = …Run Code Online (Sandbox Code Playgroud)