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

想学Wordpress建站电子工厂网站建设

想学Wordpress建站,电子工厂网站建设,为什么要进行电子商务网站规划,网站备案 更换接入商文章目录 前言分析数据集线性可分情况下的支持向量机原始问题凸优化包解法对偶问题凸优化包解法 数据集线性不可分情况下的线性支持向量机与软间隔最大化 前言 在支持向量机中#xff0c;理论逻辑很简单#xff1a;最大化最小的几何间隔。但是实际编写代码过程中有一个小点需… 文章目录 前言分析数据集线性可分情况下的支持向量机原始问题凸优化包解法对偶问题凸优化包解法 数据集线性不可分情况下的线性支持向量机与软间隔最大化 前言 在支持向量机中理论逻辑很简单最大化最小的几何间隔。但是实际编写代码过程中有一个小点需要注意。总是把二分类的类别分为0和1这样就导致我的目标函数跟算法描述的就不一样所以求解结果就不正确。同时还有第二个要注意的就是凸优化包cvxpy中各种运算的表示方法比如凸优化中常见的二次方程的表示变量的默认形状等要查看官方文档才能熟悉。变量的默认形状为列向量。 参考 李航统计学习方法CVXPY 分析 支持向量机算法中我们的训练数据除了是两种类别以外类别的编号也有要求分别是1、-1只有这样我们才能求每个样本所对应的函数间隔 D y i ( w x i b ) Dy_i(wx_ib) Dyi​(wxi​b)和几何间隔 D y i w x i b ∥ w ∥ 2 Dy_i\frac{wx_ib}{\|w\|_2} Dyi​∥w∥2​wxi​b​在这种类别标签的情况下预测值 w x i b wx_ib wxi​b与真实值 y i y_i yi​之间的乘积才有意义。 预测与真实相同乘积才会是大于0的预测与真实相反乘积就是小于0的。只有这样后面的目标函数最大化几何间隔才有意义。 重新表述一下可分数据集上支持向量机的目标函数和约束条件 max λ s.t. y i w x i b ∥ w ∥ 2 ≥ λ \begin{align*} \textbf{max}\lambda \\ \textbf{s.t.} y_i\frac{wx_ib}{\|w\|_2}\ge\lambda \end{align*} ​maxs.t.​λyi​∥w∥2​wxi​b​≥λ​ 如果我们使用类别标签为01那么当错误分类时几何间隔为0无法指导参数修改。所以必须要使用1-1。 数据集线性可分情况下的支持向量机 此时有两种求法一种是用原始算法直接用cvxpy函数包求解原始的这个凸优化问题并把问题变为下述形式 max t ∥ w ∥ 2 s.t. y i ( w x i b ) ≥ t \begin{align*} \textbf{max}\frac{t}{\|w\|_2} \\ \textbf{s.t.} y_i{(wx_ib)}\ge t \end{align*} ​maxs.t.​∥w∥2​t​yi​(wxi​b)≥t​ 由于通过同比例放大w,b可以实现条件中左边的乘积大小的任意变换所以我们修改t为 1 1 1。上述凸优化问题就变为 min ∥ w ∥ 2 s.t. y i ( w x i b ) ≥ 1 \begin{align*} \textbf{min}{\|w\|_2} \\ \textbf{s.t.} y_i{(wx_ib)}\ge 1 \end{align*} ​mins.t.​∥w∥2​yi​(wxi​b)≥1​ 第二种方法就是将原始问题使用拉格朗日乘子法变换为对偶问题将加入条件和拉格朗日乘子的拉格朗日函数进行求导并将求导得到的关系式带入拉格朗日函数这样就可以得到对偶问题。 原始问题凸优化包解法 import numpy as np import cvxpy as cp #生成符合要求的样本数据 np.random.seed(3) train_xnp.random.randn(2,2) weight_xnp.random.randn(2) bias_xnp.random.randn(1) train_ynp.where(train_xweight_xbias_x0,-1,1).reshape(2,-1) print(train_x,train_y) #求解对偶凸优化问题 wcp.Variable(2) bcp.Variable(1) objcp.Minimize(1/2*cp.sum_squares(w)) cons[train_y[0]*(train_xwb)[0]1,train_y[1]*(train_xwb)[1]1] probcp.Problem(obj,cons) resultprob.solve() #输出拉格朗日乘子的和最优化的目标函数值以及权重w print(fw.value,result,b.value:{w.value,result,b.value})结果如下 [[ 1.78862847 0.43650985][ 0.09649747 -1.8634927 ]] [[-1][ 1]] w.value,result,b.value:(array([-0.41507783, -0.56418804]), 0.24529887505030906, array([-0.01130633]))对偶问题凸优化包解法 本例子中我们使用了小规模的数据只有两个样本所以这两个样本肯定都是支持向量也就是对应的拉格朗日乘子都不为0对于大规模样本数据的情况如果不在分界面上那么对应的拉格朗日乘子为0也就不是支持向量。拉格朗日乘子不为0的肯定就是支持向量。 import numpy as np import cvxpy as cp #生成符合要求的样本数据 np.random.seed(3) train_xnp.random.randn(2,2) weight_xnp.random.randn(2) bias_xnp.random.randn(1) train_ynp.where(train_xweight_xbias_x0,-1,1).reshape(2,-1) print(train_x,train_y) #求解对偶凸优化问题 alphacp.Variable(2) objcp.Minimize(1/2*cp.quad_form(alpha,(train_xtrain_x.T)*(train_ytrain_y.T))-cp.sum(alpha)) cons[alpha0,train_y.Talpha0,train_y.Talpha0] probcp.Problem(obj,cons) resultprob.solve() #输出拉格朗日乘子的和最优化的目标函数值以及权重w print(falpha.value,result,w:{alpha.value,result,np.array(alpha.value.reshape(2,-1)*train_y*train_x).sum(axis0)}) #检验支持向量机求出的分离面是否与这两个样本之间的连线垂直 wnp.array(alpha.value.reshape(2,-1)*train_y*train_x).sum(axis0) np.array(train_x[0,:]-train_x[1,:]).reshape(1,-1)np.array([-w[1]/w[0],1]).reshape(2,-1)结果如下 [[ 1.78862847 0.43650985][ 0.09649747 -1.8634927 ]] [[-1][ 1]] alpha.value,result,w:(array([0.24529888, 0.24529888]), -0.24529887505030898, array([-0.41507783, -0.56418804])) array([[-4.4408921e-16]])至于参数b我们可以通过支持向量所对应的等式求出。 我们可以观察一下原始问题与对偶问题的解答是否一致。 数据集线性不可分情况下的线性支持向量机与软间隔最大化 软间隔顾名思义就是给原来的间隔留下一点宽容量给那些不容易分正确的留一点余地。同时对于这些余地进行惩罚所得到的分割面以上面线性可分的数据做演示。 import numpy as np import cvxpy as cp #生成符合要求的样本数据 np.random.seed(3) train_xnp.random.randn(2,2) weight_xnp.random.randn(2) bias_xnp.random.randn(1) train_ynp.where(train_xweight_xbias_x0,-1,1).reshape(2,-1) print(train_x,train_y) #求解对偶凸优化问题 wcp.Variable(2) bcp.Variable(1) softgapcp.Variable(2) objcp.Minimize(1/2*cp.sum_squares(w)100*cp.sum(softgap)) cons[train_y[0]*(train_xwb)[0]1-softgap[0],train_y[1]*(train_xwb)[1]1-softgap[1],softgap0] probcp.Problem(obj,cons) resultprob.solve() #输出拉格朗日乘子的和最优化的目标函数值以及权重w print(fw.value,result,b.value,softgap.value:{w.value,result,b.value,softgap.value})结果如下 [[ 1.78862847 0.43650985][ 0.09649747 -1.8634927 ]] [[-1][ 1]] w.value,result,b.value,softgap.value:(array([-0.41507783, -0.56418804]), 0.24529887505030906, array([-0.01130633]), array([-2.90746355e-22, 1.53881391e-22]))可以看出在线性可分的的情况下软间隔不起作用。 那么我们制造一些线性不可分的数据来测试一下。 import numpy as np import cvxpy as cp #生成符合要求的样本数据 np.random.seed(3) train_xnp.array([[0,0],[1,0],[2,0]]) train_ynp.array([-1,1,-1]).reshape(3,-1) print(train_x,train_y) #求解对偶凸优化问题 wcp.Variable(2) bcp.Variable(1) softgapcp.Variable(3) objcp.Minimize(1/2*cp.sum_squares(w)0.1*cp.sum(softgap)) cons[train_y[0]*(train_xwb)[0]1-softgap[0],train_y[1]*(train_xwb)[1]1-softgap[1],train_y[2]*(train_xwb)[2]1-softgap[2],softgap0] probcp.Problem(obj,cons) resultprob.solve() #输出拉格朗日乘子的和最优化的目标函数值以及权重w print(fw.value,result,b.value,softgap.value:{w.value,result,b.value,softgap.value})结果如下 [[0 0][1 0][2 0]] [[-1][ 1][-1]] w.value,result,b.value,softgap.value:(array([9.07653476e-18, 0.00000000e00]), 0.2, array([-1.]), array([ 8.59013373e-23, 2.00000000e00, -8.59013423e-23]))
http://www.yutouwan.com/news/205256/

