机器学习中如何处理不同维度的特征向量?

How to process feature vectors with different dimension in machine learning?

我是机器学习的初学者,我正在尝试使用数据集来训练对数线性分类器。数据集包含五个特征,每个特征都是一个向量,只是特征的维度不同。维度分别为3、1、6、2、2。我尝试使用 PCA 方法通过 scikit-learn 将维度减小到 1,但效果不佳。那么我该如何处理这些特征以适应像逻辑回归这样的对数线性分类器模型呢?

一个简单的方法就是展平所有特征。然后将其输入到您的分类器中。

一个例子:

features = [... 
          [[0, 1 3], [5], [2, 6, 4, 7, 8, 9], [1, 0], [0, 1]], #for one sample
          ...]

使用列表理解来展平特征中的每个列表:

flattened_features = [[i for k in f for i in k] for f in features]

这会将特征变成如下所示:

    flattened_features
    [... 
    [0,1,3,5,2,6,4,7,8,9,1,0,0,1], #for one sample
    ...]

现在您可以将其转换为 numpy 数组并将其输入到您的模型中。