【发布时间】:2021-06-04 23:10:51
【问题描述】:
我正在尝试使用 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 表示。
我在拟合时没有出错,因为 target_array 是长度为 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?
【问题讨论】:
-
您是否尝试进行多元预测(目标不止一维)?这是可能的,并且有几种方法可以做到这一点,但需要仔细考虑。这不仅仅是一些机械设置问题。
-
是的,有多个变量作为目标......目前我有 var1 作为输出变量。我不知道如何将 var1 和 var 2 添加为单个 1-D numpy.ndarray。我需要使用一个特定的分类器,它需要目标变量为一维 numpy.ndarray。
-
您无法将 2D 目标输出转换为 1D 目标。想一想:如果您的 2D 输出分布是 L 形表面,那么 1D 投影会是什么,以及它如何适合分类器的目标?
-
好的,知道了,所以我想我应该选择多类端点......目标变量中有 4 个值而不是二进制......
标签: python arrays numpy classification