用TensorFlow实现套索回归和岭回归算法的示例

  

也有些正则方法可以限制回归算法输出结果中系数的影响,其中最常用的两种正则方法是套索回归和岭回归。

  

套索回归和岭回归算法跟常规线性回归算法极其相似,有一点不同的是,在公式中增加正则项来限制斜率(或者净斜率)。这样做的主要原因是限制特征对因变量的影响,通过增加一个依赖斜率一个的损失函数实现。

  

对于套索回归算法,在损失函数上增加一项:斜率一个的某个给定倍数。我们使用TensorFlow的逻辑操作,但没有这些操作相关的梯度,而是使用阶跃函数的连续估计,也称作连续阶跃函数,其会在截止点跳跃扩大。一会就可以看到如何使用套索回归算法。

  

对于岭回归算法,增加一个L2范数,即斜率系数的L2正则。

        #套索和岭回归   #套索回归和岭回归   #   #这个函数显示了如何使用TensorFlow解决套索或   #岭回归的   # y=Ax + b   #   #我们将使用虹膜数据,特别是:   # y=花萼长度   # x=花瓣宽度      #进口所需的库   进口matplotlib。pyplot作为plt   导入系统   进口numpy np   进口tensorflow特遣部队   从sklearn导入数据集   从tensorflow.python.framework进口操作         #指定“脊”或“套索”   regression_type=疤姿鳌?      #清除旧图   ops.reset_default_graph ()      #创建图   税=tf.Session ()      ###   #虹膜数据加载   ###      #虹膜。data=https://www.yisu.com/zixun/[(花萼长度,萼片宽,花瓣长度,花瓣宽度))   虹膜=datasets.load_iris ()   x_vals=np。阵列([x [3] x iris.data))   y_vals=np。数组([y y iris.data] [0])      ###   #模型参数   ###      #申报批大小   batch_size=50      #初始化占位符   x_data=特遣部队。占位符(=[没有,1],形状dtype=tf.float32)   y_target=特遣部队。占位符(=[没有,1],形状dtype=tf.float32)      #让结果重现性好   种子=13   np.random.seed(种子)   tf.set_random_seed(种子)      #创建变量线性回归   一个=tf.Variable (tf.random_normal(形状=[1]))   b=tf.Variable (tf.random_normal(形状=[1]))      #申报模式操作   model_output=tf.add (tf。matmul (x_data), b)      ###   #损失函数   ###      #选择合适的基于损失函数的alt="用TensorFlow实现套索回归和岭回归算法的示例”>,
  

  

用TensorFlow实现套索回归和岭回归算法的示例

  

通过在标准线性回归估计的基础上,增加一个连续的阶跃函数,实现套索回归算法。由于阶跃函数的坡度,我们需要注意步长,因为太大的步长会导致最终不收敛。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

用TensorFlow实现套索回归和岭回归算法的示例