相关文章:

  • 网站建设运城中国核工业第五建设有限公司官网
  • 建设网站了还能消除吗icp备案网站接入信息
  • 成都网站建设哪家专业井研移动网站建设
  • 万网网站加速做物流的网站都有什么风险
  • phpcms律师网站源码网络设计专业究竟好不好就业
  • 泉州网站建设维护aaa免费服务器
  • ui中国网站网页设计与制作课程结构
  • 珠海华兴建设工程有限公司网站深圳精品网站建设公司
  • 网站扒下来了怎么做上海做网站开发的公司
  • 个人备案的域名可以做网站吗中国企业报集团官网
  • 广西建设四库一平台网站一级a做爰片免费网站录像
  • 江阴做网站的企业网站如何加入百度联盟
  • 福州网站建设哪里有想做一个自己设计公司的网站怎么做的
  • 营销网站建设维护wordpress简书主题
  • 个人网站怎么备案微网站建设费用预算
  • 扬州网站建设哪家公司好网站如何提升seo排名
  • 昆明经济技术开发区官方门户网站服务器多少钱
  • php中英文网站模板衡阳做网站的
  • wordpress版权声明seo实战培训王乃用
  • 海淀网站建设多少钱关键词优化排名易下拉软件
  • 庆阳建设局网站wap网站开发用什么语言
  • 电影海报模板哪个网站好抖音小程序在哪里
  • 钟表东莞网站建设wordpress换头像不显示
  • 最新网站制作中轻成都设计院
  • 各种浏览器网站大全广东住房和城乡建设厅网站首页
  • 如何兼职做网站百度地图关键词排名优化
  • 泉州定制网站建设营销型网站建设的特点表现
  • 有网站建设需求的网站佛山网站建设方案策划
  • 台州网站建设蓝渊考研培训
  • 提供企业门户网站建设我的家乡html网页模板