我正在尝试建立一个二元分类模型,该模型将告诉谁会购买产品,谁不会。我听说在准备输入数据时,将数据集分成两个不同的子集是一种常用方法。
[ ================ 训练数据 80% ================= ] [ ==== 测试集 20% == == ]
它只是像上面那样按一定比例盲目地分割一大块数据集吗?就这么简单吗?
想象一下,我在下面有这个简单的数据集。
UserId,UserName,AppId,Purchased
1,Lianne,1,1
1,Lianne,2,1
1,Lianne,3,1
1,Lianne,4,1
1,Lianne,5,1
1,Lianne,6,0
1,Lianne,7,0
1,Lianne,8,0
1,Lianne,9,0
1,Lianne,10,0
作为常见的推荐方式,我将其分为两组。
// Training Data Set
UserId,UserName,AppId,Purchased
1,Lianne,1,1
1,Lianne,2,1
1,Lianne,3,1
1,Lianne,4,1
1,Lianne,5,1
1,Lianne,6,0
1,Lianne,7,0
1,Lianne,8,0
// Test Set
UserId,UserName,AppId,Purchased
1,Lianne,9,0
1,Lianne,10,0
这行得通吗?好吧,它似乎没有,事实证明它实际上没有。该模型对 6、7、8、9 的 appId 进行预测是错误的。它认为第一用户会以略高的机会购买它们。指标看起来像...
- TP : 5
- FP : 4
- FN : 1
- 准确度:0.5
- Auc : NaN
- F1Score : NaN
- 精度:0
- 负精度:1
- 负面召回:0.5
为了制作一个合适的模型,我的测试数据集在这个样本训练数据上应该是什么样子?