当前位置:网站首页 > Python编程 > 正文

sigmoid算法(sigmoid函数python)



<PYTHON_MACHINE_LEARNING> chapter3
A Tour of Machine Learning
Classifers Using Scikit-learn

在我们进行分类的时,所取样本中的特征值一般都分布在实数域,但是我们想得到的往往是一个在 [0,1] 中的类似概率的值。 或者这么说,为了让特征值之间不会因为相差过大而造成干扰,比如,只有一个特征取值特别大,但是其他取值很小的时候, 我们需要对数据进行归一化。 即我们需要用一个从R 到 [0,1] 的单射来先处理特征值矩阵,然后再进行机器学习。当所用的映射是 sigmoid函数的时候,我们管这样的机器学习算法叫做逻辑回归。
PS:逻辑回归是用来分类的!!!不是用来做线性回归的! sigmoid 函数的反函数叫做 logit 函数, 这就是逻辑回归 logistic regression 的来历,跟逻辑没啥关系......


这个函数的特点就是一条S型的定义域在 R 中, 值域在 [0,1] 中的函数
同时它也代表 y=1的概率, y=0 的概率为 1-phi(z)
画一下图来说明一下

  • 基本原理
    逻辑回归算法跟Adaline 线性自适应算法很类似,区别只不过是把激活函数从恒同映射 y = z 换成了 y = sigmoid(z)
  • 逻辑回归中的损失函数
    回忆一下在梯度下降模型 Adaline 中应用到的损失函数 cost function 平方差函数

    这是线性回归的一种损失函数
    但是对于S型的sigmoid函数,这样的定义在 y 趋近-1,1 的时候会特别接近零
    对于逻辑回归 logistic regression 损失函数是这样定义的
    对数似然损失函数(交叉熵)
    Ps: 一下所有的 log 其实都是 ln


这个损失函数是怎么来的呢? 极大似然法


先定义似然函数(每个样本都认为是独立的):



似然函数可以看成条件概率


关于似然函数的概念可以参考kevinGao的博客

http://www.cnblogs.com/kevinGaoblog/archive/2012/03/29/2424346.html

根据似然函数的概念,令似然函数最大的那个概率就是最合理的。我们想最大化似然函数,但是这个形式还是不够好看,毕竟是连乘的形式,所以,我们取一下对数


现在好了,我们知道:当 权向量

w

使

l

最大的时候,

w

最合理


那么我们就定义

J

函数 :

J = -l

为了更好的理解,我们看一下单个样本的损失函数:


以y=1为例,当预测值接近正确值的时候,

J

会收敛到 0

  • 权值更新
    跟梯度下降法一样,按照公式

经过计算


我们就有了权值更新的公式
居然跟Adaline一模一样哎
意不意外?惊不惊喜?


这意味着,我们在单独编写

LogisticRegression

类的时候,只需要在

Adaline

类中重新定义一下激励函数 phi 就可以了

我们再上一章 sklearn 实现 Perceptron 感知机的基础上用 Iris 的数据集来实践一下

过拟合与欠拟合是机器学习常见的两个问题

  • 过拟合
    俗称想太多。为了很好的拟合训练集,模型使用了太多的参数,变得特别复杂,甚至噪音与误差都被分成了一类,这样的模型虽然对训练集模拟的很好,但是对用来预测的数据集却特别不可靠,我们说 :这样的模型 has a high variance (高方差)
    -欠拟合
    对应的,头脑太简单。模型太过简单以至于对预测用数据集来说也不可靠
    我们这这样的模型 has a high bias (高偏差)
  • 正则化 Ruglarization
    为了防止过拟合,正则化是一种常用的方法。正则化,简单地说,就是引入额外的偏差去降低一些极端权值的影响。
    最常见的正则化,是 L2正则化,他在损失函数的末尾加上这样一项

    Lambda 被称为正则化参数
    这样损失函数形式变为:

在类 LogisticRegression 中的参数C 来源于支持向量机(SVM)的相关概念, 这里先不作展开


损失函数的最终形式:

  • C值对模拟的影响
    设置从 -5 到 4 10不同的幂作为C值,我们看一下 权值的影响
到此这篇sigmoid算法(sigmoid函数python)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • python 函数的类型(python函数有哪几类)2025-03-11 18:27:06
  • python服务器部署上线流程(python3 服务器)2025-03-11 18:27:06
  • onnx模型部署 python(onnx模型部署c语音)2025-03-11 18:27:06
  • python函数图像绘制二次函数(python画一次函数图像)2025-03-11 18:27:06
  • py文件如何创建(python建立py文件夹过程)2025-03-11 18:27:06
  • int怎么用python(int怎么用Excel)2025-03-11 18:27:06
  • conda虚拟环境列表(conda创建虚拟环境 python版本不对)2025-03-11 18:27:06
  • pivot函数 python(pivot函数 python报错索引)2025-03-11 18:27:06
  • py文件如何执行(python执行py文件)2025-03-11 18:27:06
  • python字典的增删改查(python 字典 增加)2025-03-11 18:27:06
  • 全屏图片