机器学习入门和批量梯度下降法
来源:互联网 发布:百度云盘 会员 淘宝 编辑:程序博客网 时间:2024/06/06 18:03
机器学习入门
斯坦福大学Andrew Ng教授公开课:
http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=MachineLearning
目前上面的视频收录尚不完整,但校内网登上流畅。
coursera上的完整资源:https://www.coursera.org/learn/machine-learning/home/welcome
但网络登录不流畅,需翻墙观看。
课程笔记(英文版) http://www.holehouse.org/mlclass/
因为学习这个课程的人较多,中文资源也很容易找到(百度搜索“斯坦福大学公开课机器学习”),这里列出其中一个资源:http://52opencourse.com/tag/andrew+ng
推一个对课程以及对机器学习相关总结得较好的博客:http://blog.csdn.net/abcjennifer
网易公开课上的课程资源,同样来自Andrew Ng教授,但视频是课堂录像:
http://open.163.com/special/opencourse/machinelearning.html
对于机器学习(machine learning)的定义,普遍认同的有两个:
Arthur Samuel 的描述:the field of study that gives computers the ability to learn without being explicitly programmed.
Tom Mitchell 的描述:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.
机器学习分类:有监督学习(supervised learning),无监督学习(unsupervised learning)
有监督学习:已知数据集的输入和输出,包括回归问题(regression)、带标签的分类问题(classification)
无监督学习:给定数据集但无确定输出,不带标签的分类问题,也称聚类问题(cluster)
Regression
给定数据的输入和输出,拟合一个连续函数,预测连续的输出。
举例:已知市场上房子的面积和对应的价格,预测一所已知房子面积的价格。
Classification
给定数据以及其所属类别,预测一个新数据的类别。(可二分类,也可分多类,输出是离散的)
举例:已知乳腺肿瘤患者的肿瘤是良性还是恶性与其肿瘤的大小有关,预测一个患者的肿瘤是良性还是恶性。
已知乳腺肿瘤患者的肿瘤是良性还是恶性与其肿瘤的大小和年龄(或更多因素)有关,预测一个患者的肿瘤是良性还是恶性。
Unsupervised learning
有监督学习和无监督学习的对比:
举例:谷歌新闻中把对同一个事件的报道并作一类。
线性回归(linear regression)
线性回归问题的目标是对给定的数据集
在线性回归问题中,假设函数为
对于这里讨论的单变量情况,
为保持表达形式的一致性,常令
代价函数(cost function)是用于评价假设函数的精确度,取假设函数与输出数据的均方偏差,即
如果把
图中的蓝色部分为图像极小值点,假设红色部分为起始点,每个星星代表从起始点到求得最低点的每一步。可以通过求偏导数的方法确定每一步前进的方向,即每一步迭代:
这就是梯度下降(gradient descent)算法,其中每一步前进的距离长短受参数
上述算法称批量梯度下降(batch gradient descent),即每一步都要查询数据集中的所有数据,因此要注意
代码实现
从年龄和体重的数据中拟合出一个假设函数,对一个确定年龄的小孩进行体重预测。问题和数据来源:
http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=MachineLearning&doc=exercises/ex2/ex2.html
对
% load data and showx = load('ex2x.dat');y = load('ex2y.dat');figureplot(x,y,'o');ylabel('Height in meters')xlabel('Age in years')% initializem = length(y);x = [ones(m,1),x];theta = [0;0];alpha = 0.07;sum = [0;0];% implement gradient descent for n = 1:1500 hyp = x * theta; % the linear regression model in vector for i = 1:m sum = sum + (hyp(i) - y(i))*(x(i,:))'; end theta = theta - alpha/m*sum; % batch gradient descent update sum = [0;0];end% show the resulthold on % Plot new data without clearing old plotplot(x(:,2), x*theta, '-') % remember that x is now a matrix with 2 columns % and the second column contains the time infolegend('Training data', 'Linear regression')x_prd = [1,3.5];hyp = x_pre * theta;disp(['Age = 3.5, then height = ' num2str(hyp) ]);x_prd = [1,7];hyp = x_pre * theta;disp(['Age = 7, then height = ' num2str(hyp) ]);
这是简单的代码实现,更详细和模块的实现参考http://blog.csdn.net/abcjennifer/article/details/7732417
- 机器学习入门和批量梯度下降法
- 机器学习:最小二乘法和梯度下降法
- 机器学习小组知识点4:批量梯度下降法(BGD)
- 机器学习之梯度下降、批量梯度下降与随机梯度下降
- 机器学习----梯度下降法
- 机器学习--梯度下降法
- 机器学习---梯度下降法
- 机器学习-梯度下降法
- 机器学习入门(5)--梯度下降算法
- 机器学习小组知识点4&5:批量梯度下降法(BGD)和随机梯度下降法(SGD)的代码实现Matlab版
- 随机梯度下降法和批量梯度下降法
- 随机梯度下降法和批量梯度下降法
- 《机器学习》 梯度下降
- 《机器学习》 梯度下降
- 机器学习 ~~ 梯度下降
- 机器学习 梯度下降
- 机器学习----梯度下降
- 机器学习-梯度下降
- 基于html5 JS实现的拍照上传图片
- nginx如何解决“惊群”
- 深入浅出MyBatis技术原理和实战(一)
- Android6.0动态权限申请步骤以及需要注意的一些坑
- Jenkins持续集成之发送邮件
- 机器学习入门和批量梯度下降法
- 忽视编译检查警告
- SQL Server 中 ROWLOCK 行级锁
- ngular1 ionic1 select ng-options默认选择第一个值。
- .Net程序员学用Oracle系列(19):我知道的导出和导入
- 33 个 2017 年必须了解的 iOS 开源库(包含swift)
- CTF-实验吧-安全杂项-社交网络
- 深入理解Java的栈与堆栈
- 悟透JavaScript