吴恩达机器学习课后作业

article/2025/9/19 16:24:02

目录

  • 01-linear regression
    • 线性回归预备知识
    • 单变量线性回归( 一个特征值)
    • 单变量线性回归( 多个特征值)
    • 单变量线性回归( 正规方程)

01-linear regression

线性回归预备知识

假设函数与损失函数:
将计算进
梯度下降函数
在这里插入图片描述

为了方便运算,我们需要将各个函数计算转为矩阵计算
(一)假设函数向量化
在这里插入图片描述
(二)损失函数向量化
在这里插入图片描述
(三)梯度下降函数向量化
在这里插入图片描述
综上
在这里插入图片描述

单变量线性回归( 一个特征值)

入口 利润

#开发人员:肖本杰
#阶   段 :学习
#开发时间:2022/8/1 17:02
#单变量线性回归 一个特征值import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
'''
numpy :科学计算库,处理多维数组,进行数据分析
pandas :是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的
Matplotlib:Python 的 2D绘图库
matplotlib.pyplot:提供一个类似matlab的绘图框架
'''#导入文件#
data = pd.read_csv('ex1data1.txt',sep=',',names=['population','profit']) #读取文件   names列表指定列名
# print(data.head())  #查看前五个数据
# print(data.tail())  #查看后五个数据
# print(data.describe()) #查看数据描述#可视化#
'''
画散点图
data.plot.scatter('population','profit',c='b',label='population',s=30)
第一个参数为横轴名称,第二个参数为纵轴名称,第三个参数为颜色,第四个参数为标签,第五个参数为散点大小
'''
data.plot.scatter('population','profit',c='b',label='population',s=20)
plt.show()#在第一列插入一列1
'''
DataFrame.insert(loc, column, value, allow_duplicates=False)
1. loc: 插入的列索引
2. column: 插入列的标签,字符串
3. value :插入列的值
'''
data.insert(0,'ones',1) #插入
#print(data.head())
'''ones  population   profit
0     1      6.1101  17.5920
1     1      5.5277   9.1302
2     1      8.5186  13.6620
3     1      7.0032  11.8540
4     1      5.8598   6.8233
'''#切片取出数据集形成矩阵
'''
data.iloc[起始行:终止行,起始列,终止列]
'''
X = data.iloc[:,0:2]  #所有行,0列和1列
#print(x.head())
y = data.iloc[:,2:]
#print(y.head())#将数据转化为数组
X = X.values
y = y.values
y = y.reshape(97,1) #y转化为二维数组方便运算#定义损失函数
def costFunction(X,y,theta):inner = np.power(X @ theta - y,2)return np.sum(inner)/(2 * len(X))#初始化theta
theta = np.zeros((2,1))  #初始theta全为0
print(costFunction(X,y,theta))#梯度下降函数
def gradienDescent(X,y,theta,alpha,iters):costs = []for i in range(iters):theta = theta - (X.T @ (X@theta - y)) * alpha / len(X)  #迭代梯度下降cost = costFunction(X,y,theta) #代价函数值保存costs.append(cost)return theta,costs#初始化α,迭代次数
alpha = 0.02
iters = 2000theta,costs = gradienDescent(X,y,theta,alpha,iters)#可视化代价函数图像
fig,ax = plt.subplots()
ax.plot(np.arange(iters),costs) #画直线图
ax.set(xlabel = 'iters',ylabel='cost',title = 'cost vs iters')  #设置横纵轴意义
plt.show()x = np.linspace(y.min(),y.max(),100) #代表横坐标取值
y_ = theta[0,0]+theta[1,0] * x #拟合直线函数#拟合函数可视化
fig,ax = plt.subplots()
ax.scatter(X[:,1:2],y,label='training data') #画散点图ax.plot(x,y_,'r',label='predict') #画假设函数直线图
ax.legend()
ax.set(label='population',ylabel='profit')
plt.show()

画特征值散点图
在这里插入图片描述
梯度下降过程(损失函数变化曲线)
在这里插入图片描述
最终假设函数的拟合效果
在这里插入图片描述

单变量线性回归( 多个特征值)

房屋大小 房间数 价格

