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

phpcms v9 网站建设入门互联网广告公司

phpcms v9 网站建设入门,互联网广告公司,it运维方案,微信支付 wordpress1. 支持向量机SVM 支持向量机#xff0c;因其英文名为support vector machine#xff0c;故一般简称SVM#xff0c;通俗来讲#xff0c;它是一种二类分类模型#xff0c;其基本模型定义为特征空间上的间隔最大的线性分类器#xff0c;其学习策略便是间隔最大化#xff…1. 支持向量机SVM 支持向量机因其英文名为support vector machine故一般简称SVM通俗来讲它是一种二类分类模型其基本模型定义为特征空间上的间隔最大的线性分类器其学习策略便是间隔最大化最终可转化为一个凸二次规划问题的求解。 1.1 概述 支持向量机是一种线性分类器。 打住可能有同学会问到什么是线性分类器。 这是线性模型的定义通俗来讲就是对于一个样本而言通过他的特征进行计算得出一个值大于或小于某个特定的数进而他的标签可以通过这个数字进行区分这就是线性可分。 如同上述的例子若z大于等于0则属于1类反之为-1类。 线性模型如同它的名字一般用一组线性方程(Wb其中W为向量将数据进行切割。在二维平面上的形式为一条线三维平面则是一个面。换言之在进行分类的时候遇到一个新的数据点x将x代入f(x) 中如果f(x)小于0则将x的类别赋为-1如果f(x)大于0则将x的类别赋为1。 SVM的本质就是找到这样的一个超平面进行二分类上图所示构建了三条直线进行划分蓝色的叉和黑色的圆。但又产生了一个问题这三条线L1,L2,L3都可以将数据进行切分哪一条才是最好的进行预测时最不容易出错的呢 这就是SVM的核心这条直线离直线两边的数据的间隔最大寻找有着最大间隔的超平面。 1.2 算法详解 1.2.1 线性可分 从SVM的角度如图最中间的一条线就是最适合用来切分样本的。上下两条距离中间线函数距离为1的线是w*x b 0函数缩放得到在这两条线上的点被称之为支持向量。换个理解方式支持向量就是距离超平面距离最近的数据其他数据都需要大于或等于这个距离这才是最佳切分方式。类似于领土的边疆不能跨过边疆理解了这个在后面的推导中就能理解什么是限制式了。这两个边疆之间的距离就是间隔SVM的本质就是寻找最大间隔。 于是模型的预测方式也很简单在进行分类的时候遇到一个新的数据点x将x代入f(x) 中如果f(x)小于0则将x的类别赋为-1如果f(x)大于0则将x的类别赋为1反之也一样代入函数中判断数值大小确定分类结果。 如何确定这个最佳的超平面呢 首先我们需要明白这样的一个事实 让我们开始推导既然也找最大间隔点到平面距离公式就派上用场了。 W也是一组向量分母代表着W的内积。 上述我们说了支持向量到超平面的函数距离需要为1我们可以观察d的分子恰好也是函数距离的表达式让我们使用一个阿尔法进行缩放 最后讲距离公式进行化简代入1得到距离公式为  最大化一个分数意味着最小化它的分子将式子进行转换得到 1.2.2 线性不可分 但现实生活中往往数据是线性不可分的上图中可以看到一堆叉包围黑色的圆圈用肉眼可见画一个圆圈就可以将数据进行划分但根据上述的原则只凭借一条直线是根本不可能将数据进行分割。这个时候我们需要引入一个松弛变量。松弛变量让边界线定的不那么死但为了防止边界的过大我们需要最小化。 注原式系数变为1/2是因为在后续求导更好计算系数大小对求极值没有影响。 在支持向量机中我认为最具有创造性的一点就是将低纬度数据转换为高纬度。 如果同学仍然觉得抽象可以动手做一做下面的这道例题低维度数据转化为高维度数据划分 而在我们遇到核函数之前如果用原始的方法那么在用线性学习器学习一个非线性关系需要选择一个非线性特征集并且将数据写成新的表达形式这等价于应用一个固定的非线性映射将数据映射到特征空间在特征空间中使用线性学习器因此考虑的假设集是这种类型的函数 那么如何选择维度 一千个读者心中有一千个哈姆雷特SVM创造者认为 既然是无限维度怎样进行映射这样计算量岂不是一个天文数字 我们可以通过核函数进而解决这个问题。 核函数能简化映射空间中的内积运算——刚好“碰巧”的是在我们的 SVM 里需要计算的地方数据向量总是以内积的形式出现的。 关于数学推导大家可以看看这篇文章支持向量机通俗导论理解SVM的三层境界-CSDN博客 1.3 核函数 1. 线性核Linear Kernel最简单的核函数直接计算向量之间的内积不适用于线性不可分问题 2. 多项式核Polynomial Kernel通过多项式函数映射到更高维度空间d是多项式的阶数 3. 高斯核Gaussian Radial Basis Function Kernel:这是最常用的核函数将输入映射到无穷维空间其中sigma是方差(宽度系数). 2. 手写代码实现 2.1 算法实现 import numpy as npclass SimpleSVM:def __init__(self, learning_rate0.001, lambda_param0.01, n_iters1000):self.learning_rate learning_rateself.lambda_param lambda_paramself.n_iters n_itersself.w Noneself.b Nonedef fit(self, X, y):n_samples, n_features X.shapey_ np.where(y 0, -1, 1)self.w np.zeros(n_features)self.b 0for _ in range(self.n_iters):for idx, x_i in enumerate(X):condition y_[idx] * (np.dot(x_i, self.w) - self.b) 1if condition:self.w - self.learning_rate * (2 * self.lambda_param * self.w)else:self.w - self.learning_rate * (2 * self.lambda_param * self.w - np.dot(x_i, y_[idx]))self.b - self.learning_rate * y_[idx]def predict(self, X):approx np.dot(X, self.w) - self.breturn np.sign(approx)# 测试我们的SVM if __name__ __main__:# 生成简单的数据from sklearn.datasets import make_blobsimport matplotlib.pyplot as pltX, y make_blobs(n_samples50, centers2, random_state42)y np.where(y 0, -1, 1)# 训练SVMclf SimpleSVM()clf.fit(X, y)predictions clf.predict(X)# 画出数据点和决策边界def visualize_svm():def get_hyperplane_value(x, w, b, offset):return (-w[0] * x b offset) / w[1]fig, ax plt.subplots()plt.scatter(X[:, 0], X[:, 1], markero, cy, s25, edgecolork)x0_1 np.amin(X[:, 0])x0_2 np.amax(X[:, 0])x1_1 get_hyperplane_value(x0_1, clf.w, clf.b, 0)x1_2 get_hyperplane_value(x0_2, clf.w, clf.b, 0)x1_1_m get_hyperplane_value(x0_1, clf.w, clf.b, -1)x1_2_m get_hyperplane_value(x0_2, clf.w, clf.b, -1)x1_1_p get_hyperplane_value(x0_1, clf.w, clf.b, 1)x1_2_p get_hyperplane_value(x0_2, clf.w, clf.b, 1)ax.plot([x0_1, x0_2], [x1_1, x1_2], k)ax.plot([x0_1, x0_2], [x1_1_m, x1_2_m], k--)ax.plot([x0_1, x0_2], [x1_1_p, x1_2_p], k--)x1_min np.amin(X[:, 1])x1_max np.amax(X[:, 1])ax.set_ylim([x1_min - 3, x1_max 3])plt.show()visualize_svm() 2.2 核函数实现 1. 线性核函数 def linear_kernel(x1,x2):return np.dot(x1,x2) 2. 多项式核函数 def polynomial_kernel(x1,x2,degree3,coef01):return (np.dot(x1,x2) coef0) ** degree 3. 高斯核函数 def rbf(x1,x2,sigma1.0):return np.exp(-np.linalg.norm(x1 - x2)**2 / (2 * (sigma ** 2))) 3. 调包实现 from sklearn import svm import numpy as np import matplotlib.pyplot as plt# 创建训练数据 X np.array([[2, 3], [3, 4], [1, 1], [5, 6], [6, 5], [7, 8]]) y np.array([1, 1, -1, -1, -1, 1])# 创建线性SVM模型 clf svm.SVC(kernellinear, C1.0)# 训练模型 clf.fit(X, y)# 获取超平面参数 w clf.coef_[0] b clf.intercept_[0]# 打印支持向量 print(Support vectors:, clf.support_vectors_)# 可视化结果 def plot_hyperplane(clf, X, y):plt.scatter(X[:, 0], X[:, 1], cy, cmapbwr, s30)ax plt.gca()xlim ax.get_xlim()ylim ax.get_ylim()# 创建网格以评估模型xx np.linspace(xlim[0], xlim[1], 30)yy np.linspace(ylim[0], ylim[1], 30)YY, XX np.meshgrid(yy, xx)xy np.vstack([XX.ravel(), YY.ravel()]).TZ clf.decision_function(xy).reshape(XX.shape)# 画决策边界和边界ax.contour(XX, YY, Z, colorsk, levels[-1, 0, 1], alpha0.5,linestyles[--, -, --])ax.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s100,linewidth1, facecolorsnone, edgecolorsk)plt.show()plot_hyperplane(clf, X, y) 4. SVM的优点与局限性 4.1 优点 1. 有效处理高维度数据。 2. 在小样本情况下表现良好尤其适用于文本分类等场景。 3. 使用核函数时能够处理非线性分类问题。 4.2 局限性 1. 对大规模数据集的训练时间过长。 2. 对参数C和核函数的选择敏感参数调优需要花一定时间。 3. 不直接提供概率估计。 5. 应用前景 1. 图像识别 SVM在图像分类和识别任务中表现良好。通过使用核函数SVM可以有效处理高维的图像数据应用于人脸识别、手写数字识别等任务。例如经典的MNIST手写数字识别问题中SVM常被用作基准模型之一 。 2. 文本分类和情感分析 在自然语言处理NLP领域SVM被广泛用于文本分类和情感分析任务。它可以用于垃圾邮件过滤、新闻分类、情感分类等任务。由于文本数据通常是高维稀疏的SVM的高维处理能力非常适用 。 3. 生物信息学 SVM在生物信息学中有广泛应用如基因表达数据分析、蛋白质结构预测和疾病分类。通过分析基因表达数据SVM可以帮助识别癌症等疾病的标志物 。 4. 金融预测 SVM在金融领域被用于股票价格预测、信用评分和市场风险评估。其分类和回归能力使得SVM能够处理金融数据的复杂性和高维性帮助金融机构做出更准确的预测和决策 。 5. 医疗诊断 在医疗诊断中SVM可以用于分类疾病如癌症检测和心脏病预测。通过分析医疗数据SVM能够提供准确的诊断建议辅助医生进行决策 。 6. 欺诈检测 SVM被广泛用于欺诈检测如信用卡欺诈和保险欺诈。通过分析用户行为数据SVM可以识别异常行为并进行分类从而有效检测欺诈行为 。 7. 推荐系统 SVM也可以应用于推荐系统中通过分析用户的历史行为数据和偏好提供个性化的推荐服务。例如电子商务平台可以使用SVM为用户推荐产品 。 8. 图像分割 在计算机视觉中SVM被用于图像分割任务如医疗图像中的肿瘤检测和遥感图像的土地覆盖分类。其强大的分类能力使得SVM在这些任务中表现出色 。 6. 参考资料 支持向量机通俗导论理解SVM的三层境界-CSDN博客 【浙江大学胡浩基机器学习课程现场录播合集-哔哩哔哩】 https://b23.tv/TrUweoJ
http://www.pierceye.com/news/260664/

