机器学习中如何处理二维以上的输入数据

How to handle input data more than 2 dimension in machine learning

我最近在学习ml课程。我发现示例输入数据是这样的(例如恶性肿瘤分类):

/    size   gender    classification

m1  100     male      malignant

m2   50    female     benign

所有这些数据可以放入一个m * n矩阵,其中m是样本数,n是特征数。

如果输入数据不是行列形式怎么办。例如,我想根据客户的订单历史来预测他是否有恶意。输入数据的形式为:

我有多个客户:

[c1, c2, c3]

一个客户有多个订单:

[o1, o2, o3]

每个订单都有属性:

[orderDate, itemName. itemType, isPayed]

所以我想我就是不能把这些数据放到一个矩阵中。在程序代码中,应该是三维数组。

如何处理这种数据?

也许您可以为每个订单使用不同的模型。如果客户基于该订单不是恶意的,他们每个人都应该输出 0,否则输出 1。然后,使用复数投票以获得结果。

您可以将整个订单集视为一个可变长度的时间序列,然后使用递归神经网络对该序列执行 classification/prediction。

例如客户 1 的时间步长可能是 o1、o2、o3,而客户 2 的时间步长可能是 o1、o2、o3、o4、o5。

每个时间步都有 4 个特征维度(您的订单属性)。客户 1 的完整时间序列输入如下所示(每列是一个时间步长):

+--------------+--------------+--------------+--------------+ 
| o1.orderDate | o2.orderDate | o3.orderDate | o4.orderDate |
+--------------+--------------+--------------+--------------+ 
| o1.itemName  | o2.itemName  | o3.itemName  | o4.itemName  |
+--------------+--------------+--------------+--------------+ 
| o1.itemType  | o2.itemType  | o3.itemType  | o4.itemType  |
+--------------+--------------+--------------+--------------+ 
| o1.isPaid    | o2.isPaid    | o3.isPaid    | o4.isPaid    |
+--------------+--------------+--------------+--------------+

假设训练数据被正确标记,此设置还将发现事件之间具有某种时间依赖性的欺诈行为。

看看这个教程。

https://r2rt.com/recurrent-neural-networks-in-tensorflow-iii-variable-length-sequences.html