#开发人员:肖本杰
#阶   段 :学习
#开发时间:2022/8/13 15:05
#单变量线性回归 多个特征值
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt#读取文件
data = pd.read_csv('ex1data2.txt',sep=',',names=['size','bedrooms','price']) #读取文件   names列表指定列名#特征归一化
def normalize_feature(data):return (data - data.mean()) / data.std() #(数据 - 平均值)/方差
data = normalize_feature(data)
print(data.head())#特征值可视化
data.plot.scatter('size','price',c='b',label='bedrooms',s=20)  #画卧室数与价格的散点图
plt.show()
data.plot.scatter('bedrooms','price',c='b',label='bedrooms',s=20)   #画房间大小与价格的散点图
plt.show()#插入一列1
data.insert(0,'ones',1) #插入
print(data.head())
#构造数据集
X = data.iloc[:,0:3]
y = data.iloc[:,3:4]#将dadaframe转成数组
X = X.values #(47,3)
y = y.values #(47,)
y = y.reshape(47,1)#损失函数
def costFunction(X,y,theta):inner = np.power(X@theta - y,2)return np.sum(inner)/(2*len(X))theta = np.zeros((3,1))#梯度下降函数
def gradienDescent(X,y,theta,alpha,iters):costs = []for i in range(iters):theta = theta - (X.T @ (X@theta - y)) * alpha / len(X)  #迭代梯度下降cost = costFunction(X,y,theta) #代价函数值保存costs.append(cost)return theta,costs#不同的alpha的效果
candinate_alpha = [0.0003,0.003,0.03,0.001,0.01]
iters = 2000#绘图
fig,ax = plt.subplots()
for alpha in candinate_alpha:_,costs = gradienDescent(X,y,theta,alpha,iters)ax.plot(np.arange(iters),costs,label = alpha)ax.legend()
ax.set(xlabel='iters',ylabel='cost',title='cost vs iters')
plt.show()

房间大小特征与价格的散点图
在这里插入图片描述
房间数量特征与价格的散点图
在这里插入图片描述
不同的学习率,损失函数的下降情况
在这里插入图片描述

单变量线性回归( 正规方程)

人口 利润

#开发人员:肖本杰
#阶   段 :学习
#开发时间:2022/8/13 15:05
#单变量线性回归 多个特征值import numpy as np
import pandas as pd
import matplotlib.pyplot as pltdata = pd.read_csv('ex1data1.txt',sep=',',names=['population','profit'])
data.insert(0,'ones',1) #插入#print(data.head())
X = data.iloc[:,0:2]  #所有行,0列和1列
y = data.iloc[:,2:]
X = X.values
y = y.values
y = y.reshape(97,1) #y转化为二维数组方便运算#正规方程函数
def normalEquation(X,y):theta = np.linalg.inv(X.T @ X) @ X.T @ yreturn theta
theta = normalEquation(X,y)
print(theta)

http://chatgpt.dhexx.cn/article/B86NdCaq.shtml

相关文章

【吴恩达机器学习笔记】七、神经网络

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。 📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记&…

吴恩达机器学习 2022新版

2022吴恩达机器学习 第一周 一. 机器学习的定义二. 机器学习的分类2.1. 监督学习【回归算法】【分类算法】 三. loss function3.1.损失函数公式 四. 梯度下降4.1.梯度下降算法4.2.理解梯度下降4.3.学习率的选择4.5.如何计算导数项? 一. 机器学习的定义 Arthur Samu…

【经典】吴恩达《机器学习》课程

如果要推荐《机器学习》的学习课程,那必然首选吴恩达的《机器学习》课程,无论是国内还是国外,这是最火的机器学习入门课程,没有之一。吴恩达老师用易于理解、逻辑清晰的语言对机器学习算法进行介绍,无数新手正是通过这…

吴恩达机器学习系列课程笔记——第一章:什么是机器学习(Machine Learning)

1.1 欢迎 https://www.bilibili.com/video/BV164411b7dx?p1 第一节主要讲了什么是机器学习,机器学习能做些什么事情。 机器学习是目前信息技术中最激动人心的方向之一。在这门课中,你将学习到这门技术的前沿,并可以自己实现学习机器学习的…

机器学习——吴恩达

机器学习——吴恩达 inductionSupervised learningUnsupervised learning modelexamplehow to workdefine cost functiongradient descent for minimizing the cost functionGradient descent for linear regression Matrix and Vector定义运算multiple feature linear regress…

吴恩达—机器学习的六个核心算法

吴恩达,华裔美国人,是斯坦福大学计算机科学系和电子工程系副教授,人工智能实验室主任。吴恩达是人工智能和机器学习领域国际上最权威的学者之一。他是百度的前副总裁兼首席科学家,最受欢迎的机器学习在线课程之一的创建者&#xf…

