<机器学习笔记-01><scikit-learn 01>机器学习基础
2016-09-05 10:57
411 查看
目的
笔者计划对“机器学习machine learning”进行学习,为了对知识和技能进行及时地梳理和总结,同时也为了能够与同道者交流学习,决心以笔记分享的方式来记录这一过程,也算是对自己的一种鞭策吧。
架构&思路 & 参考资料:
a. 从工程师立场来看,问题的解决往往可以分为两个过程:造积木和搭积木;具体到机器学习的领域,创造新的算法,并对其进行封装,这是造积木的部分,而将不同的算法应用到各种工程实际中,与具体的项目结合起来,就是搭积木的过程。工程师呢,需要知道怎么造积木的原理和方法,但是更重要的是知道,怎么去用这些积木;所以笔记中,会力求掌握算法的原理,并结合实际项目应用之。
b. 非常陡峭的学习曲线往往会让人非常沮丧,而让学习曲线变得平缓起来的方法,就是螺旋上升。一开始呢,学用结合,在实际项目中锻炼成长,边做边学,增强对于复杂理论和概念的理解,培养实际应用机器学习解决实际问题的能力;当项目完成后,再回头看那些复杂的公式,或许会有一种云淡风轻、似曾相识的感觉吧。
c. scikit-learn是Python的机器学习库,支持分类、回归、降维、聚类等算法,包含特征提取、数据处理、模型评估等模块。文档多、上手快,作为上手学习机器学习的工具还是非常不错的。
d. 参考书: 推荐《Mastering Machine Learning With scikit-learn》,CSDN的下载里有中英文(非影印)版,以及源代码和数据;
Python和scikit-learn开发环境搭建
强烈推荐Anaconda python集成开发环境,支持windows, Mac OS, Linux等平台;安装后,平台已集成scikit-learn、Numpy、Pandas等库,可以省去配置开发环境的麻烦;
机器学习基础:
a. 机器学习基础是归纳generalize,从已知数据中找未知规律;
b. Tom Mitchell定义“一个程序在完成任务T(task)后获得经验E(experience),其表现为效果P(performance);如果它完成任务T(task)的效果为P(performance),那么就获得经验E(experience)”;
监督学习、无监督学习
a. 监督学习:输入和输出的经验数据已经成对的标记好; 从有正确答案的例子中学习,需要对类似的问题作出正确的反馈;输入变量称为特征,测量的现象作为解释变量;输出结果称为响应值;
b. 无监督学习:输入和输出的经验数据没有标记;需要在这些未标记的数据中发现规律;
c. 增强学习(Reinforcement learning):半监督学习的一个案例;问题可以通过决策获得反馈,但是反馈与决策中没有直接关系;
机器学习任务:
a. 监督学习:分类(classification)和回归(regression);分类需要从若干变量约束条件中预测出新观测值的类型、种类、标签;回归则是预测连续变量的数值;
b. 无监督学习:聚类、降维;聚类就是通过一些相似性度量方法把一些观测值分成同一类;降维是发现对响应值影响最大的解释变量的过程;
训练数据和测试数据
a. 训练集(training set):构成监督学习经验的案例集合;
b. 测试集(test set):评估程序效果的案例集合;
c. 验证集(validation set):调整超参数变量的案例集合;超参数变量控制模型如何学习;
d. 监督学习的观测值分成三部分:训练集(50%),测试集(50%),验证集(25%);
e. 过度拟合(over-fitting)vs欠拟合:过度拟合是指能够在训练集上获得较好地拟合的假设,在训练集之外的案例集合却不能很好的拟合数据;原因是存在噪音或者训练数据太少;正则化(regularization)可以减轻过度拟合程度;
f. “放入的是垃圾,出来的也是垃圾”:监督学习需要用有代表性、标签正确的数据集进行训练;多而不好的数据,训练效果不一定比少而好的数据好。
g. 交叉验证:用相同的数据对算法进行多次训练和检验;适用于训练集不够的时候;数据训练集分成N块,算法用N-1块进行训练,再用最后一块进行测试;
效果评估-偏差和方差
a. 监督学习中,两个基本指标评估预测误差:偏差(bias)和方差(variance);高方差是过度拟合了训练集数据,高偏差则是拟合不够的表现;
b. 偏差-方差均衡:现在中二者具有背反特征,降低一个指标,另一个指标会增加;
c. 无监督学习:没有预测误差,评估数据结构的一些属性;评估方法针对于具体的任务;
d. 无监督评估举例-恶性肿瘤预测(真阳性TP(true positive)+真阴性TN(true negative)+假阳性FP(false positive )+假阴性FN(false negative)):
准确度评估accuracy=(TP+TN)/(TP+TN+FP+FN);
恶性肿瘤精确度precision=TP/(TP+FP)
召回率recall=TP/(TP+FN)
召回率比其他指标更满足实际要求;
笔者计划对“机器学习machine learning”进行学习,为了对知识和技能进行及时地梳理和总结,同时也为了能够与同道者交流学习,决心以笔记分享的方式来记录这一过程,也算是对自己的一种鞭策吧。
架构&思路 & 参考资料:
a. 从工程师立场来看,问题的解决往往可以分为两个过程:造积木和搭积木;具体到机器学习的领域,创造新的算法,并对其进行封装,这是造积木的部分,而将不同的算法应用到各种工程实际中,与具体的项目结合起来,就是搭积木的过程。工程师呢,需要知道怎么造积木的原理和方法,但是更重要的是知道,怎么去用这些积木;所以笔记中,会力求掌握算法的原理,并结合实际项目应用之。
b. 非常陡峭的学习曲线往往会让人非常沮丧,而让学习曲线变得平缓起来的方法,就是螺旋上升。一开始呢,学用结合,在实际项目中锻炼成长,边做边学,增强对于复杂理论和概念的理解,培养实际应用机器学习解决实际问题的能力;当项目完成后,再回头看那些复杂的公式,或许会有一种云淡风轻、似曾相识的感觉吧。
c. scikit-learn是Python的机器学习库,支持分类、回归、降维、聚类等算法,包含特征提取、数据处理、模型评估等模块。文档多、上手快,作为上手学习机器学习的工具还是非常不错的。
d. 参考书: 推荐《Mastering Machine Learning With scikit-learn》,CSDN的下载里有中英文(非影印)版,以及源代码和数据;
Python和scikit-learn开发环境搭建
强烈推荐Anaconda python集成开发环境,支持windows, Mac OS, Linux等平台;安装后,平台已集成scikit-learn、Numpy、Pandas等库,可以省去配置开发环境的麻烦;
机器学习基础:
a. 机器学习基础是归纳generalize,从已知数据中找未知规律;
b. Tom Mitchell定义“一个程序在完成任务T(task)后获得经验E(experience),其表现为效果P(performance);如果它完成任务T(task)的效果为P(performance),那么就获得经验E(experience)”;
监督学习、无监督学习
a. 监督学习:输入和输出的经验数据已经成对的标记好; 从有正确答案的例子中学习,需要对类似的问题作出正确的反馈;输入变量称为特征,测量的现象作为解释变量;输出结果称为响应值;
b. 无监督学习:输入和输出的经验数据没有标记;需要在这些未标记的数据中发现规律;
c. 增强学习(Reinforcement learning):半监督学习的一个案例;问题可以通过决策获得反馈,但是反馈与决策中没有直接关系;
机器学习任务:
a. 监督学习:分类(classification)和回归(regression);分类需要从若干变量约束条件中预测出新观测值的类型、种类、标签;回归则是预测连续变量的数值;
b. 无监督学习:聚类、降维;聚类就是通过一些相似性度量方法把一些观测值分成同一类;降维是发现对响应值影响最大的解释变量的过程;
训练数据和测试数据
a. 训练集(training set):构成监督学习经验的案例集合;
b. 测试集(test set):评估程序效果的案例集合;
c. 验证集(validation set):调整超参数变量的案例集合;超参数变量控制模型如何学习;
d. 监督学习的观测值分成三部分:训练集(50%),测试集(50%),验证集(25%);
e. 过度拟合(over-fitting)vs欠拟合:过度拟合是指能够在训练集上获得较好地拟合的假设,在训练集之外的案例集合却不能很好的拟合数据;原因是存在噪音或者训练数据太少;正则化(regularization)可以减轻过度拟合程度;
f. “放入的是垃圾,出来的也是垃圾”:监督学习需要用有代表性、标签正确的数据集进行训练;多而不好的数据,训练效果不一定比少而好的数据好。
g. 交叉验证:用相同的数据对算法进行多次训练和检验;适用于训练集不够的时候;数据训练集分成N块,算法用N-1块进行训练,再用最后一块进行测试;
效果评估-偏差和方差
a. 监督学习中,两个基本指标评估预测误差:偏差(bias)和方差(variance);高方差是过度拟合了训练集数据,高偏差则是拟合不够的表现;
b. 偏差-方差均衡:现在中二者具有背反特征,降低一个指标,另一个指标会增加;
c. 无监督学习:没有预测误差,评估数据结构的一些属性;评估方法针对于具体的任务;
d. 无监督评估举例-恶性肿瘤预测(真阳性TP(true positive)+真阴性TN(true negative)+假阳性FP(false positive )+假阴性FN(false negative)):
准确度评估accuracy=(TP+TN)/(TP+TN+FP+FN);
恶性肿瘤精确度precision=TP/(TP+FP)
召回率recall=TP/(TP+FN)
召回率比其他指标更满足实际要求;
相关文章推荐
- <机器学习笔记-07 ><scikit-learn 07>PCA主成分分析
- 4000 <机器学习笔记-05 ><scikit-learn 05>决策树 & 随机森林
- <机器学习笔记-04 ><scikit-learn 04>逻辑回归
- <机器学习笔记-06 ><scikit-learn 06>K-Means 聚类
- <<Python基础教程>>学习笔记 | 第04章 | 字典
- <<Python基础教程>>学习笔记 | 第09章 | 魔法方法、属性和迭代器
- <<Python基础教程>>学习笔记 | 第06章 | 抽象
- <笔记>.NET基础知识01
- <<Python基础教程>>学习笔记 | 第13章 | 数据库支持
- <机器学习笔记-02> <scikit-learn -02>线性回归
- <<Python基础教程>>学习笔记 | 第03章 | 字符串
- < 笔记 > CSS - 01 CSS 基础
- <<Python基础教程>>学习笔记 | 第12章 | 图形用户界面
- <<JavaScript编程全解>>阅读笔记之javascript基础
- <笔记>.NET基础知识05
- Java笔记1 Java编程基础<1>标示符、变量、个别运算符
- Java笔记1 Java编程基础<2>循环语句、函数(重载)、变量和数组的内存结构
- Java笔记7 Java基础加强<3>注解
- <More Effective C++>笔记--基础
- 洪小瑶学IOS(一):准备起航 <Objective-C基础教程>笔记