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

在别人网站挂黑链湖北seo关键词排名优化软件

在别人网站挂黑链,湖北seo关键词排名优化软件,南通建设局网站,win服务器做网站支持向量机的基本概念和数学公式: 1. 线性可分的支持向量机 对于线性可分的数据集 ,其中(x_i \in R^d) 是特征向量 是类别标签,目标是找到一个超平面 ,使得对于所有 的样本 ,对于所有(y_i -1) 的样本,…

支持向量机的基本概念和数学公式:

1. 线性可分的支持向量机

对于线性可分的数据集在这里插入图片描述
,其中(x_i \in R^d) 是特征向量在这里插入图片描述
是类别标签,目标是找到一个超平面
在这里插入图片描述
,使得对于所有在这里插入图片描述
的样本
在这里插入图片描述
,对于所有(y_i = -1) 的样本,(w^T x_i + b \leq -1)。

间隔(M)定义为:在这里插入图片描述

目标是最大化间隔,即最小化(\frac{1}{2}|w|^2),同时满足![在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 对偶问题

通过引入拉格朗日乘子(\alpha_i\geq 0),原问题的拉格朗日函数为:
在这里插入图片描述

对偶问题通过对(L)求(w)和(b)的偏导数并令其为(0)得到:
在这里插入图片描述
在这里插入图片描述

对偶问题是最大化
在这里插入图片描述
约束条件为在这里插入图片描述

3. 核函数

核函数在这里插入图片描述
,将数据映射到高维空间。常见的核函数有:

  • 线性核:

  • 在这里插入图片描述

  • 多项式核:在这里插入图片描述

  • 径向基函数(RBF)核:在这里插入图片描述

4. 软间隔与正则化

引入松弛变量(\xi_i\geq 0),目标函数变为:

在这里插入图片描述
约束条件为

在这里插入图片描述
在这里插入图片描述

5. 支持向量回归(SVR)

对于回归问题,引入(\epsilon)-不敏感损失函数,目标是找到(w) 和(b) 使得:
在这里插入图片描述

约束条件为
在这里插入图片描述
在这里插入图片描述

代码示例(使用 Python 和 scikit-learn 库):

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC, SVR
from sklearn.metrics import accuracy_score, mean_squared_error
import numpy as np# 生成示例数据集
X, y = datasets.make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, random_state=42)
y[y == 0] = -1  # 将类别标签转换为 -1 和 1# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 线性 SVM 分类器
svm_classifier = SVC(kernel='linear', C=1.0)
svm_classifier.fit(X_train, y_train)
y_pred = svm_classifier.predict(X_test)
print("线性 SVM 分类准确率:", accuracy_score(y_test, y_pred))# 多项式核 SVM 分类器
svm_poly_classifier = SVC(kernel='poly', degree=3, C=1.0)
svm_poly_classifier.fit(X_train, y_train)
y_pred_poly = svm_poly_classifier.predict(X_test)
print("多项式核 SVM 分类准确率:", accuracy_score(y_test, y_pred_poly))# RBF 核 SVM 分类器
svm_rbf_classifier = SVC(kernel='rbf', gamma=0.7, C=1.0)
svm_rbf_classifier.fit(X_train, y_train)
y_pred_rbf = svm_rbf_classifier.predict(X_test)
print("RBF 核 SVM 分类准确率:", accuracy_score(y_test, y_pred_rbf))# 生成回归数据集
X_reg, y_reg = datasets.make_regression(n_samples=100, n_features=1, noise=0.1, random_state=42)
X_train_reg, X_test_reg, y_train_reg, y_test_reg = train_test_split(X_reg, y_reg, test_size=0.3, random_state=42)# 支持向量回归
svr = SVR(kernel='rbf', C=1.0, epsilon=0.2)
svr.fit(X_train_reg, y_train_reg)
y_pred_reg = svr.predict(X_test_reg)
print("SVR 均方误差:", mean_squared_error(y_test_reg, y_pred_reg))

在这里插入图片描述

代码解释:

datasets.make_classification:生成分类数据集。

  • train_test_split:将数据集划分为训练集和测试集。
  • SVC:支持向量分类器,可指定不同的核函数(linearpolyrbf 等)和正则化参数 C
  • accuracy_score:计算分类准确率。
  • datasets.make_regression:生成回归数据集。
  • SVR:支持向量回归,可指定核函数、正则化参数 C 和(\epsilon) 参数。
  • mean_squared_error:计算均方误差。

手动实现 SVM 分类器(简化版):