【机器学习】机器学习笔记(吴恩达)

文章目录 中文笔记地址视频地址第1章 引言1.1 欢迎1.2 机器学习是什么1.3 监督学习1.4 无监督学习 第2章2.1 模型展示单变量线性回归 2.2 代价函数2.3-2.4 代价函数理解2.5-2.6 梯度下降算法,梯度下降算法理解 第3章第4章4.2 多元(多变量)梯度…

python编码无法使用turtle库_使用Turtle库教Python

Python是一种流行的基于文本的编程语言,程序员每天都在使用它。使用Turtle库(Turtle Library)教Python可以激发对STEM的兴趣。 Turtle库是用于控制机器人Turtle的功能的集合。这些命令可以与Python结合使用,以构建精美作品和原创游戏的程序。The Turtle …

turtle库的介绍

一、turtle库概述: turtle(海龟)库是turtle绘图体系python的实现; turtle绘图体系:1969年诞生,主要用于程序设计入门; turtle库是python的标准库之一;属于入门级的图形绘制函数库…

python turtle库下载_python3中安装turtle库

开始在网上找资料安装的时候踩了一点坑,来总结一下经验 直接安装 安装 pip install turtle 会提示错误:Command "python setup.py egg_info" failed with error code 1 解决方法 1.直接找到turtle 0.0.2(地址是这个),把turtle…

python基础之 turtle 库总结

python基础之 turtle 库总结 文章目录 python基础之 turtle 库总结1. 准备工作1.1 准备画布1.2 画笔设置 2. 画笔运动函数2.1 向前:forward() | fd()2.2 向后:backward() | bk() | back()2.3 向右:right() | rt()2.4 向左:left() …

turtle库的精讲

大家好,我是Python领域的博主。 如果你是编程爱好者可以小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码。 如果文章有什么错误的地方,请不吝赐教。 觉得博主文章写的还错的话,请三连支持一下博主哦 …

python turtle库有什么用_turtle库使用简介

python之绘制图形库turtle turtle库是python的基础绘图库,官方手册 这个库被介绍为一个最常用的用来给孩子们介绍编程知识的方法库,其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图。 turtle原理理解 turtle名称含义为“海龟”,我们想象一只…

Turtle库实战项目

文章目录 文章目录 文章目录前言直接实战1、turtle库完成正方形螺旋线的绘制2、turtle库完成绘制斜螺旋线3、turtle库完成绘制彩色斜螺旋线4、turtle库完成绘制直角三角形5、turtle库完成绘制梯形7、turtle库完成绘制八一五角星8、turtle库完成绘制冬奥会吉祥物冰墩墩 总结 前言…

Python 之 turtle 库

目录 1、turtle库的调用 2、turtle库的构成 2.1 画布 2.2 画笔(海龟) 2.3 绘图指令 Turtle 库是 Python 的一个标准库,主要用于图像的绘制。想象您用一组组函数驾驭一只小小的乌龟,在无垠的沙滩(画布)上昂…

Python Turtle库详解

turtle的英文意思是“海龟”,今天学习的turtle库也叫作海龟绘图库。想象一下一只小海龟在海面上游泳,海龟游过的轨迹变成了一幅幅有趣的图案。 1. Turtle的绘图窗体布局 美术生作画时必不可少的两样东西:画纸和画笔。画纸在画板上&#xff…

turtle具体详解

一、turtle库概述: turtle(海龟)库是turtle绘图体系python的实现; turtle绘图体系:1969年诞生,主要用于程序设计入门; turtle库是python的标准库之一;属于入门级的图形绘制函数库…

Python入门基础知识(turtle库)

turtle库的概述 turtle(海龟)库是turtle绘图体系的Python实现。 turtle绘图体系:1969年诞生,主要用于程序设计入门,是Python语言的标准库之一,入门级的图形绘制函数库。(Python计算生态 标准…

turtle 库

1.turtle库概述 turttle(海龟)库是turtle绘图体系python的实现。 turtle :1969年诞生,作用:程序设计入门 turtle库是python的标准库之一,入门级别的图形绘制函数 python 计算生态标准库第三方库 标准库:解释器直接安装到操作…

python---turtle库(详解)

turtle库 初识turtle库(python内置库)turtle库基本方法画布(canvas)画笔属性 应用实例彩色python(蟒蛇)多等边三角形无角正方形六角星你猜风车(为什么不会转呢?)龙卷风同心圆(箭靶)五环海绵宝宝 https://blog.csdn.net…