(稻草人) 2022-10-27 11:33 采纳率: 72.7%
浏览 52
已结题

支持向量机实操自己数据集

请问怎么把自己的数据集导入支持向量机分类模型,请提供完整算法代码,并在代码中注释怎么导入自己的数据集

  • 写回答

3条回答 默认 最新

  • 侯小啾 Python领域优质创作者 2022-10-27 19:37
    关注

    功能已实现。

    import os
    import cv2
    import numpy as np
    from sklearn.svm import SVC
    import pickle
    
    # 设定统一大小
    SHAPE = (1500, 1500)
    
    
    # 传入图片文件路径,输出处理后的图像数组
    def extractFeaturesFromImage(image_file):
       # img = cv2.imread(image_file)
       # 文件名有中文,用该方法读取
       img = cv2.imdecode(np.fromfile(image_file), cv2.IMREAD_UNCHANGED)
       img = cv2.resize(img, SHAPE, interpolation=cv2.INTER_CUBIC)
       img = img.flatten()
       img = img / np.mean(img)
       return img
    
    
    # 读取特征数据
    feature_list = list()
    label_list = list()
    # 病水稻
    file_path1 = 'train/expanddata/'
    # 健康水稻
    file_path2 = 'train/Healexpand/'
    
    for img in os.listdir(file_path1):
       feature_list.append(extractFeaturesFromImage(file_path1 + img))
       label_list.append('ill')
    
    for img in os.listdir(file_path2):
        feature_list.append(extractFeaturesFromImage(file_path2 + img))
        label_list.append('hea')
    
    # 得到特征数据 与 标签数据
    feature_array = np.asarray(feature_list)
    label_array = np.asarray(label_list)
    
    # 模型训练
    model = SVC(C=2, kernel='linear')
    model.fit(feature_array, label_array)
    
    # 输出模型文件
    # pickle.dump(model, open("svm_model.pkl", "wb"))
    
    # 用训练集数据,看看评分是多少
    # test_score = model.score(feature_array, label_array)
    # print(test_score)
    
    # 测试一下训练集中的第 三、四 个数据,并输出预测结果
    # pred = model.predict(feature_array[2:4])
    # print(pred)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月27日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器