import numpy as npdef linear_kernel(x1, x2):return np.dot(x1, x2)def train_svm(X, y, C=1.0, max_iter=1000, tol=1e-3, kernel=linear_kernel):n_samples, n_features = X.shapealpha = np.zeros(n_samples)b = 0eta = 0L = 0H = 0for iteration in range(max_iter):num_changed_alphas = 0for i in range(n_samples):Ei = np.sum(alpha * y * kernel(X, X[i])) + b - y[i]if (y[i] * Ei < -tol and alpha[i] < C) or (y[i] * Ei > tol and alpha[i] > 0):j = np.random.choice([k for k in range(n_samples) if k!= i])Ej = np.sum(alpha * y * kernel(X, X[j])) + b - y[j]alpha_i_old = alpha[i]alpha_j_old = alpha[j]if y[i] == y[j]:L = max(0, alpha[j] + alpha[i] - C)H = min(C, alpha[j] + alpha[i])else:L = max(0, alpha[j] - alpha[i])H = min(C, C + alpha[j] - alpha[i])if L == H:continueeta = 2 * kernel(X[i], X[j]) - kernel(X[i], X[i]) - kernel(X[j], X[j])if eta >= 0:continuealpha[j] -= y[j] * (Ei - Ej) / etaalpha[j] = np.clip(alpha[j], L, H)if abs(alpha[j] - alpha_j_old) < tol:continuealpha[i] += y[i] * y[j] * (alpha_j_old - alpha[j])b1 = b - Ei - y[i] * (alpha[i] - alpha_i_old) * kernel(X[i], X[i]) - y[j] * (alpha[j] - alpha_j_old) * kernel(X[i], X[j])b2 = b - Ej - y[i] * (alpha[i] - alpha_i_old) * kernel(X[i], X[j]) - y[j] * (alpha[j] - alpha_j_old) * kernel(X[j], X[j])if 0 < alpha[i] < C:b = b1elif 0 < alpha[j] < C:b = b2else:b = (b1 + b2) / 2num_changed_alphas += 1if num_changed_alphas == 0:breakreturn alpha, bdef predict_svm(X, alpha, b, X_train, y_train, kernel=linear_kernel):n_samples = X.shape[0]y_pred = []for i in range(n_samples):pred = np.sum(alpha * y_train * kernel(X_train, X[i])) + by_pred.append(np.sign(pred))return np.array(y_pred)# 示例使用
X = np.array([[1, 2], [2, 3], [3, 4], [6, 7], [7, 8], [8, 9]])
y = np.array([1, 1, 1, -1, -1, -1])
alpha, b = train_svm(X, y, C=1.0)
y_pred = predict_svm(X, alpha, b, X, y)
print("手动实现 SVM 预测结果:", y_pred)

在这里插入图片描述

代码解释:

linear_kernel:定义线性核函数。

  • train_svm:使用 SMO(Sequential Minimal Optimization)算法训练 SVM,更新拉格朗日乘子(\alpha) 和偏置(b)。
  • predict_svm:使用训练好的(\alpha) 和(b) 进行预测。

在这里插入图片描述

http://www.hengruixuexiao.com/news/31495.html

相关文章:

  • 做ps从哪个网站上下载图片大小网上教育培训机构
  • wordpress 文章导出seo网站排名优化公司哪家
  • wordpress微博图床怎么用百度有专做优化的没
  • siteserver cms网站访问量seo专员是干什么的
  • 怎么建设网站模板上传免费建自己的网址
  • 有哪些网站免费做推广排名
  • 北京外贸网站建设百度应用市场官网
  • 广告公司简介简短seo分析网站
  • 做网站学什么长沙今日头条新闻
  • 网站建设主要课程哪个平台可以免费打广告
  • 网站开发工具c百度搜索竞价推广
  • 浙江省网站icp备案多久杭州网站推广平台
  • 网站常用图片刷网站排名软件
  • 视频网站如何做seoseo排名助手
  • 收银系统一套多少钱神马移动排名优化
  • 外贸推广主要做什么seo信息优化
  • 自制公司网站徐州网站关键词排名
  • 网站主题怎么写想要推广网页
  • 注册公司名称的要求灵宝seo公司
  • 网络设计方案是如何体现网络设计需求的?seo的基本步骤是什么
  • 中源建设有限公司网站上海十大公关公司排名
  • 网站建设微金手指下拉15自媒体代运营
  • 深圳公司网站建设设如何做网络营销
  • 怎么做亚马逊网站快速排名优化推广价格
  • 专业网站策划公司常用的seo工具推荐
  • 找别人做网站需要注意什么百度下载并安装
  • 购物网站开发周期seo运营经理
  • java 网站开发总结怎么创造自己的网站
  • 建筑设计案例网站网站建设网络营销
  • 做商城网站设计seo搜索引擎优化价格