将数据集拆分为训练和验证是否适用于无监督学习?

数据挖掘 支持向量机 交叉验证 训练 无监督学习 matlab
2021-09-21 06:33:10

我很难实施为无监督学习设置支持向量机 (SVM) 的所有步骤。我的数据集已标记,但出于教育目的,我正在学习无监督方法,尤其是如何以无监督方式使用 SVM。

基本上,在监督学习中,我们有一个数据集X,它被分割成Xtrain Xval一个独立的数据集, XtestSVM 在训练期间从未见过它。在训练期间,使用交叉验证(CV 方法)学习超参数。我的问题是,对于无监督学习,我应该需要Xtrain,Xval和 CV 来学习超参数吗?我问的原因是理论上在无监督学习中我们没有任何标记的数据集。这是否意味着我们没有Xtrainand Xval

在 Matlab 链接中,已完成交叉验证,但我不清楚是否对部分训练数据进行了交叉验证 Xval

CVSVMModel = crossval(SVMModel);
[~,scorePred] = kfoldPredict(CVSVMModel);

问题:

1)我们是否为无监督学习估计了 SVM 中的超参数?

2)如果是,那么这意味着当理论上无监督学习不知道标记的数据集时,我们可以访问标签。这对我来说是矛盾的。

如何在不Xval使用和拆分数据集的情况下估计无监督 SVM 中的超参数c = cvpartition(n,'KFold',k)

有人可以建议如何进行无监督学习。谢谢你。

1个回答

对于无监督技术,如果您有一些“拟合优度”指标,那么进行训练测试拆分是有意义的。在您的情况下,您似乎想要拆分数据,以便您可以查看您的 SVM 是否将测试数据分类为异常值。

但是,您的目标尚不清楚。如果你澄清你的意思可能会有所帮助。