相关文章:

  • 最经典最常用的网站推广方式什么做网站赚钱
  • 广州哪家做网站化妆品网站方案
  • cms开源网站管理系统北京网站建设策划解决方案
  • 洛阳做多屏合一网站最新款淘宝客源码整网站程序模板+后台带自动采集商品功能带文章
  • 宁国新站seo中国建筑网官网监理工程师网站
  • 自己建网站多少钱福州建设企业网站
  • 容桂佛山做app网站wordpress 搜索 任意
  • dw做单页网站教程盐城网站建设价位
  • 赤峰建设业协会的官方网站wordpress博客伪静态
  • 2016个人做淘宝客网站网站备案备注信息
  • 加盟招商推广网站怎么做网站的防盗链
  • 南阳网站关键词ppt在线浏览网站源码
  • 用vs2012做网站首页涉密网络建设
  • 个人主题网站设计seo技术论坛
  • 做venn图的网站网页设计期末考试作品
  • 中英文网站怎么做外贸SOHO建公司网站
  • 展馆门户网站建设广告片制作公司
  • 周至做网站的公司百度推广开户免费
  • 网站建设百度认证机场建设集团网站
  • 建设网站要多久的时间app软件小程序网站建设
  • 营销网站重要特点是网站建设运维方案
  • 江西网站定制公司丰润区建设局网站
  • 手机网站制作费用合肥优化推广公司
  • 中国建设银行注册网站采购与招标网
  • 扬州住房和建设局网站江油市规划和建设局网站
  • 网站使用问题上海seo优化
  • 私人订制网站有哪些网站建设千套素材
  • 网站建设晋丰北京网站建设及优化
  • 东莞网站制作南城电商网站模板
  • 特色的佛山网站建设深圳勘察设计协会