当前位置: 首页 > 面试题库 >

Sklearn StratifiedKFold:ValueError:支持的目标类型为:(“ binary”,“ multiclass”)。改为使用“ multilabel-indicator”

和和煦
2023-03-14
问题内容

使用Sklearn进行分层的kfold拆分,当我尝试使用多类拆分时,收到错误消息(请参见下文)。当我尝试使用二进制文件进行拆分时,它没有问题。

num_classes = len(np.unique(y_train))
y_train_categorical = keras.utils.to_categorical(y_train, num_classes)
kf=StratifiedKFold(n_splits=5, shuffle=True, random_state=999)

# splitting data into different folds
for i, (train_index, val_index) in enumerate(kf.split(x_train, y_train_categorical)):
    x_train_kf, x_val_kf = x_train[train_index], x_train[val_index]
    y_train_kf, y_val_kf = y_train[train_index], y_train[val_index]

ValueError: Supported target types are: ('binary', 'multiclass'). Got 'multilabel-indicator' instead.

问题答案:

keras.utils.to_categorical产生一个热编码类矢量,即multilabel- indicator错误消息中提到的矢量。StratifiedKFold不适用于此类输入;从split方法文档:

split __(X,y,组=无)

[…]

y :类似数组的形状(n_samples个)

监督学习问题的目标变量。根据y标签进行分层。

也就是说,您y必须是类别标签的一维数组。

本质上,您要做的只是简单地反转操作的顺序:首先拆分(使用intial y_train),然后进行转换to_categorical



 类似资料:
  • 问题内容: 是我在尝试运行时收到的错误消息: 是形状如下的: 是一个: 我已经搜索了一些错误消息,但还没有真正找到可以应用的内容。有什么提示吗? 问题答案: 不,您输入的内容必须是预测列表,而不是OHE(一种热编码)。调用您的和,您应该得到期望的结果。

  • 我正在尝试我的第一个Quarkus应用程序,并且正在从Spring转移到Quarkus。 在Spring中,我创建了一个helper库,其中定义了一个通用的StandardService。 服务类如下所示: model类如下所示: 是我的代码中遗漏了什么,还是Quarkus的限制?在Spring中,我可以在服务内部编译和使用它。

  • 问题内容: Visual Studio 2017中是否有一种方法可以自动为asp.net核心 Angular 项目启用Docker支持?创建新选项时,该选项被禁用。它仅适用于 Web应用程序(MVC) 。 创建项目后,我可以为角度项目启用Docker支持(项目->添加-> Docker支持),但是当我启动应用程序时,出现一个异常,提示node.js不可用。 发生System.AggregateEx

  • 问题内容: 为什么Java中的泛型只能用于类,而不能用于原始类型? 例如,这可以正常工作: 但这是不允许的: 问题答案: ava中的泛型是一个完全编译时的结构-编译器将所有泛型使用转换为正确的类型。这是为了保持与以前的JVM运行时的向后兼容性。 这个: 变成(大致): 因此,任何用作泛型的东西都必须可转换为Object(在此示例中返回),而原始类型则不是。因此它们不能用于泛型。

  • 为什么Java中的泛型可以处理类而不能处理基元类型? 例如,这个操作很好: 但这是不允许的:

  • 从"text/html"到"Application/json"的响应的标头类型。其他然后这个 am使用as头类型作为头(“内容类型”、“应用程序/json;字符集=UTF-8”) 但不是改变。

  • 问题内容: 我很难查询用户,其定义为: MariaDB中的表定义为: 但是当我查询它时: 我收到此错误: 而表中有一些行。 我也尝试过, 但仍然遇到相同的错误。 所以我不知所措,因为这里出了什么问题?我该如何解决? PS 虽然我的问题竟然有相同的答案这不过这里的背景是不同的(而不是)。另外,由于这里是该错误的主题,因此对于使用谷歌相同错误的人来说,搜索起来可能更容易。因此,也许这值得作为一个单独的

  • lint Description:参考sqlint格式,以插件形式集成到代码编辑器,显示输出更加友好 Example: soar -report-type lint -query test.sql markdown Description:该格式为默认输出格式,以markdown格式展现,可以用网页浏览器插件直接打开,也可以用markdown编辑器打开 Example: echo "select