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

淘宝做标题网站wordpress 3.9

淘宝做标题网站,wordpress 3.9,男人和女人做羞羞的事情网站,翻译国外网站做原创#1024程序员节#xff5c;征文# 支持向量机#xff08;SVM#xff09;的详细讲解 什么是SVM#xff1f; 支持向量机#xff08;Support Vector Machine#xff0c;SVM#xff09;是一种用于分类和回归的监督学习算法。它的主要任务是从给定的数据中找到一个最佳的决策…#1024程序员节征文# 支持向量机SVM的详细讲解 什么是SVM 支持向量机Support Vector MachineSVM是一种用于分类和回归的监督学习算法。它的主要任务是从给定的数据中找到一个最佳的决策边界超平面将不同类别的数据分开。通过这个决策边界SVM能够对新数据进行分类。 好的让我们进一步深入探讨支持向量机SVM的各个方面包括其工作原理、核函数的详细信息、调优技巧、以及在Sklearn和PyTorch中的更全面的实现示例。 SVM的详细工作原理 1. 数据准备与特征选择 在使用SVM之前需要准备好数据。数据应该被整理为特征矩阵和目标标签 特征矩阵X每一行代表一个数据样本每一列代表一个特征。目标标签y对应的标签指明每个样本的类别。 2. 训练过程 在训练SVM模型时算法会执行以下步骤 选择超平面SVM会尝试不同的超平面直到找到一个最佳超平面使得支持向量的间隔最大化。 优化问题SVM的核心是一个优化问题目的是最小化一个代价函数 这确保了所有数据点都被正确分类并且在超平面与数据点之间保持一定的间隔。 3. 核函数的深入理解 核函数使得SVM能够处理非线性问题。通过使用核函数SVM可以在低维空间中寻找线性超平面从而在高维空间中实现非线性分离。常见的核函数包括 线性核简单而高效适用于线性可分的数据。公式为 多项式核用于多项式关系的数据。公式为 其中 (c) 是常数(d) 是多项式的度数。 径向基函数RBF核非常流行适合大多数非线性数据。公式为 其中 (\gamma) 控制了高斯分布的宽度。 调优SVM模型 在使用SVM时有几个关键参数需要调整以获得最佳性能 C参数 C是一个正则化参数控制着分类器的复杂性。较小的C会导致一个较宽的间隔可能会在某些训练数据上产生更多的错误分类而较大的C会尽量减少分类错误从而可能导致过拟合。 核函数选择 根据数据的特性选择合适的核函数。对于线性可分数据使用线性核对于复杂的非线性数据考虑使用RBF核。 gamma参数适用于RBF核 gamma参数控制了单个训练样本的影响范围。较小的gamma会导致决策边界变得平滑而较大的gamma则会导致决策边界变得复杂。 SVM在Sklearn中的实现 接下来是一个更全面的Sklearn SVM实现示例包括参数调优的部分 import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_selection import train_test_split, GridSearchCV from sklearn import svm from sklearn.metrics import classification_report, confusion_matrix# 加载鸢尾花数据集 iris datasets.load_iris() X iris.data[:, :2] # 只取前两个特征便于可视化 y iris.target# 拆分数据集 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 使用网格搜索进行参数调优 param_grid {C: [0.1, 1, 10],kernel: [linear, rbf], # 使用线性核和RBF核进行比较gamma: [0.1, 1, 10] # 仅在使用RBF核时考虑 } grid_search GridSearchCV(svm.SVC(), param_grid, cv5) # 5折交叉验证 grid_search.fit(X_train, y_train)# 输出最佳参数 print(Best parameters found: , grid_search.best_params_)# 使用最佳参数训练模型 best_clf grid_search.best_estimator_ y_pred best_clf.predict(X_test)# 评估模型 print(Confusion Matrix:) print(confusion_matrix(y_test, y_pred)) print(\nClassification Report:) print(classification_report(y_test, y_pred))# 绘制结果 plt.scatter(X_test[:, 0], X_test[:, 1], cy_pred, s50, cmapcoolwarm, edgecolork) plt.title(SVM Classification Result with Grid Search) plt.xlabel(Feature 1) plt.ylabel(Feature 2) plt.show()SVM在PyTorch中的实现 在PyTorch中实现SVM通常涉及更底层的操作下面是一个完整的示例包括数据加载、模型定义、训练、以及评估 import torch import torch.nn as nn import torch.optim as optim import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler# 定义SVM模型 class SVM(nn.Module):def __init__(self, input_size):super(SVM, self).__init__()self.linear nn.Linear(input_size, 1)def forward(self, x):return self.linear(x)# 加载数据集 iris datasets.load_iris() X iris.data[:, :2] # 只取前两个特征 y iris.target y[y 2] 1 # 将三分类问题简化为二分类问题# 标准化数据 scaler StandardScaler() X scaler.fit_transform(X)# 拆分数据集 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 转换为PyTorch张量 X_train_tensor torch.FloatTensor(X_train) y_train_tensor torch.FloatTensor(y_train).view(-1, 1) X_test_tensor torch.FloatTensor(X_test)# 初始化模型、损失函数和优化器 model SVM(input_size2) criterion nn.MarginRankingLoss(margin1.0) # 使用边际排名损失 optimizer optim.SGD(model.parameters(), lr0.01)# 训练模型 for epoch in range(100):model.train()optimizer.zero_grad()outputs model(X_train_tensor)# SVM要求的标签格式targets torch.FloatTensor([[1 if label 1 else -1] for label in y_train])loss criterion(outputs, torch.zeros_like(outputs), targets)loss.backward()optimizer.step()# 预测 model.eval() with torch.no_grad():predictions model(X_test_tensor)y_pred (predictions.numpy() 0).astype(int)# 绘制结果 plt.scatter(X_test[:, 0], X_test[:, 1], cy_pred, s50, cmapcoolwarm, edgecolork) plt.title(SVM Classification Result in PyTorch) plt.xlabel(Feature 1) plt.ylabel(Feature 2) plt.show()# 计算准确率 accuracy np.mean(y_pred.flatten() y_test) print(fAccuracy: {accuracy * 100:.2f}%)总结 支持向量机SVM是一种非常强大且灵活的分类算法适用于线性和非线性数据。通过选择适当的核函数、调节参数如C和gammaSVM可以在各种应用中表现出色。使用Sklearn提供的简单接口可以快速实现和评估SVM模型而在PyTorch中我们能够更细致地控制模型的结构和训练过程。无论是进行简单的分类任务还是复杂的非线性数据分析SVM都是一个值得考虑的选择。
http://www.hkea.cn/news/14557972/

