我是Matlab的新手,我想做的是:我有一个数据库 http://archive.ics.uci.edu/ml/machine-learning-databases/wine/,我想在Matlab中实现NP,最近原型算法。是否有人可以给我一些建议或提供一个NP示例使用的链接?
回答:
这是一个示例代码,我假设这个数据集的第一列是标签,其余是其特征
data = load('wine.data');% 将数据集分割为训练和测试集data = data(randperm(end), :);train = data(1:floor(0.7*size(data, 1)), :);test = data(floor(0.7*size(data, 1))+1:end, :);% 训练阶段% --------------------------------------------------------% 初始化质心,第一列是标签centroid = [unique(data(:, 1)) zeros(size(unique(data(:, 1)), 1), size(data, 2)-1)];for label = unique(train(:, 1))' % 收集该标签下的所有数据 train(train(:, 1) == label, 2:end) % 计算该标签的质心 centroid(centroid(:, 1) == label, 2:end) = mean(train(train(:, 1) == label, 2:end));end% 测试阶段% --------------------------------------------------------% 初始化预测结果pre_result = zeros(size(test, 1), 1);for i = 1:size(test, 1) dist = pdist2(test(i, 2:end), centroid(:, 2:end)); [~, templabel] = min(dist); pre_result(i) = centroid(templabel, 1);end