本文是观看斯坦福大学吴恩达老师的机器学习视频后的一些心得体会和总结,以及作业题中的关键代码,大家可以共同讨论进步。
1、机器学习的初步认识
机器学习,我自己的理解就是让计算机去模拟人类的行为方式,也就是人工智能的一个雏形?!(不知道理解的额对不对)总的先分为supervised learning和unsupervised learning两类,而其中前者又主要分为regression analysis和classification两类问题(连续与离散),后者的话主要是clustering algorithm问题(聚类算法),两者的区别是有无确定的输出(不知道这么说是否合适)。
2、线性回归的引入
我们的主要内容是回归分析(regression analysis)中的线性回归问题。
这里我们先看图。
这是我们房价与住房面积的一份数据,左边是面积(单位:feet^2),右边是价格(单位:1k美元),我们可以用坐标图画出来。
我们想做的一件事当然就是如何根据面积去预测房价,很显然,两者之间肯定是存在关系的,而这个关系就应该要根据我们手中有的这些数据源来得到,那么如何得到呢,这里就用到我们要讲的线性回归算法。
如下图,我们有一个数据集(dataset),数据集有输入(面积)和输出(房价),那么我们可以假设有一个函数h,这个函数是未知的,把我们的数据集拿去训练,解出一个最优的函数,这就是一个线性回归问题。
3、线性回归算法实现
在前面,我们假设有一个函数 h 用于我们预测,由于此处我们只有一个输入,所以我们不妨设为h(x)=theta0+theta1x,theta0和theta1是两个未知参数,把这个函数画在坐标图上,我们可以得到的是一条曲线,我们需要把这个曲线进行拟合,使其接近我们我们的期望,那么怎么确定他是最优的呢,我们引入一个函数J。如下图
在matlab中代码实现如下
function J = computeCost(X, y, theta)
% =========&#