Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建一维numpy.ndarray,而不是二维_Python_Arrays_Numpy_Classification - Fatal编程技术网

Python 创建一维numpy.ndarray,而不是二维

Python 创建一维numpy.ndarray,而不是二维,python,arrays,numpy,classification,Python,Arrays,Numpy,Classification,我正在尝试使用Python进行分类。 我有一些输入列(让k个变量)和一个输出列 Let inputfeatures = array([[ 0, 0, 0, ..., 0, 0, 0], [ 1, 0, 0, ..., 0, 0, 0], [ 1, 0, 0, ..., 0, 0, 0], ..., [ 0, 0, 0, ..., 0, 0, 0],

我正在尝试使用Python进行分类。 我有一些输入列(让k个变量)和一个输出列

Let inputfeatures 
  = array([[ 0, 0,  0, ...,  0,  0,  0],
           [ 1, 0,  0, ...,  0,  0,  0],
           [ 1, 0,  0, ...,  0,  0,  0],
           ...,
           [ 0, 0,  0, ...,  0,  0,  0],
           [ 1, 0,  0, ...,  0,  0,  0],
           [ 0, 0,  0, ...,  0,  1,  0]], dtype=int64)
target_array
= array([0, 0, 0, ..., 0, 0, 1], dtype=int64)
我正在安装模型

trainedModel = model.fit(inputfeatures,target_array)
我正在使用的分类器需要所有数据实例的数据表型由长度为n的一维numpy.ndarray表示

由于目标数组是长度为n的一维numpy.ndarray,因此拟合时没有出现错误

假设需要两个输出变量,如何创建长度为n的一维numpy.ndarray以适合模型

我只是按照下面给出的方法进行了尝试:

target_array=data[data.columns[data.columns.isin(['var1', 'var2'])]].values
target_array
array([[1, 1],
       [0, 1],
       [1, 1],
       ...,
       [1, 0],
       [0, 0],
       [0, 0]], dtype=int64)

但它是二维的。如何使其成为长度为n的一维numpy.ndarray?

您不能简单地将
n
-维标签(或“目标输出”)转换为一维标签。在某些情况下,如果输出分布是嵌入到
n
维空间中的
m
维流形,您可以尝试首先进行投影(如有必要,包括非线性投影),但您必须非常仔细地考虑您希望分类器或回归器学习的内容

一个简单的策略是每个输出标签都有一个专门的学习者。这将在机械意义上“起作用”,即您能够预测与输入分布一致的任何输入的输出。但它将忽略输出变量之间可能的相互作用。想象一个二维输出分布,如下所示:

两个学习者,每个人只看到一个输出变量,将没有机会了解该输出结构,并且很可能(错误地)预测正象限中应为空的一些输出点

一种策略是从输入的
X
中学习第一个变量
y\u 0
。然后学习第二个变量
y\u 1
,使用第一个分类器中的预测
y\u 0\u hat
增加输入
X
。等等

一般来说,请查看:

  • ,尤其是“多输出”类,我相信您正在寻找这些类

您是否尝试进行多变量预测(目标超过一维)?这是可能的,有几种方法可以做到这一点,但需要仔细考虑。这不仅仅是一些机械设置问题。是的,多个变量作为目标存在。。。目前我将var1作为输出变量。我不知道如何将var1和var2添加为单个1-D numpy.ndarray。我需要使用一个特定的分类器,它需要目标变量为1-D numpy.ndarray。您不能将2D目标输出转换为1D目标输出。想想看:如果你的2D输出分布是一个L形曲面,那么1D投影会是什么,对于一个分类器来说这是如何合适的?好的,我知道了,所以我想我应该选择多类端点。。。目标变量中有4个值而不是二进制。。。。