这些天我正在学习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)
也许你可以为每个订单使用不同的模型。如果客户不是基于该订单的恶意,则每个都应输出0,否则输出1。然后,使用多个投票以获得您的结果。
答案 1 :(得分:0)
您可以将整个订单集视为可变长度时间序列,并使用递归神经网络对该序列执行分类/预测。
e.g。客户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