当前位置: 首页 > news >正文

组队学习——支持向量机

本次学习支持向量机部分数据如下所示

IDmasswidthheightcolor_scorefruit_namekind

 其中ID:1-59是对应训练集和验证集的数据,60-67是对应测试集的数据,其中水果类别一共有四类包括apple、lemon、orange、mandarin。要求根据1-59的数据集的自变量(mass、width、height、color_score)和因变量(kind),去预测60-67的数据水果种类

一、导入支持向量机和其他的库

import numpy as np
from scipy import stats
from sklearn.model_selection import train_test_split
import pandas as pd  
from sklearn import svm  
from sklearn.metrics import accuracy_score

二、读取数据

# 设置文件路径  
file_path = 'E:\\Jupyter Workspace\\数学建模\\多分类水果数据.csv'  
# 使用 pandas 的 read_csv 函数读取 CSV 文件,注意查看csv文件的编码,默认不填为utf-8编码
data = pd.read_csv(file_path,encoding='gbk')  
# 显示数据的前几行来验证读取是否成功  
print(data.head())
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.width', 300) # 设置打印宽度(**重要**)
print(data.isnull().any())

三、划分数据

# 选择第二列到最后一列,第一列相当于序号列可以忽略
X = data.iloc[0:59, 1:5]   # [:)左闭右开Y = data.iloc[0:59, 6]# 划分数据集为训练集和验证集
X_train, X_valid, Y_train, Y_valid = train_test_split(X, Y, test_size=0.2, random_state=42)

 四、RBF核函数

# RBF 核函数
rbf_model = svm.SVC(kernel='rbf', gamma='auto')
rbf_model.fit(X_train, Y_train)
rbf_pred = rbf_model.predict(X_valid)
print("RBF Kernel Accuracy:", accuracy_score(Y_valid, rbf_pred))

 五、线性核函数

# 线性核函数
linear_model = svm.SVC(kernel='linear')
linear_model.fit(X_train, Y_train)
linear_pred = linear_model.predict(X_valid)
print("Linear Kernel Accuracy:", accuracy_score(Y_valid, linear_pred))

六、多项式核函数

# 多项式核函数
poly_model = svm.SVC(kernel='poly', degree=3)
poly_model.fit(X_train, Y_train)
poly_pred = poly_model.predict(X_valid)
print("Polynomial Kernel Accuracy:", accuracy_score(Y_valid, poly_pred))

七、Sigmoid核函数

# Sigmoid 核函数
sigmoid_model = svm.SVC(kernel='sigmoid')
sigmoid_model.fit(X_train, Y_train)
sigmoid_pred = sigmoid_model.predict(X_valid)
print("Sigmoid Kernel Accuracy:", accuracy_score(Y_valid, sigmoid_pred))

其他 

结合相关资料比较一下哪种核函数更适合该题数据,说明理由,同时给出测试集的对应预测结果

test_X = data.iloc[59:, 1:5]
# print(test_X)
test_Y = data.iloc[59:, 6]
# print(test_Y)#举例:若为xxx核函数
#预测数据
xxx_pred_test = xxx_model.predict(test_X)
print(xxx_pred_test)

拓展:尝试用以下指标衡量支持向量机(SVR)的预测效果

● MSE(均方误差): 预测值与实际值之差平方的期望值。取值越小,模型准确度越高。
● RMSE(均方根误差):为 MSE 的平方根,取值越小,模型准确度越高。
● MAE(平均绝对误差): 绝对误差的平均值,能反映预测值误差的实际情况。取值越小,模型准确度越高。
● MAPE(平均绝对百分比误差): 是 MAE 的变形,它是一个百分比值。取值越小,模型准确度越高。
● R²: 将预测值跟只使用均值的情况下相比,结果越靠近 1 模型准确度越高。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C#语法基础详解(万字总结)
  • 拖拽上传(预览图片)
  • UseMemo、UseCallback、React.memo
  • RK3568笔记三十六:LED驱动开发(设备树)
  • 香橙派AIpro-携手华为-为AI赋能
  • 全时守护,无死角监测:重点海域渔港视频AI智能监管方案
  • Flink History Server配置
  • 【Python进阶】正则表达式、pymysql模块
  • 《Towards Black-Box Membership Inference Attack for Diffusion Models》论文笔记
  • 【CMU博士论文】结构化推理增强大语言模型(Part 0)
  • 上海理工大学24计算机考研考情分析!初复试分值比55:45,复试逆袭人数不算多!
  • 发布支持TS的npm包
  • 仅两家!云原生向量数据库 PieCloudVector 全项通过信通院「可信数据库」评测
  • 全国媒体邀约,主流媒体到场出席采访报道
  • 20240718每日后端------------kafka VS RabbitMQ:选择正确的消息代理
  • 【Leetcode】101. 对称二叉树
  • 2018一半小结一波
  • Django 博客开发教程 8 - 博客文章详情页
  • JavaScript 一些 DOM 的知识点
  • JavaScript设计模式系列一:工厂模式
  • Linux gpio口使用方法
  • Mysql5.6主从复制
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • python 装饰器(一)
  • react-native 安卓真机环境搭建
  • ubuntu 下nginx安装 并支持https协议
  • vue学习系列(二)vue-cli
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 记一次删除Git记录中的大文件的过程
  • 简单基于spring的redis配置(单机和集群模式)
  • 坑!为什么View.startAnimation不起作用?
  • 目录与文件属性:编写ls
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 智能网联汽车信息安全
  • Nginx实现动静分离
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • $L^p$ 调和函数恒为零
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (LeetCode 49)Anagrams
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (分类)KNN算法- 参数调优
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (转)Unity3DUnity3D在android下调试
  • (转)创业家杂志:UCWEB天使第一步
  • .gitignore文件---让git自动忽略指定文件
  • .NET C# 使用 iText 生成PDF
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net php 通信,flash与asp/php/asp.net通信的方法