学习向量量化在matlab中效果不佳
Posted
技术标签:
【中文标题】学习向量量化在matlab中效果不佳【英文标题】:Learning vector quantization doesn't work well in matlab 【发布时间】:2017-04-16 01:24:52 【问题描述】:我想使用学习向量量化 (LVQ) 将 F_CK 数据分为 7 个类别。 当我使用 MLP 时,误差约为 15% 。但是当我使用 LVQ 时,错误大约是 75% :( 我看到 LVQ 只对一个类进行了很好的分类,但没有对其他类进行分类。
我的代码:
data = load('F_CK+');
x = data.X';
y_data = data.Y';
t = ind2vec(y_data);
net = lvqnet(4,0.1,'learnlv2');
net.divideFcn = 'dividerand';
net.divideMode = 'sample';
net.divideParam.trainRatio = 85/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 0/100;
net.trainParam.epochs = 15;
net = train(net, x, t);
y = net(x);
classes = vec2ind(y);
figure, plotconfusion(t,y);
我的结果的混淆矩阵。
FC_K
谁能帮助我,为什么这个网络只分类一个类,我的错是什么?
数据集链接:
https://dl.dropboxusercontent.com/u/100069389/File/***/F_CK.rar
https://mega.nz/#!J8ES1DRS!NZwDsD0FFojeZiI-OpORzxGLbMp9rx0XKsfOvGDOaR0
【问题讨论】:
它也可能取决于使用哪个版本的 LVQ matlab。大多数各种语言的库都更喜欢 LVQ2,因为它达到了准确性和简单性之间的最佳平衡点,使用 LVQ2 进行多类分类有点棘手。 【参考方案1】:我不知道我的错是什么,但我做了一些提高分类准确性的事情。 1. 规范化-1到1之间的数据 2. 将子类/LVQ 神经元增加到 64 个,以覆盖所有图像类。
据我所知,LVQ 网络必须比 MLP 更准确,但我的 LVQ 准确率提高到 80%。
【讨论】:
以上是关于学习向量量化在matlab中效果不佳的主要内容,如果未能解决你的问题,请参考以下文章