机器学习实战第五章 - Logistic回归(包括GD和SGD的比较)

一,Logistic回归

  • 优点:计算代价不高,易于理解和实现。
  • 缺点:容易欠拟合,分类精度可能不高。
  • 适用数据类型:数值型和标称型。

主要就是利用sigmoid函数 σ(z)=11+expz 的特点,如下图所示:
Sigmoid函数
z=WTX ,如果 z>0 σ(z)>0.5 ,就将该样本分为1类;如果 z<0 σ(z)<0.5 ,就将该样本分为0类。

关键是如何利用训练数据找到最佳的模型参数 W

二,模型参数估计

利用极大似然估计法来估计模型参数。
过程如下:

  1. 首先假设P(Y=1|x)=π(x),P(Y=0|x)=1π(x)

    • 则似然函数为:
      i=1n[π(xi)]yi[1π(xi)]1yi
      • 为了加快求解,取对数,则对数似然函数为:
        L(w)=i=1n[yilogπ(xi)+(1yi)log(1π(xi))]=i=1n[yi(wxi)log(1+exp(wxi))]
      • L(w) 求极大值,得到w的估计值。常用方法有梯度下降法、随机梯度下降法和拟牛顿法等等。
      • 三,梯度下降法和随机梯度下降法

        核心公式如下:
        w:=wαL(w)w=wαerrorVecdataMatrix
        其中w为向量。

        两者之间最主要的区别在于随机梯度下降法一次仅用一个样本点来更新回归系数。
        而且为了减少在训练过程中回归系数的周期性波动,可以使用样本随机选择 α 动态减少机制的随机梯度下降法,该方法也比采用固定 α 的方法收敛速度更快。具体代码如下所示:

        def stocGradDescent(dataMatrix,classLabels,numsIter):
            m,n = shape(dataMatrix)
            weights = ones(n)
            for k in range(numsIter):
                for i in range(m):
                    alpha = 4.0/(i+k+1.0)+0.01
                    randIndex = int(random.uniform(0,m))
                    h = sigmoid(sum(dataMatrix[randIndex]*weights))
                    error = classLabels[randIndex]-h
                    weights = weights + alpha*error*dataMatrix[randIndex]
            return weights

        其中第6行就是 α 动态减少机制,第7行就是样本的随机选择。

        总之,随机梯度下降法与梯度下降法的效果相当,但占用资源更少。此外,随机梯度下降法是一个在线算法,它可以在新数据到来时就完成参数更新,而不需要重新读取整个数据集来进行批处理运算。

        加速梯度下降法的技巧

        1,特征缩放(feature scaling)

        xi=xiSi

        其中, SixiSi=max(xi)min(xi)

        2,均值归一化(mean normalization)

        xi=xiuiSi

        其中, uixiSiSixi

        四,处理数据集中的缺失值

        主要有以下几种方法:

        1. 使用可用特征的均值来填补缺失值。
        2. 使用特殊值来填补缺失值,如-1、0。
        3. 忽略缺失值的样本。
        4. 使用相似样本的均值来填补缺失值。
        5. 使用另外的机器学习算法来预测缺失值。
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径。 随着统计学的发展,统计学习在机器学习中占据了重要地位,支持向量机(SVM)、决策树和随机森林等算法的提出和发展,使得机器学习能够更好地处理分类、回归和聚类等任务。进入21世纪,深度学习成为机器学习领域的重要突破,采用多层神经网络模型,通过大量数据和强大的计算能力来训练模型,在计算机视觉、自然语言处理和语音识别等领域取得了显著的成果。 机器学习算法在各个领域都有广泛的应用,包括医疗保健、金融、零售和电子商务、智能交通、生产制造等。例如,在医疗领域,机器学习技术可以帮助医生识别医疗影像,辅助诊断疾病,预测病情发展趋势,并为患者提供个性化的治疗方案。在金融领域,机器学习模型可以分析金融数据,识别潜在风险,预测股票市场的走势等。 未来,随着传感器技术和计算能力的提升,机器学习将在自动驾驶、智能家居等领域发挥更大的作用。同时,随着物联网技术的普及,机器学习将助力智能家居设备实现更加智能化和个性化的功能。在工业制造领域,机器学习也将实现广泛应用,如智能制造、工艺优化和质量控制等。 总之,机器学习是一门具有广阔应用前景和深远影响的学科,它将持续推动人工智能技术的发展,为人类社会的进步做出重要贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值