最近在学习机器学习,课后作业很重要,贴上来记录一下,使用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》是针对吴恩达教授的机器学习课程的一份详尽的学习资源,包含了他在课程中所讲授的重要概念、理论和实践练习。吴恩达教授是斯坦福大学的计算机科学家,也是在线教育...
吴恩达机器学习matlab编程作业,线性回归,逻辑回归,前向神经网络,BP神经网络,优秀matlab源代码,新手必看! 吴恩达机器学习matlab编程作业,线性回归,逻辑回归,前向神经网络,BP神经网络,优秀matlab源代码,...
【标题】"吴恩达机器学习课后作业代码"涵盖了机器学习领域的重要实践部分,这是由著名计算机科学家吴恩达(Andrew Ng)在Coursera上开设的机器学习课程的一部分。吴恩达是深度学习和人工智能领域的先驱,他的课程...
吴恩达教授是全球知名的计算机科学家,特别是在人工智能和机器学习领域有着极高的威望。他的机器学习课程因其深入浅出的讲解方式而深受广大学习者喜爱。这些编程作业合集涵盖了从基础到进阶的各个层面,对于想要系统...
在本压缩包“吴恩达机器学习课后作业源码及笔记.rar”中,我们可以找到一系列与吴恩达教授的机器学习课程相关的实践材料。吴恩达是深度学习和人工智能领域的知名专家,他的课程深受全球学子欢迎,尤其适合初学者入门...
"吴恩达机器学习课后作业python代码.rar" 这个标题表明了文件的内容,它是吴恩达(Andrew Ng)教授的机器学习课程相关的课后作业解决方案,采用Python编程语言实现。吴恩达是斯坦福大学的计算机科学教授,也是...
**吴恩达机器学习课程特点** 吴恩达老师的课程以其深入浅出的讲解和实战性著称。在这个逻辑回归的作业中,你将学到如何将理论知识应用到实际问题上,理解模型背后的数学原理,并掌握Python实现技巧。此外,课程可能...
【吴恩达机器学习课后习题一及答案】涵盖了机器学习基础的初步概念和算法,这门课程由著名的人工智能专家吴恩达(Andrew Ng)教授,他在Coursera上提供了完整的在线课程。课后习题是检验学习效果、巩固理论知识的...
【标题】"吴恩达机器学习课后作业python代码"涉及了多个机器学习的重要主题,通过使用Python编程语言来实现。这些作业旨在帮助学生深入理解并应用机器学习的基础概念和技术。 【描述】提到的"吴恩达机器学习课后...
《吴恩达机器学习课程习题答案解析》 吴恩达教授的机器学习课程是全球范围内最受欢迎的在线教育课程之一,其深入浅出的教学方式深受广大学习者喜爱。本资源包含的是该课程配套的习题解答,对于正在学习或者已经完成...
在本项目中,“吴恩达机器学习matlab编程作业”涵盖了四个主要的机器学习实践环节,包括线性回归、逻辑回归、前向神经网络以及BP(反向传播)神经网络。MATLAB作为一种强大的数学计算软件,是进行这些复杂算法实现的...
在本资源中,我们关注的是Coursera平台上吴恩达教授的机器学习课程中的编程练习答案。这门课程是机器学习领域的经典入门课程,涵盖了广泛的理论知识和实践技能。吴恩达,作为斯坦福大学的计算机科学教授,以其深入浅...
《吴恩达机器学习2014课后作业源代码》是针对吴恩达教授的知名在线课程“机器学习”提供的编程练习资料,包含了MATLAB和Python两种编程语言的实现。这个资源对于正在学习或已经完成这门课程的学生来说极具价值,因为...
在本资源中,我们关注的是2020年吴恩达教授的《机器学习》(Machine Learning)课程的第五周编程作业,名为“ex4”。吴恩达是全球知名的计算机科学家,尤其在人工智能和深度学习领域有着深厚的造诣。他的这门机器...
在吴恩达的Coursera机器学习课程中,第四课后习题主要涵盖了多元线性回归和岭回归等重要概念。这些习题旨在帮助学员深入理解如何应用这些模型解决实际问题,以及如何评估和优化模型的性能。以下是相关知识点的详细...
吴恩达传统机器学习作业代码(python jupyter):线性回归、逻辑回归、神经网络、SVM、Kmeans决策树...吴恩达老师的机器学习课后习题Python 包含有8个单元,附带数据集,轻松入门机器学习。 适合人工智能专业初期的同学
吴恩达的课程在机器学习领域享有盛誉,他的编程作业是学习过程中的重要组成部分,旨在帮助学生深入理解和应用所学理论。这份压缩包“Coursera-ML-using-matlab-python-master”包含了吴恩达课程的8次作业,分别提供...
在本课程“Deep AI 吴恩达深度学习课后检验题-机器学习和神经网络”中,我们将探讨吴恩达教授讲解的深度学习基础,特别是机器学习和神经网络的概念及其应用。吴恩达,作为全球知名的AI教育家,他的课程深入浅出,...
【吴恩达机器学习课后练习-ex2】是关于机器学习的一个实践环节,主要涉及到的是逻辑回归模型的构建和优化。在这个练习中,你需要使用MATLAB或者Octave环境,配合提供的脚本来完成一系列任务。 首先,你需要理解逻辑...