人工智能---课设

文章详细描述了如何使用SVM和GMM对数据进行多分类,并展示了SVM完美分类(精度1)与GMM较低精度(0.3991)的对比。作者强调了SVM在高准确性需求领域的优势,如医学图像识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

利用 SVM 将图中给定 5 类数据分为 3 类,并在原图中画出 3 类别分类曲线,然后再计算分类器精度。 其中分类器
按照 85-15%总体数据进行学习和测试,用模糊矩阵表示分类结论并对分类结果进行说明。

第一题: 提取数据+绘图

查找资料解决如何读取 fig 文件中数据,并按照自己的理解方式重新制 作 MATLAB 图形。

重新绘制图形如下:

在这里插入图片描述

从fig文件提取数据代码如下:

% 打开.fig文件并获取图形句柄
figure_handle = open('Fig_DataSetM.fig');

% 获取当前轴上的所有子图形对象
children = get(gca, 'Children');

% 初始化一个新的图形窗口
figure;

% 设置颜色映射和符号
colors = lines(length(children)); % 使用 lines 而不是 jet
markers = ['o', 'x', '+', '*', 's', 'd', 'v', 'p', 'h', '.'];

% 初始化空数组用于存储数据
data = [];

% 遍历所有子图形对象
for i = 1:length(children)
    % 获取子图形对象的句柄
    child = children(i);

    % 为每个类别选择一个符号
    marker = markers(mod(i-1, length(markers)) + 1);

    % 检查子图形对象是否为一个组
    if strcmp(get(child, 'Type'), 'hggroup')
        % 获取组内的所有子图形对象
        grand_children = get(child, 'Children');
        
        % 遍历组内的所有子图形对象
        for j = 1:length(grand_children)
            grand_child = grand_children(j);

            % 获取数据并画散点图,为每个类别设置一种颜色和一个符号
            x_data = get(grand_child, 'XData');
            y_data = get(grand_child, 'YData');
            scatter(x_data, y_data, [], colors(i,:), marker);
            hold on;  % 保持当前图形

            % 将数据添加到数组中
            data = [data; [x_data(:), y_data(:), repmat(i, length(x_data), 1)]];
        end
    else
        % 获取数据并画散点图,为每个类别设置一种颜色和一个符号
        x_data = get(child, 'XData');
        y_data = get(child, 'YData');
        scatter(x_data, y_data, 'MarkerEdgeColor', colors(i,:), 'Marker', marker); % 不使用 'filled',而是指定边缘颜色
        hold on;  % 保持当前图形

        % 将数据添加到数组中
        data = [data; [x_data(:), y_data(:), repmat(i, length(x_data), 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值