吴恩达 【机器学习】第七章 Logistic回归

吴恩达 【机器学习】第七章 逻辑回归Logistic Regression

7.1 分类Classification

  • 预测离散的变量
  • 举例证明线性回归不能很好地处理分类问题
  • 逻辑回归(Logistic Regression)是解决分类(Classification)问题的一种算法

7.2 假设函数

  • 逻辑回归,该模型的输出变量范围始终在0和1之间。
  • 逻辑回归模型的假设是:
    h θ ( x ) = g ( θ T x ) h_\theta \left( x \right)=g\left(\theta^{T}x \right) hθ(x)=g(θTx)
    g ( z ) = 1 1 + e − z g\left( z \right)=\frac{1}{1+{{e}^{-z}}} g(z)=1+ez1
  • 其中:
    1. X X X 代表特征向量
    2. g g g 代表逻辑函数(logistic function)是一个常用的逻辑函数,这里用Sigmoid函数(Sigmoid function),公式为: g ( z ) = 1 1 + e − z g\left( z \right)=\frac{1}{1+{{e}^{-z}}} g(z)=1+ez1

python代码实现:

import numpy as np
    
def sigmoid(z):
   return 1 / (1 + np.exp(-z))

该函数的图像为:
在这里插入图片描述

  • 对模型的理解:
    h θ ( x ) = g ( θ T x ) h_\theta \left( x \right)=g\left(\theta^{T}x \right) hθ(x)=g(θTx)
    g ( z ) = 1 1 + e − z g\left( z \right)=\frac{1}{1+{{e}^{-z}}} g(z)=1+ez1

  • h θ ( x ) h_\theta \left( x \right) hθ(x)的作用是:对于给定的输入变量,根据选择的参数计算输出变量=1的可能性(estimated probablity)即 h θ ( x ) = P ( y = 1 ∣ x ; θ ) h_\theta \left( x \right)=P\left( y=1|x;\theta \right) hθ(x)=P(y=1x;θ)
    例如,如果对于给定的 x x x,通过已经确定的参数计算得出 h θ ( x ) = 0.7 h_\theta \left( x \right)=0.7 hθ(x)=0.7,则表示有70%的几率 y y y为正向类,相应地 y y y为负向类的几率为1-0.7=0.3。

7.3 决策界限Decision Boundary

  • 决策边界是由参数 θ \theta θ决定的,而不是由训练集决定的
  • 训练集是用来拟合(fit)参数 θ \theta θ
  • 举例:
    在这里插入图片描述
    在这里插入图片描述
  • 我们可以用非常复杂的模型来适应非常复杂形状的判定边界。

7.4 代价函数

  • 如果用线性回归里用的差平方作为cost函数,再加上非线性的sigmiod函数,会使得最终函数非凸(non-convex),有很多局部最小值,梯度下降很难找到全局最优解在这里插入图片描述
  • 线性回归的代价函数为:
    J ( θ ) = 1 m ∑ i = 1 m 1 2 ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{1}{2}{{\left( {h_\theta}\left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}} J(θ)=m1i=1m21(hθ(x(i))y(i))2
  • 我们重新定义逻辑回归的代价函数为:
    J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{{Cost}\left( {h_\theta}\left( {x}^{\left( i \right)} \right),{y}^{\left( i \right)} \right)} J(θ)=m1i=1mCost(hθ(x(i)),y(i))
  • 其中 h θ ( x ) {h_\theta}\left( x \right) hθ(x) C o s t ( h θ ( x ) , y ) Cost\left( {h_\theta}\left( x \right),y \right) Cost(hθ(x),y)之间的关系如下图所示:
    在这里插入图片描述
  • 这样构建的 C o s t ( h θ ( x ) , y ) Cost\left( {h_\theta}\left( x \right),y \right) Cost(hθ(x),y)函数的特点是:
    1. 当实际的 y = 1 y=1 y=1 h θ ( x ) {h_\theta}\left( x \right) hθ(x)也为 1 时误差为 0,
      y = 1 y=1 y=1 h θ ( x ) {h_\theta}\left( x \right) hθ(x)不为1时误差随着 h θ ( x ) {h_\theta}\left( x \right) hθ(x)变小而变大;
    2. 当实际的 y = 0 y=0 y=0 h θ ( x ) {h_\theta}\left( x \right) hθ(x)也为 0 时代价为 0,
      y = 0 y=0 y=0 h θ ( x ) {h_\theta}\left( x \right) hθ(x)不为 0时误差随着 h θ ( x ) {h_\theta}\left( x \right) hθ(x)的变大而变大。
  • 将构建的 C o s t ( h θ ( x ) , y ) Cost\left( {h_\theta}\left( x \right),y \right) Cost(hθ(x),y)简化如下:
    C o s t ( h θ ( x ) , y ) = − y × l o g ( h θ ( x ) ) − ( 1 − y ) × l o g ( 1 − h θ ( x ) ) Cost\left( {h_\theta}\left( x \right),y \right)=-y\times log\left( {h_\theta}\left( x \right) \right)-(1-y)\times log\left( 1-{h_\theta}\left( x \right) \right) Cost(hθ(x),y)=y×log(hθ(x))(1y)×log(1hθ(x))
    在这里插入图片描述
  • 代入代价函数得到:
    J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) log ⁡ ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]} J(θ)=m1i=1m[y(i)log(hθ(x(i)))(1y(i))log(1hθ(x(i)))]
    即: J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J\left( \theta \right)=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]} J(θ)=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

