`
vinceall
  • 浏览: 10794 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

吴恩达机器学习课后作业-线性回归

阅读更多

最近在学习机器学习,课后作业很重要,贴上来记录一下,使用Octave实现,上干货!

 

warmup,代价函数和特征缩放比较简单,就不赘述了,直接看梯度下降核心部分:

 

gradientDescent.m

 

% 使用梯度下降公式,固定写死为单变量线性回归(theta是一个2元素列向量)

% 用(X*theta-y)点积X(:,1)的原因:(X*theta-y)是97*1维向量,按公式应该是(hθ(x(i)) − y(i))矩阵

% 和xj(i)矩阵的乘积来表示求和,这种表现形式等价于两个97*1的矩阵点积之后再求和,如:

% a=[1 2],b=[3;4],ab=sum(a.*b')

    

% 以下方法任选一种,只是一个小trick,完全等价

% 使用点积计算的方式:两个97*1的向量点积求和

% new_theta0 = theta(1) - (alpha / m) * sum((X * theta - y) .* X(:,1));

% new_theta1 = theta(2) - (alpha / m) * sum((X * theta - y) .* X(:,2));

    

% 使用矩阵乘法的方式1*97和97*1的矩阵乘法,不用单独求和

% new_theta0 = theta(1) - (alpha / m) * ((X * theta - y)' * X(:,1));

% new_theta1 = theta(2) - (alpha / m) * ((X * theta - y)' * X(:,2));

    

theta(1) = new_theta0;

theta(2) = new_theta1;

 

 

 

gradientDescentMulti.m

% 统一单变量和多变量线性回归,利用矩阵运算(各种补向量,乘法,转置等)

% 公式:new_theta = theta - (alpha / m) * ((X * theta - y)' * X(:,1));

 

% 在theta右边补一列-1,转换为n*2矩阵,目的是为了用矩阵运算代替theta - (alpha/m) * ((X * theta - y)' * X(:,1))

theta_mat = [theta ones(size(X, 2), 1) * (-1)];

 

% 计算theta_mat的行数,即theta参数的个数

theta_num = size(theta_mat, 1);

 

% 计算整个alpha/m整个这一块

s = (alpha / m) * ((X * theta - y)' * X)

 

% 在s上方补一行1

s = [ones(1, theta_num); s];

    

% 用theta_mat乘以s,再点乘单位矩阵,截取对角线的值即为每一个new theta值,求和是为了压缩为一维行向量

res = sum(theta_mat * s .* eye(theta_num));  

  

% 转置为列向量,同时更新所有theta

theta = res'

 

以上算法满足任意维度的线性回归,同时计算、更新了theta的所有维度,虽然稍显复杂(截取对角线前,有很多冗余运算,最终只取了一部分值) ,和网上其它资料相比可能不够简洁,但是我自己思考的结果,以此记录

  

PS:完整代码请见附件

 

欢迎交流,wx:vinceall,备注机器学习

分享到:
评论

相关推荐

    吴恩达机器学习课后作业源码及笔记_机器学习_吴恩达_

    今天,我们所要探讨的,是那些有幸参与了吴恩达机器学习课程的同学们所珍藏的宝贵资料——“吴恩达机器学习课后作业源码及笔记”。这份资料集作业解答和编程代码于一体,对于那些已经或正在学习吴恩达课程的朋友们来...

    吴恩达机器学习作业-Notes-ML-AndrewNg-master.zip

    《吴恩达机器学习作业-Notes-ML-AndrewNg-master》是针对吴恩达教授的机器学习课程的一份详尽的学习资源,包含了他在课程中所讲授的重要概念、理论和实践练习。吴恩达教授是斯坦福大学的计算机科学家,也是在线教育...

    吴恩达机器学习matlab编程作业,线性回归,逻辑回归,前向神经网络,BP神经网络,优秀matlab源代码,新手必看!

    吴恩达机器学习matlab编程作业,线性回归,逻辑回归,前向神经网络,BP神经网络,优秀matlab源代码,新手必看! 吴恩达机器学习matlab编程作业,线性回归,逻辑回归,前向神经网络,BP神经网络,优秀matlab源代码,...

    吴恩达机器学习课后作业源码及笔记.rar

    在本压缩包“吴恩达机器学习课后作业源码及笔记.rar”中,我们可以找到一系列与吴恩达教授的机器学习课程相关的实践材料。吴恩达是深度学习和人工智能领域的知名专家,他的课程深受全球学子欢迎,尤其适合初学者入门...

    吴恩达机器学习课后作业python代码.rar

    "吴恩达机器学习课后作业python代码.rar" 这个标题表明了文件的内容,它是吴恩达(Andrew Ng)教授的机器学习课程相关的课后作业解决方案,采用Python编程语言实现。吴恩达是斯坦福大学的计算机科学教授,也是...

    吴恩达机器学习的习题答案

    《吴恩达机器学习课程习题答案解析》 吴恩达教授的机器学习课程是全球范围内最受欢迎的在线教育课程之一,其深入浅出的教学方式深受广大学习者喜爱。本资源包含的是该课程配套的习题解答,对于正在学习或者已经完成...

    吴恩达机器学习matlab编程作业

    在本项目中,“吴恩达机器学习matlab编程作业”涵盖了四个主要的机器学习实践环节,包括线性回归、逻辑回归、前向神经网络以及BP(反向传播)神经网络。MATLAB作为一种强大的数学计算软件,是进行这些复杂算法实现的...

    (全)2020吴恩达机器学习MachineLearning第五周编程作业ex4

    在本资源中,我们关注的是2020年吴恩达教授的《机器学习》(Machine Learning)课程的第五周编程作业,名为“ex4”。吴恩达是全球知名的计算机科学家,尤其在人工智能和深度学习领域有着深厚的造诣。他的这门机器...

    吴恩达机器学习课后练习-ex2

    【吴恩达机器学习课后练习-ex2】是关于机器学习的一个实践环节,主要涉及到的是逻辑回归模型的构建和优化。在这个练习中,你需要使用MATLAB或者Octave环境,配合提供的脚本来完成一系列任务。 首先,你需要理解逻辑...

    吴恩达传统机器学习作业代码(python jupyter):线性回归、逻辑回归、神经网络、SVM、Kmeans决策树和自动调参数

    吴恩达传统机器学习作业代码(python jupyter):线性回归、逻辑回归、神经网络、SVM、Kmeans决策树...吴恩达老师的机器学习课后习题Python 包含有8个单元,附带数据集,轻松入门机器学习。 适合人工智能专业初期的同学

    吴恩达课后编程作业(python+matlab)代码+习题要求

    吴恩达的课程在机器学习领域享有盛誉,他的编程作业是学习过程中的重要组成部分,旨在帮助学生深入理解和应用所学理论。这份压缩包“Coursera-ML-using-matlab-python-master”包含了吴恩达课程的8次作业,分别提供...

    Deep AI 吴恩达深度学习课后检验题-机器学习和神经网络

    在本课程“Deep AI 吴恩达深度学习课后检验题-机器学习和神经网络”中,我们将探讨吴恩达教授讲解的深度学习基础,特别是机器学习和神经网络的概念及其应用。吴恩达,作为全球知名的AI教育家,他的课程深入浅出,...

    吴恩达机器学习作业数据集

    【吴恩达机器学习作业数据集】是针对吴恩达教授在Coursera等在线教育平台上开设的机器学习课程所设计的一系列练习题目所使用的数据集。这些数据集旨在帮助学员掌握并应用基本的机器学习算法,包括监督学习、无监督...

    吴恩达 机器学习 课后编程作业

    吴恩达的机器学习课程是全球范围内非常受欢迎的在线教育项目,由世界知名的人工智能专家吴恩达(Andrew Ng)在Coursera平台上主讲。这个课程涵盖了广泛的机器学习概念,从基础知识到高级技术,旨在帮助学生掌握构建...

    (全)2020吴恩达机器学习MachineLearning第四周编程作业ex3

    在本资源中,我们关注的是2020年吴恩达教授的《机器学习》(Machine Learning)课程的第四周编程作业,名为“ex3”。吴恩达是全球知名的计算机科学家,尤其在人工智能和机器学习领域有着深厚的造诣。他的这门在线...

    吴恩达机器学习课后习题三及答案

    在吴恩达的Coursera机器学习课程中,课后习题是学习过程的重要组成部分,它们旨在帮助学生深入理解各种机器学习概念和技术。本压缩包文件"machine-learning-ex3"包含了第三部分的练习题目和可能的答案,这通常涵盖...

    吴恩达-深度学习-课后作业-答案与总结

    《吴恩达深度学习课后作业答案与总结》是一份针对吴恩达教授深度学习课程的参考资料,旨在帮助学习者理解和巩固课程中的关键概念。这份资料涵盖了深度学习的基础到高级主题,包括神经网络与深度学习的基本原理,卷积...

    吴恩达机器学习coursea课程,有课堂笔记pdf,课堂ppt,课后作业原版问题,课后作业源代码.py/.ipynb

    吴恩达的机器学习Coursera课程是全球范围内广受欢迎的在线教育项目,专注于介绍机器学习的基本概念、算法和应用。这个课程涵盖了从线性回归到深度学习的广泛主题,适合初学者和有一定基础的学习者深入理解这一领域。...

    吴恩达深度学习deeplearning第一课课后测验及编程作业(含答案)

    吴恩达教授的深度学习课程是全球知名的在线教育平台Coursera上的一门热门课程,适合对人工智能和机器学习感兴趣的初学者以及希望深入研究该领域的专业人士。 【第一课知识点】 1. **神经网络基础**:吴恩达课程的...

    吴恩达机器学习作业

    【描述】"吴恩达机器学习课后练习题代码,以及相应的分析,用MATLAB编写"揭示了这些作业是使用MATLAB编程语言完成的。MATLAB是一种专为数值计算和数据分析设计的高级语言,尤其适合于处理矩阵和数组操作,因此在科学...

Global site tag (gtag.js) - Google Analytics