学习向量量化在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中效果不佳的主要内容,如果未能解决你的问题,请参考以下文章

Matlab量化投资支持向量机择时策略

如何使用向量化代码从 MATLAB 中的两个向量生成所有对?

MATLAB中向量数组的向量范数

机器学习11—原型聚类之学习向量量化(LVQ)

Matlab求两个向量之间的各种距离

吴恩达深度学习:2.11向量化