吴恩达机器学习作业一
Introduction
In this exercise, you will implement linear regression and get to see it work
on data.
首先,先看看数据是什么样的好进一步分析
import numpy as np
import pandas as pd
import matplotlib.pyplot as pltpath = "data/ex1data1.txt"
data = pd.read_csv(path, header=None, names=['Population', 'profit'])
print(data)
data.plot(kind="scatter", x="Population", y="profit", figsize=(8, 5))
plt.show()
采用线性回归,尽可能准确地预测输出。
要拟合出一条直线采用均方误差作为损失函数,
我们预测
函数:
损失函数:
这里均方误差使用1/2m而不是1/m是因为后期梯度下降时,对损失函数求偏导平方求导会出现2,这里乘1/2
会使得后续计算方便
持续更新a于b直到收敛
下面就是如何计算偏导数,
# 均方误差
def squared_error(a, b):res = 0for row in data.iterrows():population = row[1][0]profit = row[1][1]res += pow(population*a+b - profit, 2)res = 1/(2*data.size)*resreturn res
使得均方误差足够小的a和b即为解,使用梯度下降.
同时更新a和b直到均方误差足够小(凭自己喜好),这里我规定偏导数
达到-9数量级时认为收敛,
附上源码
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt# 均方误差
def squared_error(a, b):res = 0d_a = 0d_b = 0for row in data.iterrows():population = row[1][0]profit = row[1][1]res += pow(population*a + b - profit, 2)d_a += (population*a + b - profit) * populationd_b += (population*a + b - profit)res *= 1/(2*len(data))d_a *= 1/len(data)d_b *= 1/len(data)print("欧氏距离:", res, " d_a:", d_a, " a:", a)return d_a, d_b# 梯度下降
def gradient_descent(a, b, alpha):d_a, d_b = squared_error(a, b)print(type(d_b))while abs(d_a) > 10e-9 and abs(d_b) > 10e-9:tamp_a = a - alpha * d_atamp_b = b - alpha * d_ba = tamp_ab = tamp_bd_a, d_b = squared_error(a, b)return a, bpath = "data/ex1data1.txt"
data = pd.read_csv(path, header=None, names=['Population', 'profit'])
data.plot(kind="scatter", x="Population", y="profit", figsize=(8, 5))a, b = gradient_descent(0, 0, 0.02)
x = np.linspace(data.Population.min(), data.Population.max(), 100)
y = a*x + b
plt.plot(x, y)
plt.show()
结果如下
吴恩达机器学习作业一相关推荐
- 吴恩达机器学习作业ex2-python实现
系列文章目录 吴恩达机器学习作业ex1-python实现 吴恩达机器学习作业ex2-python实现 吴恩达机器学习作业ex3-python实现 作业说明及数据集 链接:https://pan.bai ...
- k均值算法python实现(吴恩达机器学习作业)
k均值算法python实现(吴恩达机器学习作业) 题目要求 数据集 读取mat文件 K-means 实现 结果 问题 题目要求 采用K均值算法对样本进行聚类. 编写K均值算法源代码,对ex7data2 ...
- 第一章-机器学习简介 深度之眼_吴恩达机器学习作业训练营
目录 专栏简介: 一,机器学习简介 1.1 机器学习定义 1.1 机器学习的重要性 1.2 应用领域 二.监督学习 三.无监督学习 四.总结 专栏简介: 本栏主要内容为吴恩达机器学习公开课的学习笔记, ...
- 吴恩达机器学习作业7 - K-means和PCA主成分分析(Python实现)
吴恩达机器学习作业7 - K-means和PCA主成分分析(Python实现) Introduction 在本实验中,将实现K-means聚类算法,并将其应用于图像压缩.在第二部分实验中,将使用主成分 ...
- 吴恩达机器学习作业Python实现(八):异常检测和推荐系统
吴恩达机器学习系列作业目录 1 Anomaly detection 这部分,您将实现一个异常检测算法来检测服务器计算机中的异常行为.他的特征是测量每个服务器的响应速度(mb/s)和延迟(ms).当你的 ...
- 吴恩达机器学习作业Python实现(七):K-means和PCA主成分分析
吴恩达机器学习系列作业目录 1 K-means Clustering 在这个练习中,您将实现K-means算法并将其用于图像压缩.通过减少图像中出现的颜色的数量,只剩下那些在图像中最常见的颜色. 1. ...
- 吴恩达机器学习作业Python实现(六):SVM支持向量机
吴恩达机器学习系列作业目录 1 Support Vector Machines 1.1 Example Dataset 1 %matplotlib inline import numpy as np ...
- 吴恩达机器学习作业Python实现(五):偏差和方差
吴恩达机器学习系列作业目录 在本练习中,您将实现正则化的线性回归和多项式回归,并使用它来研究具有不同偏差-方差属性的模型 1 Regularized Linear Regression 正则线性回归 ...
- 吴恩达机器学习作业Python实现(四):神经网络(反向传播)
吴恩达机器学习系列作业目录 1 Neural Networks 神经网络 在这个练习中,你将实现反向传播算法来学习神经网络的参数.依旧是上次预测手写数数字的例子. 1.1 Visualizing th ...
- 吴恩达机器学习作业Python实现(三):多类分类和前馈神经网络
吴恩达机器学习系列作业目录 1 多类分类(多个logistic回归) 我们将扩展我们在练习2中写的logistic回归的实现,并将其应用于一对多的分类(不止两个类别). import numpy as ...
最新文章
- ORA-01109:数据库未打开(解决)
- 主瓣,旁瓣,栅瓣概念解析
- 为提高绩效,HR需要做的改进工作
- spring原始注解
- leetcode 上的Counting Bits 总结
- .net10个必备工具
- 逆反过程的学习会如何
- 【HDU - 5943】Kingdom of Obsession(数论,素数间隔结论,构造,思维,匈牙利算法,匹配问题)
- 一道非常简单的签到题
- c/c++面试题(1)
- 跪求***基地的邀请码
- VR线下体验店群雄并起,超级队长为何能靠IP突围?
- 100款机器学习数据集
- 使用QtXlsx读写Excel文件
- [小工具]取色器gcolor2
- 分时操作系统与分布式操作系统
- 如何将FLV视频转成MP3格式?
- 61、弱电工程数据中心的网络架构及其设计思路
- 用HTML+CSS做一个简单好看的校园社团网页
- nmon结果分析工具_使用nmon analyzer 分析指标