Python代码实现:

import numpy as np
    
def cost(theta, X, y):    
	theta = np.matrix(theta)
	X = np.matrix(X)
	y = np.matrix(y)
	first = np.multiply(-y, np.log(sigmoid(X* theta.T)))
	second = np.multiply((1 - y), np.log(1 - sigmoid(X* theta.T)))
	return np.sum(first - second) / (len(X))

7.5 简化代价函数和梯度下降

  • 简化代价函数
    在这里插入图片描述
    在这里插入图片描述
  • 梯度下降
    在这里插入图片描述

7.6 高级优化

用来使代价函数最小化的高级算法

  • 梯度下降
  • 共轭梯度法 (Conjugate Gradient)
  • BFGS (变尺度法)
  • L-BFGS (限制变尺度法)
    在这里插入图片描述

7.7 多类别分类问题:一对多

  • 举例
    在这里插入图片描述
  • 对比
    在这里插入图片描述
  • 做法:"一对余"方法
  1. 我们将多个类中的一个类标记为正向类( y = 1 y=1 y=1),然后将其他所有类都标记为负向类,这个模型记作 h θ ( 1 ) ( x ) h_\theta^{\left( 1 \right)}\left( x \right) hθ(1)(x)
  2. 接着,类似地第我们选择另一个类标记为正向类( y = 2 y=2 y=2),再将其它类都标记为负向类,将这个模型记作 h θ ( 2 ) ( x ) h_\theta^{\left( 2 \right)}\left( x \right) hθ(2)(x),依此类推。
  3. 然后,我们得到一系列的模型简记为: h θ ( i ) ( x ) = p ( y = i ∣ x ; θ ) h_\theta^{\left( i \right)}\left( x \right)=p\left( y=i|x;\theta \right) hθ(i)(x)=p(y=ix;θ)其中: i = ( 1 , 2 , 3.... k ) i=\left( 1,2,3....k \right) i=(1,2,3....k)
  4. 最后,在我们需要做预测时,我们将所有的分类机都运行一遍,然后对每一个输入变量,都选择最高可能性的输出变量。即: max ⁡ i h θ ( i ) ( x ) \mathop{\max}\limits_i h_\theta^{\left( i \right)}\left( x \right) imaxhθ(i)(x)
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测
轻型卡车零部件销售平台是一个专门针对轻型卡车用户和维修服务商设计的电子商务系统,旨在提供一个便捷、高效的在线购买渠道,用于获取各种卡车零部件和配件。该平台通过整合供应链、优化库存管理和提供卓越的客户服务,为轻型卡车的维护和修理提供支持。以下是该平台可能包含的一些关键特性: 1. **产品目录**:提供一个全面的在线目录,展示各种轻型卡车的零部件,包括发动机部件、悬挂系统、电子设备、车身零件等。 2. **品牌和型号筛选**:允许用户根据品牌、型号、年份和其他规格筛选零部件,确保用户能够快速找到适配其车辆的配件。 3. **库存管理**:实时更新库存状态,确保用户能够看到最新的产品可用性,并在缺货时提供预计到货时间。 4. **在线订购**:用户可以通过安全的在线支付系统轻松下单购买所需零部件,支持多种支付方式。 5. **价格和促销**:提供有竞争力的价格和定期促销活动,包括折扣、优惠券和捆绑销售,以吸引和保留客户。 6. **用户评价和反馈**:允许用户对购买的产品进行评价和提供反馈,帮助其他用户做出购买决策。 7. **快速配送**:与物流服务提供商合作,确保订单能够快速、准确地配送到客户手中。 8. **售后服务**:提供客户支持服务,解答用户关于产品和订单的问题,并处理退换货事宜。 9. **技术支持**:提供在线技术支持,帮助用户解决安装和使用零部件时遇到的技术问题。 10. **移动应用**:开发移动应用程序,让用户能够通过智能手机或平板电脑随时随地访问平台和进行购买。 11. **B2B功能**:为商业客户提供批量购买选项、账户管理和定制报价服务。 12. **数据分析**:利用数据分析工具来优化销售策略,提高用户满意度,并增强用户体验。 轻型卡车零部件销售平台通过提供一站式的购物体验,帮助用户节省时间和金钱,同时确保他们能够获得高质量的产品和服务。随着电子商务的不断进步和物流网络的扩展,这样的平台在提供便利性、选择性和可靠性方面发挥着越来越重要的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值