相关文章:

  • 网站建设算无形资产最好的网站建设公司有哪些
  • 中国桥梁建设网站程序员培训机构排名前十
  • 专做蔬菜大棚的网站网站升级改版需要几天
  • 网站建设微信公众号云虚拟主机 多个网站
  • 做设计一般用的素材网站是什么意思网站开发程序制作域名备案
  • 宁波做外贸网站wordpress移动端视频
  • 颍上县城乡住房建设局网站wordpress自动文章内容
  • asp.net网站开发源码网页设计代码html模版
  • 青岛建站推广wordpress 子网站重命名
  • 宣传片制作公司价钱多少企业网站优化分为
  • wordpress做自建站如何做网站英文简历模板
  • 网站互联关键词做网站标题是什么意思
  • 龙岗企业网站制作公司梅林 建站 wordpress
  • 北京市保障性住建设投资中心网站首页wordpress wp_query 参数
  • 手机微信客户端网站建设网站的建设可以起到什么作用
  • 沈阳网站备案wordpress 此网页包含重定向循环
  • 公众号做淘宝客接入手机网站卡片式网站模板下载
  • 网站建设预付款管理网站 开发
  • 四平市住房和畅想建设局网站网站如何做死链接提交
  • 网站设计制作报价图片网页设计毕业设计开题报告
  • 整容医院网站建设目的网页平台设计
  • 免费网站在哪下载智联招聘网站多少钱做的
  • 高质量的高密网站建设找工地项目承包网站
  • 怎么为自己做的网站申请域名嘉祥网站建设哪家便宜
  • 外贸导向企业网站免费做网站送域名的
  • 刷赞抖音推广网站wordpress不提示更新
  • 网站用户注册页面怎么做中台网站开发
  • 荥阳网站建设手机软件开发app需要学什么
  • 泰州做网站的网站建设公司注册
  • 华久做网站百度权重从1提升到2的办法