吴恩达机器学习作业Python版

主要记录自己学习机器学习的过程,以及自己看别人代码时不懂或者疑惑的地方,代码主要参考Cowry5作者的代码,原作者代码和讲解更为详细,本文章如有不好的地方,还请去浏览大神的原文章(https://blog.csdn.net/Cowry5)

线性回归(一)

单变量线性回归

题目要求:自己实现单变量线性回归,以预测食品卡车的利润

  1. 导入数据:
import numpy as np
import pandas as pd#读取文件
data= pd.read_csv("ex1data1.txt",header= None,names=['population','profit'])
#pandas读取文件时,如未指定,会默认将第一列认为是标题,所以此处要使header=None
data.head()
print("data的维度为:")
print(data.shape,"\n") #检查维度,期待输出(97,2)
  1. 变量初始化:
    根据吴恩达老师所讲,为便于计算,我们在矩阵最前列加入全“1”列,然后取矩阵前两列为x(输入矩阵),最后一列为y(输出矩阵)
data.insert(0,'ones',1)
x=data.iloc[:,:-1].values
y=data.iloc[:,-1].values #.values方法即为将数据转化为矩阵形式
theta=np.zeros(x.shape[1])
print("x,y,theta的维度分别为:")
print(x.shape,y.shape,theta.shape,"\n") #检查维度,期待输出(97,2),(97,),(2,)
#插入全1列便于后续矩阵计算, 取读取数据的前两列为x矩阵(即为输入矩阵),最后一列为y矩阵(输出矩阵)
  1. 定义代价函数
#定义代价函数
def calculateCost(x,y,theta):cost=np.sum((x@theta-y)**2)/(2*len(x)) #@为矩阵乘法符号return cost
  1. 定义梯度下降函数
#定义梯度下降函数
def gradient(x,y,a,theta): #a为学习率,数值越小,计算越慢,结果越精确,但不宜过小,也不宜过大tmp=np.zeros(x.shape[1])i=1#Cowry5大神的方法为取1000次计算后的结果为最终结果#但我觉得那样数据可能不够精确,所以我定义一个永真循环#一直计算,直至theta不在发生变化,打破循环while(True):tmp = thetatheta = theta - a * (1 / len(x)) * x.T @ (x @ theta - y)if((tmp==theta).all()):print("calculation is done!")print("计算次数为:",i,"次\n")breaki+=1return theta
  1. 调用方法,输出结果:

theta=gradient(x,y,0.01,theta)
print("结果显示:")
print("最终theta为:",theta)
print("最终最小代价为:",calculateCost(x,y,theta))
  1. 最终结果输出


相比于计算1000次得到的最终代价:4.515955503078914,永真循环计算得到的结果更为精确。

注:最后放上整个文件的连接,里面有完整代码和数据,谢谢大家! (^ __ ^)

链接1:csdn资源

链接2:百度云网盘
提取码:hhnb
复制这段内容后打开百度网盘手机App,操作更方便哦

吴恩达机器学习作业代码(python)相关推荐

  1. Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines)

    Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines) 文章目录 Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Su ...

  2. k均值算法python实现(吴恩达机器学习作业)

    k均值算法python实现(吴恩达机器学习作业) 题目要求 数据集 读取mat文件 K-means 实现 结果 问题 题目要求 采用K均值算法对样本进行聚类. 编写K均值算法源代码,对ex7data2 ...

  3. 吴恩达机器学习作业7 - K-means和PCA主成分分析(Python实现)

    吴恩达机器学习作业7 - K-means和PCA主成分分析(Python实现) Introduction 在本实验中,将实现K-means聚类算法,并将其应用于图像压缩.在第二部分实验中,将使用主成分 ...

  4. 吴恩达机器学习作业ex2-python实现

    系列文章目录 吴恩达机器学习作业ex1-python实现 吴恩达机器学习作业ex2-python实现 吴恩达机器学习作业ex3-python实现 作业说明及数据集 链接:https://pan.bai ...

  5. 吴恩达机器学习MATLAB代码笔记(1)梯度下降

    吴恩达机器学习MATLAB代码笔记(1)梯度下降 单变量线性回归 1.标记数据点(Plotting the Date) fprintf('Plotting Data') data = load('D: ...

  6. 第一章-机器学习简介 深度之眼_吴恩达机器学习作业训练营

    目录 专栏简介: 一,机器学习简介 1.1 机器学习定义 1.1 机器学习的重要性 1.2 应用领域 二.监督学习 三.无监督学习 四.总结 专栏简介: 本栏主要内容为吴恩达机器学习公开课的学习笔记, ...

  7. 吴恩达机器学习作业Python实现(六):SVM支持向量机

    吴恩达机器学习系列作业目录 1 Support Vector Machines 1.1 Example Dataset 1 %matplotlib inline import numpy as np ...

  8. 吴恩达机器学习作业Python实现(三):多类分类和前馈神经网络

    吴恩达机器学习系列作业目录 1 多类分类(多个logistic回归) 我们将扩展我们在练习2中写的logistic回归的实现,并将其应用于一对多的分类(不止两个类别). import numpy as ...

  9. 吴恩达机器学习作业Python实现(八):异常检测和推荐系统

    吴恩达机器学习系列作业目录 1 Anomaly detection 这部分,您将实现一个异常检测算法来检测服务器计算机中的异常行为.他的特征是测量每个服务器的响应速度(mb/s)和延迟(ms).当你的 ...

  10. 吴恩达机器学习作业Python实现(七):K-means和PCA主成分分析

    吴恩达机器学习系列作业目录 1 K-means Clustering 在这个练习中,您将实现K-means算法并将其用于图像压缩.通过减少图像中出现的颜色的数量,只剩下那些在图像中最常见的颜色. 1. ...

最新文章

  1. 试试 python-dotenv,避免敏感信息被硬编码到代码中
  2. UILable的text设置中划线(删除线)
  3. OpenYurt 开源 | 云原生生态周报 Vol. 51
  4. MFC 操作配置文件INI的方法
  5. wireshark捕获选项不能用_wireshark的一些基础用法,欢迎收藏
  6. vim配置之snippets代码块
  7. ie浏览器发送错误报告提示怎么关闭
  8. python实现监控增量_python 日志增量抓取实现方法
  9. Cinemachine教程 | Unity中如何快速制作镜头晃动?
  10. android快速开发框架_【程序源代码】springboot和ssm的极速轻量快速开发框架
  11. 自制游戏手柄joystick stm32 hal usb协议
  12. Kotlin学习教程推荐
  13. [转载]Core animation简介
  14. python使用金山词霸的翻译功能(调试工具断点的使用)
  15. 蓝桥杯 灭鼠先锋 博弈
  16. 猿圈 题库_猿圈AI考试题库 智慧在线考试宝典
  17. 2021年安全员-A证报名考试及安全员-A证考试资料
  18. STC12C5A60S2系列单片机PCA时钟源设置
  19. 恋词题源报刊Unit5背诵
  20. 想要成为数据分析师 需要具备哪些专业技能?

热门文章

  1. pip更新pip,升级 pip3怎么做?
  2. 软著 代码合并 脚本递归合并目录下所有代码
  3. SDN:势不可挡的网络演进大潮
  4. linux网卡流量定时记录脚本crontab与手动执行结果不一致问题处理
  5. 异常值筛选 拉依达准则 格拉布斯_时序预测竞赛之异常检测算法综述
  6. powermockito测试私有方法_Spock代码讲解 静态方法测试
  7. 【安装记录】如何在官网找到老版本的jdk,如 jdk-8u271-windows-x64
  8. 新型开关电源优化设计与实例详解全书.pdf_高频电路设计中,如何应对“不理想”的电容与电感?...
  9. Java的下载与安装简易教程
  10. C语言学习——初始C语言