逻辑回归可以用于包含列表的变量吗?

Can logistic regression be used for variables containing lists?

我是机器学习的新手,我想知道某些 algorithms/models(即逻辑回归)是否可以将列表作为其变量的值来处理。直到现在,我一直使用非常标准的数据集,其中有几个变量、关联值,然后是这些值集的分类(查看示例 1)。但是,我现在有一个类似的数据集,但其中包含一些变量的列表(查看示例 2)。这是逻辑回归模型可以处理的,还是我必须进行某种特征提取才能将此数据集转换为示例 1 中的普通数据集?

例1(正常):

+---+------+------+------+-----------------+
|   | var1 | var2 | var3 | classification  |
+---+------+------+------+-----------------+
| 1 |    5 |    2 |  526 |               0 |
| 2 |    6 |    1 |  686 |               0 |
| 3 |    1 |    9 |  121 |               1 |
| 4 |    3 |   11 |   99 |               0 |
+---+------+------+------+-----------------+

示例 2(列表):

+-----+-------+--------+---------------------+-----------------+--------+
|     | width | height |       hlines        |      vlines     |  class | 
+-----+-------+--------+---------------------+-----------------+--------+
| 1   | 115   | 280    | [125, 263, 699]     | [125, 263, 699] |  1     |      
| 2   | 563   | 390    | [11, 211]           | [156, 253, 399] |  0     |   
| 3   | 523   | 489    | [125, 255, 698]     | [356]           |  1     |      
| 4   | 289   | 365    | [127, 698, 11, 136] | [458, 698]      |  0     |       
| ... | ...   | ...    | ...                 | ...             | ...    |      
+-----+-------+--------+---------------------+-----------------+--------+

为我的具体问题提供一些额外的背景信息。我正在尝试代表图纸。绘图有宽度和高度(常规变量),但绘图也有一组水平线和垂直线(例如,表示为它们在各自轴上的坐标列表)。这就是您在示例 2 中看到的。我使用的实际数据集更大,还包含变量,这些变量包含包含每条线的粗细的列表、包含每条线的扩展名的列表、包含线之间空格颜色的列表线条等。最后,我想通过我的逻辑回归来了解是什么导致了漂亮的绘图。例如,如果线条太多太靠近,则绘图效果不佳。该模型应该根据这些 'characteristics' 来判断好图和坏图的区别。

我没有包括这些,因为这个数据的设置方式有点难以解释,如果我能解决我对上述数据集的问题,我觉得我可以将这个解决方案的原理用于剩余的数据集以及。但是,如果您需要其他(完整)详细信息,请随时询问!

提前致谢!

不,它不能直接处理那种输入结构。输入必须是均匀的二维数组。您可以做的是想出 功能来捕获列表中包含的一些相关信息。例如,对于包含沿轴的线坐标(实际值本身除外)的列表,可以是线之间的间距,或线的总数或一些统计数据,例如平均位置等。

所以解决这个问题的办法就是通过feature engineering。这实际上是大多数情况下必须处理的事情。在许多 ML 问题中,您可能不仅有描述每个数据样本的 独特 方面或特征的变量,而且其中许多可能是 聚合 来自其他特征或样本组,如果您想考虑某些数据源,这可能是唯一的方法。

哇,好问题。我从来没有考虑过这一点,但当我看到其他人的反应时,我不得不同意,100%。将列表转换为数据框,然后 运行 您在该对象上的代码。

import pandas as pd
data = [["col1", "col2", "col3"], [0, 1, 2],[3, 4, 5]]
column_names = data.pop(0)
df = pd.DataFrame(data, columns=column_names)
print(df)

结果:

   col1  col2  col3
0     0     1     2
1     3     4     5

您可以轻松地对数据框的 fields/features 进行任何多元回归,您将获得所需的结果。有关如何开始的一些想法,请参阅下面的 link。

https://pythonfordatascience.org/logistic-regression-python/

Post 如果您有与此相关的其他问题,请返回。或者,如果您有类似但不相关的问题,请开始新的 post。