【Python】机器学习之单变量线性回归练习(计算Cost Function)

注:练习来自于吴恩达机器学习

翻译后的题目:

你是一个餐厅的老板,你想在其他城市开分店,所以你得到了一些数据(数据在本文最下方),数据中包括不同的城市人口数和该城市带来的利润。第一列是城市的人口数,第二列是在这个城市开店所带来的利润数。

现在,假设θ0和θ1都是0,计算CostFunction,即计算损失函数

首先,本题线性回归的公式应该是这样的:

H(θ) = θ0 + θ1*X

简单的来说,本题中,θ0和θ1都为0,即求H(θ) = 0的损失值,

然后我们再给出损失的定义:

损失,通俗的来讲,即你预测值和给定值的差

这样就得出了损失函数J(θ)的定义:

m为数据的总条数,即m代表有几条数据。

第一步,导包

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

第二步,把数据读入,然后把图打出来看一下:

path = ‘ex1data1.txt‘
data = pd.read_csv(path, header=None, names=[‘Population‘, ‘Profit‘])
data.plot(kind=‘scatter‘, x=‘Population‘, y=‘Profit‘, figsize=(12, 8))
plt.show()

图:

第三步,定义一下costFunction

def computeCost(X, y, theta):
    inner = np.power(((X * theta.T) - y), 2)
    return np.sum(inner) / (2 * len(X))

第四步,然后把X从data分出来,Y从data分出来,在X的左边再加一列1,

分出来后的结果为,X为97行2列,Y为97行1列,θ为1行2列,

costFunction是计算矩阵X*矩阵θ的转置得到的值来和真实的Y值比较,计算Cost

data.insert(0, ‘Ones‘, 1)
rows = data.shape[0]
cols = data.shape[1]
X = data.iloc[:, 0:cols - 1]
Y = data.iloc[:, cols - 1:cols]
theta = np.mat(‘0,0‘)
X = np.mat(X.values)
Y = np.mat(Y.values)

cost = computeCost(X, Y, theta)
print(cost)

标准答案:

32.072733877455676

附数据集ex1data1.txt

6.1101,17.592
5.5277,9.1302
8.5186,13.662
7.0032,11.854
5.8598,6.8233
8.3829,11.886
7.4764,4.3483
8.5781,12
6.4862,6.5987
5.0546,3.8166
5.7107,3.2522
14.164,15.505
5.734,3.1551
8.4084,7.2258
5.6407,0.71618
5.3794,3.5129
6.3654,5.3048
5.1301,0.56077
6.4296,3.6518
7.0708,5.3893
6.1891,3.1386
20.27,21.767
5.4901,4.263
6.3261,5.1875
5.5649,3.0825
18.945,22.638
12.828,13.501
10.957,7.0467
13.176,14.692
22.203,24.147
5.2524,-1.22
6.5894,5.9966
9.2482,12.134
5.8918,1.8495
8.2111,6.5426
7.9334,4.5623
8.0959,4.1164
5.6063,3.3928
12.836,10.117
6.3534,5.4974
5.4069,0.55657
6.8825,3.9115
11.708,5.3854
5.7737,2.4406
7.8247,6.7318
7.0931,1.0463
5.0702,5.1337
5.8014,1.844
11.7,8.0043
5.5416,1.0179
7.5402,6.7504
5.3077,1.8396
7.4239,4.2885
7.6031,4.9981
6.3328,1.4233
6.3589,-1.4211
6.2742,2.4756
5.6397,4.6042
9.3102,3.9624
9.4536,5.4141
8.8254,5.1694
5.1793,-0.74279
21.279,17.929
14.908,12.054
18.959,17.054
7.2182,4.8852
8.2951,5.7442
10.236,7.7754
5.4994,1.0173
20.341,20.992
10.136,6.6799
7.3345,4.0259
6.0062,1.2784
7.2259,3.3411
5.0269,-2.6807
6.5479,0.29678
7.5386,3.8845
5.0365,5.7014
10.274,6.7526
5.1077,2.0576
5.7292,0.47953
5.1884,0.20421
6.3557,0.67861
9.7687,7.5435
6.5159,5.3436
8.5172,4.2415
9.1802,6.7981
6.002,0.92695
5.5204,0.152
5.0594,2.8214
5.7077,1.8451
7.6366,4.2959
5.8707,7.2029
5.3054,1.9869
8.2934,0.14454
13.394,9.0551
5.4369,0.61705

ex1data1.txt

原文地址:https://www.cnblogs.com/qinyuguan/p/11622051.html

时间: 2024-11-09 06:26:39

【Python】机器学习之单变量线性回归练习(计算Cost Function)的相关文章

机器学习入门——单变量线性回归

