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. Delphi7_VCL线程的使用(一)

    1.TThread类的属性 (1)FreeOnTerminate属性 该属性用于指定当前的线程终止时是否自动删除线程对象.默认值为true. 语法: 1 Property FreeOnTerminat ...

  2. vue后台管理系统——用户管理模块

    电商后台管理系统的功能--用户管理模块 1. 用户管理概述 通过后台管理用户的账号信息,具体包括用户信息的展示.添加.修改.删除.角色分配.账号启用/注销等功能. 用户信息列表展示 添加用户 修改用户 ...

  3. Debug --> wireshark中的lua插件使用

    一.使用Lua脚本对pcap文件按流进行存储 https://zhuanlan.zhihu.com/p/35188803 二.使用tshark对pcap报文进行批量切流 https://blog.cs ...

  4. Vue.sync修饰符与this.$emit('update:xxx', newXXX)

    Vue通过prop进行双向数据绑定.子组件数据变化,一般只能通过 this.$emit(func, val) 回调父组件函数来传值给父组件. Vue2.3版本引入sync,作为一个事件绑定语法糖,当子 ...

  5. 攻防(一)tomcat CVE-2020-1938 ftp 21端口

    TOMCAT kali自带POE msf6 > use auxiliary/admin/http/tomcat_ghostcat set RHOST 10.98.xx.xx msf6 auxil ...

  6. 学习JavaScript第五周

    MySQL基本内容: 访问:2种 ​ 1.图形化界面 - 傻瓜式 ​ 要求:同时打开apache和mysql ​ 访问:127.0.0.1:端口号/phpmyadmin ​ localhost:端口号 ...

  7. 问题记录04:记录两种C#引用C++DLL报错的解决方法。

    两种C#引用C++DLL报错的解决方法 无法加载DLL"***.dll":找不到指定的模块(异常来自HRESULT:0x8007007E) 解决方法:参考链接 试图加载格式不正确的 ...

  8. [C++] Linux TCP Socket 实例- 阻塞

    Linux平台 TCP Socket通信实例,发现用代码注释记笔记也不错 TCP server 阻塞 1 // 两个进程通过socket进行通信,client需要知道server的,server却不需 ...

  9. @DeclareParents声明对象的AOP

    今天在使用@DeclareParents时,使用AspectJ拓展对象的接口 public interface Encoreable { void nextPerformance(); } @Comp ...

  10. C++ || 求一个数中1的位数

    点击查看代码 #include<iostream> using namespace std; int f(int x) { int count = 0; while(x) { if (x ...