type_of_target#

sklearn.utils.multiclass.type_of_target(y, input_name='', raise_unknown=False)[source]#

确定目标变量的数据类型。

请注意,此类型是可推断出的最具体类型。例如

  • binary 更具体但与 multiclass 兼容。

  • 整数型 multiclass 更具体但与 continuous 兼容。

  • multilabel-indicator 更具体但与 multiclass-multioutput 兼容。

参数:
y{数组状, 稀疏矩阵}

目标值。如果是稀疏矩阵,则 y 预期为 CSR/CSC 矩阵。

input_namestr, 默认值=””

用于构建错误消息的数据名称。

在 1.1.0 版本中新增。

raise_unknownbool, 默认值=False

如果为 True,则当 type_of_target 返回的目标类型为 "unknown" 时,抛出错误。

在 1.6 版本中新增。

返回:
target_typestr

其中之一:

  • ‘continuous’(连续型): y 是一个浮点数组成的数组状结构,并非全为整数,且是 1 维或列向量。

  • ‘continuous-multioutput’(连续型多输出): y 是一个浮点数组成的 2 维数组,并非全为整数,且两个维度的大小都大于 1。

  • ‘binary’(二分类): y 包含小于等于 2 个离散值,且是 1 维或列向量。

  • ‘multiclass’(多分类): y 包含多于两个离散值,不是序列的序列,且是 1 维或列向量。

  • ‘multiclass-multioutput’(多分类多输出): y 是一个包含多于两个离散值的 2 维数组,不是序列的序列,且两个维度的大小都大于 1。

  • ‘multilabel-indicator’(多标签指示器): y 是一个标签指示矩阵,一个具有至少两列且最多两个唯一值的二维数组。

  • ‘unknown’(未知): y 是数组状结构但不是上述任何一种,例如 3 维数组、序列的序列或非序列对象的数组。

示例

>>> from sklearn.utils.multiclass import type_of_target
>>> import numpy as np
>>> type_of_target([0.1, 0.6])
'continuous'
>>> type_of_target([1, -1, -1, 1])
'binary'
>>> type_of_target(['a', 'b', 'a'])
'binary'
>>> type_of_target([1.0, 2.0])
'binary'
>>> type_of_target([1, 0, 2])
'multiclass'
>>> type_of_target([1.0, 0.0, 3.0])
'multiclass'
>>> type_of_target(['a', 'b', 'c'])
'multiclass'
>>> type_of_target(np.array([[1, 2], [3, 1]]))
'multiclass-multioutput'
>>> type_of_target([[1, 2]])
'multilabel-indicator'
>>> type_of_target(np.array([[1.5, 2.0], [3.0, 1.6]]))
'continuous-multioutput'
>>> type_of_target(np.array([[0, 1], [1, 1]]))
'multilabel-indicator'