线性回归的概念,在高中数学书里就出现过. 给你一些样本点,如何找出一条直线,使得最逼近这些样本点. 给出一个例子:假设 x 是房子面积,y是房子价格,确定一条直线需要theta0和theta1. 给出x,我们就可以计算出房子的价格 h(x) = theta0+theta1*x 关键是如何计算出theta0和theta1,也就是如何找出这么一条直线呢? 在这里,引入一个概念,叫做cost function.m表示样本个数,也就是训练样本数目 这是一个square error,学过统计的应该经常见到

机器学习之单变量线性回归(Linear Regression with One Variable)

1. 模型表达(Model Representation) 我们的第一个学习算法是线性回归算法,让我们通过一个例子来开始.这个例子用来预测住房价格,我们使用一个数据集,该数据集包含俄勒冈州波特兰市的住房价格.在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集: 我们来看这个数据集,如果你有一个朋友正想出售自己的房子,如果你朋友的房子是1250平方尺大小,你要告诉他们这房子能卖多少钱. 那么,你可以做的一件事就是构建一个模型,也许是条直线.从这个数据模型上来看,也许你可以告诉你的朋友,他大概

机器学习:单变量线性回归及梯度下降

******************************************************************************* 注:本系列博客是博主学习Stanford大学 Andrew Ng 教授的<机器学习>课程笔记.博主深感学过课程后,不进行总结很容易遗忘,根据课程加上自己对不明白问题的补充遂有此系列博客.本系列博客包括线性回归.逻辑回归.神经网络.机器学习的应用和系统设计.支持向量机.聚类.将维.异常检测.推荐系统及大规模机器学习等内容. *******

机器学习 (一) 单变量线性回归 Linear Regression with One Variable

文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang和 JerryLead 的个人笔记,为我做个人学习笔记提供了很好的参考和榜样. § 1.  单变量线性回归 Linear Regression with One Variable 1. 代价函数Cost Function 在单变量线性回归中,已知有一个训练集有一些关于x.y的数据(如×所示),当我们的预测值

Stanford公开课机器学习---2.单变量线性回归(Linear Regression with One Variable)

单变量线性回归(Linear Regression with One Variable) 2.1 模型表达(Model Representation) m 代表训练集中实例的数量 x 代表特征/输入变量 y 代表目标变量/输出变量 (x,y) 代表训练集中的实例 (x(i),y(i) ) 代表第 i 个观察实例 h 代表学习算法的解决方案或函数也称为假设(hypothesis) 单变量线性回归:只含有一个特征/输入变量 x hθ=θ0+θ1x 2.2 代价函数(Cost Function) 目标

【Python】机器学习之单变量线性回归 利用批量梯度下降找到合适的参数值

本题目来自吴恩达机器学习视频. 题目: 你是一个餐厅的老板,你想在其他城市开分店,所以你得到了一些数据(数据在本文最下方),数据中包括不同的城市人口数和该城市带来的利润.第一列是城市的人口数,第二列是在这个城市开店所带来的利润数. 现在,假设一开始θ0和θ1都是0,利用梯度下降的方法,找到合适的θ值,其中学习速率α=0.01,迭代轮次为1000轮 上一个文章里,我们得出了CostFunction,即损失函数. 现在我们需要找到令损失函数最小的θ值,利用梯度下降函数 1.导包 import num

机器学习 Machine Learning(by Andrew Ng)----第二章 单变量线性回归(Linear Regression with One Variable)

第二章 单变量线性回归(Linear Regression with One Variable) <模型表示(Model Representation)>                                                             <代价函数(Cost Function)>                                                          <梯度下降(Gradient Descent)

Stanford机器学习Week 1—单变量线性回归

本篇讲述以下内容: 单变量线性回归 代价函数 梯度下降 单变量线性回归 回顾下上节,在回归问题中,我们给定输入变量,试图映射到连续预期结果函数上从而得到输出.单变量线性回归就是从一个输入值预测一个输出值.输入/输出的对应关系就是一个线性函数. 下面是一个根据房屋面积预测房屋价格的例子. 假设有一个数据集,我们称作训练集,数据集包括房屋面积和房屋价格数据. x:表示输入变量,也叫特征变量. y:表示输出变量,也叫目标变量. (xi,yi):表示一个识训练样本,训练集的一行.i 表示 第 i 个训练

机器学习第2课:单变量线性回归(Linear Regression with One Variable)

2.1  模型表示 之前的房屋交易问题为例,假使我们回归问题的训练集(Training Set)如下表所示: 我们将要用来描述这个回归问题的标记如下: m                代表训练集中实例的数量   x                 代表特征/输入变量 y                 代表目标变量/输出变量 (x,y)            代表训练集中的实例 (x(i),y(i)  )    代表第 i 个观察实例 h                代表学习算法的解决方案或