cost function 成本函数

cost function-成本函数





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')

我们使用与上一个实验室之前相同的两个数据点;

1000平方英尺的房子以300000美元的价格出售

2000平方英尺的房屋以500000美元的价格出售。

x_train = np.array([1.0, 2.0])           #(size in 1000 square feet)
y_train = np.array([300.0, 500.0]) #(price in 1000s of dollars)

2、计算成本:

变量的成本方程(1)



下面是以我们的预测为例,使用参数,(2)



下面是目标值和预测值之间的平方差。(3)

这些差异在所有示例,并除以2m以产生成本,(,)。

注意求和范围通常从 1 到 m,而代码将从 0 到 m-1。

下面的代码通过循环每个示例来计算成本。在每个循环中:

f_wb,计算预测

计算目标和预测之间的差异并平方。

这被添加到总成本中。

def compute_cost(x, y, w, b):
"""
Computes the cost function for linear regression.
Args:
x (ndarray (m,)): 数据,m个示例
y (ndarray (m,)): 数据,m个示例
w,b (标量) : 模型参数
Returns
total_cost (float): 使用w,b作为线性回归参数的成本以拟合x和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

你的目标是找到一个模型,()=+, 带参数, , 它将在给定输入的情况下准确预测房屋价值。

成本是衡量模型在训练数据上的准确性的指标。

上面的成本方程(1)表明,如果 和 可以这样选择,使得预测,() 匹配目标数据, (,(())−())2 将为零并且成本最小化。

在这个简单的两点示例中,在之前的实验中,确定=100提供了最佳解决方案,所以让我们设置 到100,并专注于。

下面,使用滑块控件选择的值 从而使成本最小化。

plt_intuition(x_train,y_train)
interactive(children=(IntSlider(value=150, description='w', max=400, step=10), Output()), _dom_classes=('widge…

该图包含一些值得注意的点。当=200,与之前实验室的结果相匹配。

由于目标和修脚之间的差异在成本方程中是平方的。

因此当要么太大,要么太小。

使用通过最小化成本选择的w和b会生成一条与数据完美匹配的线。

3、成本函数可视化-3D

提供了绘图例程,例程位于本地目录的lab_utils_uni.py中。

4、更大的数据集

它使用指导性来查看具有更多数据点的方案。此数据集包括不在同一行上的数据点。这对成本方程式意味着什么?我们能找到吗 和 那会给我们0的成本?

x_train = np.array([1.0, 1.7, 2.0, 2.5, 3.0, 3.2])
y_train = np.array([250, 300, 480, 430, 630, 730,])
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)
Figure

请注意左图中的虚线。这些表示训练集中每个示例贡献的成本部分。在这种情况下,值大约 w=209和 b=2.4提供低成本。请注意,由于我们的训练示例不在一条线上,因此最小成本不为零。

5、凸成本曲面

本函数对损失进行平方的事实确保了“误差面”像汤碗一样凸起。它将始终具有一个最小值,可以通过遵循所有维度的梯度来达到该最小值。在上一个剧情中,因为 和 尺寸缩放不同,这不容易识别。下图,其中 和 是对称的。

soup_bowl()
Figure

cost function 成本函数的更多相关文章

  1. 吴恩达机器学习笔记 - cost function and gradient descent

    一.简介 cost fuction是用来判断机器预算值和实际值得误差,一般来说训练机器学习的目的就是希望将这个cost function减到最小.本文会介绍如何找到这个最小值. 二.线性回归的cost ...

  2. loss function与cost function

    实际上,代价函数(cost function)和损失函数(loss function 亦称为 error function)是同义的.它们都是事先定义一个假设函数(hypothesis),通过训练集由 ...

  3. 【caffe】loss function、cost function和error

    @tags: caffe 机器学习 在机器学习(暂时限定有监督学习)中,常见的算法大都可以划分为两个部分来理解它 一个是它的Hypothesis function,也就是你用一个函数f,来拟合任意一个 ...

  4. 逻辑回归损失函数(cost function)

    逻辑回归模型预估的是样本属于某个分类的概率,其损失函数(Cost Function)可以像线型回归那样,以均方差来表示:也可以用对数.概率等方法.损失函数本质上是衡量”模型预估值“到“实际值”的距离, ...

  5. c++ virturn function -- 虚函数

    c++ virturn function -- 虚函数 pure irtual function  -- 纯虚函数   先看例子 #include <iostream> using nam ...

  6. [Machine Learning] 浅谈LR算法的Cost Function

    了解LR的同学们都知道,LR采用了最小化交叉熵或者最大化似然估计函数来作为Cost Function,那有个很有意思的问题来了,为什么我们不用更加简单熟悉的最小化平方误差函数(MSE)呢? 我个人理解 ...

  7. logistic回归具体解释(二):损失函数(cost function)具体解释

    有监督学习 机器学习分为有监督学习,无监督学习,半监督学习.强化学习.对于逻辑回归来说,就是一种典型的有监督学习. 既然是有监督学习,训练集自然能够用例如以下方式表述: {(x1,y1),(x2,y2 ...

  8. 机器学习 损失函数(Loss/Error Function)、代价函数(Cost Function)和目标函数(Objective function)

    损失函数(Loss/Error Function): 计算单个训练集的误差,例如:欧氏距离,交叉熵,对比损失,合页损失 代价函数(Cost Function): 计算整个训练集所有损失之和的平均值 至 ...

  9. 损失函数(Loss function) 和 代价函数(Cost function)

    1损失函数和代价函数的区别: 损失函数(Loss function):指单个训练样本进行预测的结果与实际结果的误差. 代价函数(Cost function):整个训练集,所有样本误差总和(所有损失函数 ...

  10. K-means: optimization objective(最小化cost function来求相应的参数)

    类似于linear regression,K-means算法也optimization objective或者是试图使cost function求最小值. 了解K-means算法的optimizati ...

随机推荐

  1. npm config get prefer-offline

    npm config get prefer-offline

  2. 在Unity3D中开发的Rim Shader

    Swordmaster Rim Shaders 特点 本资源包共包含两种Rim效果的Shader (1)Rim Bumped Specular. (2)Rim StandardPBR(Metallic ...

  3. 主要转引本地的pycharm如何与服务器连接

    需求:本地电脑pycharm上编写程序,在服务器端运行代码. 主要参考了这两篇文章: 1. https://blog.csdn.net/qq_43391414/article/details/1205 ...

  4. Treewidget节点的删除

    父节点的删除 // 第一种 // 树状列表父节点的删除 // 有点莽 不支持这种操作 delete ui->treeWidget->topLevelItem(0); //  第二种 QTr ...

  5. cat、more、less、tail、head文件查看指令辨析

    1.cat 简介 cat [OPTION]... [FILE]... cat 可以将多个文本连接起来并输出,当省略输入文件或输入文件用字符-替代时,读取标准输入 常用参数 -n \(~~~~\)输出行 ...

  6. Verilog 变量声明与数据类型一

    Verilog 变量声明与数据类型一 Verilog语法中最基本的数据类型有 线网(wire),寄存器(reg)和整数(integer)三种类型,这三种数据类型是可综合的数据类型,在Verilog 程 ...

  7. C语言初级阶段7——指针2——特殊指针

    C语言初级阶段7--指针2--特殊指针 指针函数:是一个函数,返回值类型是一个指针. #include<stdio.h> int* fun() { //a是一个局部变量 int a = 1 ...

  8. 2003031120—廖威—Python数据分析第三周作业—numpy的简单操

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 这个作业要求链接 https://edu.cnblogs.com/campus/pexy ...

  9. C/C++ 顺序表的初始化、添加、插入、删除(删除顺序表中指定的所有元素)

    #include <iostream> #include <stdlib.h> #define MAX_SIZE 100 using namespace std; typede ...

  10. 网络数据请求get&post