【发布时间】:2021-05-18 02:20:19
【问题描述】:
我有一个如下所示的示例数据框。 Y 列都包含 0,1 二元结果。 X 是从 x_1 到 x_13 的列。
x_1 x_2 ... x_13 y_1 y_2 y_3 ... y_48
1 0.1 0.2 .... 0.1 0 1 0 .... 0
2 0.5 0.2 .... 0.2 1 0 1 .... 1
...
100 0.1 0.0 .... 0.5 0 1 0 ....0
我是机器学习方法的新手。我打算使用 Leave-one-out 方法来计算 F1 分数。在不使用 Leave-one-out 的情况下,我们可以使用下面的代码:
accs = []
for i in range(48):
Y = df['y_{}'.format(i+1)]
model = RandomForest()
model.fit(X, Y)
predicts = model.predict(X)
accs.append(f1(predicts,Y))
print(accs)
结果打印出 [1,1,1....1]。如何结合留一法来确保我们只打印出平均 F1 分数,例如 0.45?
【问题讨论】:
-
你能简要说明什么是 X 吗?是所有带有 x_ ... 的变量吗?
-
是的,没错。 X 是所有以 x_1 开头并以 x_13 结尾的列。
标签: python machine-learning scikit-learn