逻辑回归与梯度降低法所有详细推导

第三章 使用sklearn 实现机学习的分类算法

分类算法

  • 分类器的性能与计算能力和预测性能很大程度上取决于用于模型训练的数据
  • 训练机器学习算法的五个步骤:
    1. 特征的选择
    2. 肯定评价性能的标准
    3. 选择分类器及其优化算法
    4. 对模型性能的评估
    5. 算法的调优

sklearn初步使用

  • 3.1 sklearn中包括的processing 模块中的标准化类,StandardScaler对特征进行标准化处理
from sklearn.processing import StandardSacler
sc = StandardScaler() #实例化
sc.fit(X_train)
sc.transform(X_train)
# - 以上两句能够并写成一句sc.fit_transform(X_trian)
# - 咱们使用相同的放缩参数分别对训练和测试数据集以保证他们的值是彼此至关的。**可是在使用fit_transform 只能对训练集使用,而测试机则只使用fit便可。**
# - sklearn中的metrics类中包含了不少的评估参数,其中accuracy_score,
# - 中accuracy_score(y_test,y_pred),也就是那y_test与预测值相比较,得出正确率
y_pred = model.predict(X_test-std)

过拟合现象

过拟合现象出现有两个缘由:python

  • 训练集与测试集特征分布不一致(黑天鹅和白天鹅)
  • 模型训练的太过复杂,而样本量不足。
    同时针对两个缘由而出现的解决方法:
  • 收集多样化的样本
  • 简化模型
  • 交叉检验
    模型拟合

逻辑斯谛回归

感知机的一个最大缺点是:在样本不是彻底线性可分的状况下,它永远不会收敛。
分类算中的另外一个简单高效的方法:logistics regression(分类模型)算法

  • 不少状况下,咱们会将逻辑回归的输出映射到二元分类问题的解决方案,须要确保逻辑回归的输出始终落在在0-1之间,此时S型函数的输出值正好知足了这个条件,其中:

概率比(odd ratio)

特定的事件的发生的概率,用数学公式表示为:$\frac{p}{1-p} $,其中p为正事件的几率,不必定是有利的事件,而是咱们将要预测的事件。以一个患者患有某种疾病的几率,咱们能够将正事件的类标标记为y=1。
如图机器学习

  • 也就是样本特征与权重的线性组合,其计算公式:
    z = w·x + b
  • 预测获得的几率能够经过一个量化器(单位阶跃函数)简单的转化为二元输出
  • 若是y>0.5 则判断该样本类别为1,如y<0.5,则断定该样本是其余类别。
  • 对应上面的展开式,若是z≥0,则判断类别是1,不然是其余。
  • 阈值也就是0.5

经过逻辑斯谛回归模型的代价函数得到权重

  • 断定某个样本属于类别1或者0 的条件几率以下:
  • 逻辑回归的代价函数是最小二乘损失函数
    PQBB5D.png
  • 为了推导出逻辑斯蒂回归的代价函数,须要先定义一个极大似然函数L,
  • 用极大似然估计来根据给定的训练集估计出参数w,对上式两边取对数,化简为

    求极大似然函数的最大值等价于求-l(w)的最小值,即:

利用梯度降低法求参数

  • 在开始梯度降低以前,sigmoid function有一个很好的性质,

    梯度的负方向就是代价函数降低最快的方向,借助泰勒展开,能够获得(函数可微,可导)

    其中,f'(x) 和δ为向量,那么这二者的内积就等于

    当θ=π时,也就是在δ与f'(x)的方向相反时,取得最小值, 也就是降低的最快的方向了
    这里也就是: f(x+δ) - f(x) = - ||δ||·||f'(x)||

    也就是
  • 其中,wj表示第j个特征的权重,η为学习率,用来控制步长。
  • 对损失函数J(θ)中的θ的第j个权重求偏导,
    因此,在使用梯度降低法更新权重时,只要根据公式

    当样本量极大的时候,每次更新权重须要耗费大量的算力,这时能够采起随机梯度降低法,这时,每次迭代的时候须要将样本从新打乱,而后用下面的式子更新权重

参考文献:函数

  • Raschka S. Python Machine Learning[M]. Packt Publishing, 2015
  • 周志华. 机器学习 : = Machine learning[M]. 清华大学出版社, 2016.
相关文章
相关标签/搜索