【问题标题】:Self Organizing Map to split datasets用于拆分数据集的自组织地图
【发布时间】:2018-12-02 12:06:53
【问题描述】:

我正在尝试使用自组织图将数据集拆分为训练集、验证集和测试集。 我创建了 SOM 模型,

dimension1 = 10;
dimension2 = 10;
net = selforgmap([dimension1 dimension2],100,3,'hextop','linkdist');
[net, tr] = train(net, cancer);

但是,当我尝试使用

对数据集进行分区时
net.divideParam.trainRatio = 0.6;
net.divideParam.valRatio = 0.2;
net.divideParam.testRatio = 0.2;

我收到一个错误

"网络/subsasgn 中的错误>network_subsasgn(第 456 行) if isempty(err), [net,err]=setDivideParam(net,divideParam);结尾 网络/subsasgn 错误(第 10 行) net = network_subsasgn(net,subscripts,v,netname);"

谁能给我一些指导,如何在 Matlab 中使用 SOM 拆分数据集?

Code Image

【问题讨论】:

    标签: matlab validation training-data test-data som


    【解决方案1】:

    您不能在 SOM 中使用 trainRatio、valRatio 和 testRatio。

    这些可用于其他神经网络,例如 MLP。

    【讨论】:

    • 感谢您的回答。我没有找到关于如何使用 SOM 拆分数据的任何答案。您能否就如何使用 SOM 将数据集拆分为训练、验证和测试数据集给我一些建议?
    • SOM 使用无监督学习算法进行训练。使用与纠错学习相反的竞争学习。因此,您不能用于拆分数据集。我不明白,为什么要使用 SOM?还有更好的方法比如K-fold, ...
    • 嗨,PyMatFLow。感谢你的回复。我读过一些论文,其中在从 SOM 创建的层上使用 Neyman Sampling 等方法来创建测试、训练和验证数据集,以减少数据集的可变性。我能够从 SOM 生成层,但不确定如何从每个层中获取数据并将其划分为训练、测试和验证数据集。
    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 2023-03-25
    • 2020-08-14
    • 2019-01-11
    • 2022-10-25
    相关资源
    最近更新 更多