在matlab中加载一个数据集进行knn分类

Posted

技术标签:

【中文标题】在matlab中加载一个数据集进行knn分类【英文标题】:Load a dataset in matlab for knn classification 【发布时间】:2021-04-07 08:34:37 【问题描述】:

大家好,实际上我想在 matlab 中加载此数据集以对其执行 knn 分类,但我不知道如何执行此操作。我已尝试加载和 readtable 并且...但它不起作用然后我尝试了此代码

FID=fopen('file','rt');
a=textscan(FID,''...);

但实际上我找不到什么是文本格式来获取我想要的数据,所以这是一个死胡同,任何人都可以帮助我解决这个问题。请

这就是我的数据文件内部的样子 enter image description here

这是数据集文件http://lms.ui.ac.ir/public/group/a7/b2/06/6a5fb_24fb.gz

【问题讨论】:

【参考方案1】:

也许您可以尝试以下方法:

编辑:代码现在可以正确导入文件

FID = fopen('toy.m','rt');
data = ;
i = 1;
while ~feof(FID)
    line = fgetl(FID);
    line = fgetl(FID);
    if feof(FID)
        break;   
    end
    %sprintf('%d %s', i, line) %debug
    if (isempty(line))
        headers = 3;
    elseif (line(1) ~= '#')
        headers = 2;
    else
        headers = 1;
    end
    rows = textscan(FID, '%s %s %d', 1, 'headerlines', headers);
    datai = cell2mat(textscan(FID, '', rows3, 'headerlines', 2));
    i = i + 1;
end
fclose(FID);

fprintf('File contained %d blocks of data\n', i);

fprintf('To access a value in cell "data", for example value (1,2) inside the second matrix, digit "data2(1,2)": ');
data2(1,2)

【讨论】:

嗨,感谢您的帮助,但它没有工作并产生错误:从文件(第 1002 行,第 1 行)读取字符串时缓冲区溢出(bufsize = 4095)。使用“bufsize”选项。 如果您想尝试一下,我已将数据集放在我的问题中 @MaryGh 我尝试使用文字处理器打开文件,但它看起来不像数字数据库,它看起来像非拉丁字母表中的文本 请问可以在这个地址打开吗? mathworks.com/matlabcentral/answers/… 你可以在matlab中打开.open gz文件并将文件拖放到里面,在matlab命令窗口里面就可以看到数据集了

以上是关于在matlab中加载一个数据集进行knn分类的主要内容,如果未能解决你的问题,请参考以下文章

文本分类器(基于KNN算法),语言最好是Matlab的,有测试数据集。。。。

MATLAB中如何使用KNN对数据进行分类?

数据分析 第十篇:分类(kNN)

利用BPSO与KNN进行特征选择及matlab代码实现

使用KNN对iris数据集进行分类——python

使用 sklearn 或 pandas 进行一次热编码后,如何在混合数据集(数值 + 分类)上应用 KNN