首页 > 其他分享 >吴恩达机器学习 week1 一元回归模型的成本函数

吴恩达机器学习 week1 一元回归模型的成本函数

时间:2024-05-25 09:27:50浏览次数:11  
标签:一元 吴恩达 plt 函数 train cost week1 模型 成本

01 学习目标

       学习建立一元线性回归模型的成本函数

02 实现工具

    (1)代码运行环境

              Python语言,Jupyter notebook平台

    (2)所需模块

             NumPy,Matplotlib,lab_utils_uni

            (lab_utils_uni是课程中用于绘制复杂图形的安装包)

03 问题陈述

       问题需求为:根据二手房交易平台已成交的既有数据,建立准确的回归模型。

       我们的任务:建立成本函数,并依次确定回归模型的参数。

04 构建成本函数

      (1)导入所需模块

import numpy as np
%matplotlib widget
import matplotlib.pyplot as plt
from lab_utils_uni import plt_intuition, plt_stationary, plt_update_onclick, soup_bowl
plt.style.use('./deeplearning.mplstyle')

      (deeplearning.mplstyle为课程中使用的样式文件,见前1篇文章;%matplotlib widget为导入matplotlib的交互式绘图功能,需要jupyter支持最新版本的ipympl模块,可通过“pip install --upgrade ipympl”更新

     (2)读取“数据集”,并绘于图中

# x_train为输入变量,其变量值为房子面积,单位:平方米
# y_train为目标变量,其变量值为房子成交价,单位:万
x_train = np.array([100, 170, 200, 250, 300, 320])
y_train = np.array([250, 300, 480,  430,   630, 730])

# 采用散点图绘出数据
plt.scatter(x_train, y_train, marker='x', c='r')
# 设置标题
plt.title("Housing Prices")
# y-axis label
plt.ylabel('Price (w)')
# x-axis label
plt.xlabel('Size (m^2)')
plt.show()

          运行以上代码,结果为:

(3)建立回归模型的成本函数

         首先写出一元线性回归线性模型。这次,参数w和b不再赋值:

f_{w,b}(x^{i})=wx^{i}+b

        然后根据定义构建成本函数:

J(w,b)=\frac{1}{2m}\sum_{i=0}^{m-1}(f_{w,b}(x^{i})-y^{i})^{2}

       J(w,b)即为成本值,表示为模型预测值与真实值之差平方的平均值,J受参数w和b影响。

       接着,在jupyter中用定义函数的形式定义成本函数,以便适于大量数据计算:

def compute_cost(x, y, w, b): 
    """
    Computes the cost function for linear regression.
    
    Args:
      x (ndarray (m,)): Data, m examples 
      y (ndarray (m,)): target values
      w,b (scalar)    : model parameters  
    
    Returns
        total_cost (float): The cost of using w,b as the parameters for linear regression
               to fit the data points in x and y
    """
    # number of training examples
    m = x.shape[0] 
    
    cost_sum = 0 
    for i in range(m): 
        f_wb = w * x[i] + b   
        cost = (f_wb - y[i]) ** 2  
        cost_sum = cost_sum + cost  
    total_cost = (1 / (2 * m)) * cost_sum  

    return total_cost

        这里,为理解成本函数的几何意义,给出下图:

       上图中左侧的蓝色竖线即为“损失”(loss),所有“损失”的平方的平均值即为“成本”(cost)。右侧曲线即为成本函数J(w)的图形,我们构建成本函数的目的即在于找出J(w)图的最小值,此时可得到最优的回归模型。J(w,b)同理,不过J(w)图为二维曲线,J(w,b)图为三维曲面。

05 成本函数优化(参数优化)

       绘出线性回归模型和成本函数图形:

plt.close('all') 
fig, ax, dyn_items = plt_stationary(x_train, y_train)
updater = plt_update_onclick(fig, ax, x_train, y_train, dyn_items)

       运行以上代码,结果为:

        图中,上左图为回归模型的预测效果,上右图为交互图(用于鼠标点选w和b后观察上左图的预测效果),下图为成本函数的三维曲面图(图中显示由(w,b)确定的点)。

     (本文为述清概念简化为通过点选(优化)确定参数w和b,科学的确定方法后文涉及。)

       上图中成本函数仅显示局部,实际的成本函数如下:

06 总结

    (1)建立成本函数的目的为衡量回归模型的预测效果(即“成本”大小),确定最优的模型参数

    (2)“成本”(cost)是针对全部“训练数据集”而言,对应函数为成本函数;“损失”(loss)是针对单个数据而言,对应函数为损失函数

标签:一元,吴恩达,plt,函数,train,cost,week1,模型,成本
From: https://blog.csdn.net/weixin_43490087/article/details/139179085

相关文章

  • 深度学习吴恩达学习记录 141-150
    人脸验证问题:对于进行人脸验证我们在数据库中可能只有每位员工的一张照片而已,然而要通过这一张照片验证出是否是库中的员工,同时如果在库中增加成员是否能验证出来,这种数据集实在太小,可以使用learningasimilarityfunction这个函数进行计算验证,其作用就是设置一个阈值,如果说对人......
  • 深度学习吴恩达学习记录 133-140
    目标定位:对于图像上的目标,如果进行识别后还需要将其在图上进行框出,我们就要多训练几个数据,一个就是识别目标的中心点,另外一个就是我设置圈出的长与宽可以记为bx,by,bh,bw;根据训练出的模型在图像检测上预测出这四个点的位置,当物体出现的时候就可以根据这个数据进行定位。当然要做......
  • 深度学习吴恩达学习记录
     经典网络:LeNet-5: AlexNet: VGG-16:  ResNet网络:先引入残差块的概念:远眺连接概念:如下图中,除了正常的全连接外,还有将第一层计算的激活函数值不经过第二层直接使用到第二层的激活函数中,这就是一种远眺连接。而下面这种远眺连接与全连接的一块神经就是残差块。所以对......
  • NewStarCTF 2023 week1 writeup
    NewStarCTF2023week1writeup花了几天时间,终于把week1的题目做完了,还是学到不少东西的,题目质量大多都挺高的,很适合新手入门。Web1.泄漏的秘密url/robots.txt查看robots协议,找到第一部分的flagPARTONE:flag{r0bots_1s_s0_us3fulurl/www.zip查看网站备份,找到第二部分的fla......
  • 吴恩达机器学习-第三课-第三周
    吴恩达机器学习学习视频参考b站:吴恩达机器学习本文是参照视频学习的随手笔记,便于后续回顾。强化学习(reinforcelearning)什么是强化学习示例:如何让遥控飞机学会倒飞?监督学习并不适用,因为很难有好的数据集奖励函数,告诉飞机什么时候是表现好什么时候是表现差强化学习是你需要......
  • 吴恩达机器学习-第三课-第二周
    吴恩达机器学习学习视频参考b站:吴恩达机器学习本文是参照视频学习的随手笔记,便于后续回顾。推荐系统(RecommenderSystem)提出建议预测电影评分示例用户给电影打1-5星,没看过不打分n表示数量,r表示是否打分,y表示分数使用每个特征电影特征,例如更倾向于爱情电影还是动作电影w......
  • 04_一元线性回归
    第4章一元线性回归4.1一元线性回归模型从总体中抽取n个样本,一元线性回归模型如下:\[y_i=\alpha+\betax_i+\epsilon_i\quad(i=1,\dots,n)\]\(n\):样本容量\(\alpha+\betax_i\):总体回归线(populationregressionline)/总体回归函数(populationregressionfunction,P......
  • dasctf2024 week1复现
    复现题目.web1234开局源码泄露www.zipindex.php<?phperror_reporting(0);include"class.php";$Config=unserialize(file_get_contents("/tmp/Config"));foreach($_POSTas$key=>$value){if(!is_array($value)){$param[$key]=ad......
  • 吴恩达机器学习-第二课-第四周
    吴恩达机器学习学习视频参考b站:吴恩达机器学习本文是参照视频学习的随手笔记,便于后续回顾。决策树决策树模型(DecisionTreeModel)猫分类示例通过决策树模型判断是否为猫一些术语:根结点,决策节点(包括根结点),叶子结点决策树算法是在所有的决策树模型中选一个效果很好的学......
  • 新手大白话 [HNCTF 2022 Week1]Challenge__rce RCE自增绕过
    今天遇到个RCE难题,挺另类的,这里做个复盘。进入题目直接给出了源码,可以发现就是个无字母RCE,且有长度限制不能使用url取反绕过,到这想到了以前的一个rce自增绕过方式,但是以前的没有长度限制。点击查看代码<?phperror_reporting(0);if(isset($_GET['hint'])){highlight_f......