现有的大部分机器学习的模型,本质上还是属于统计学习的。第一次接触机器学习大概是两年前,在Spark上面使用Scala做数据分析的时候,接触到的第一个数据集是“电影推荐”的实验数据集。那个时候很懵懂的按照书上面写的操作,得到了测试结果,不懂得中间的算法,原理。后面想深入学习是在一年多前,粗略的复习了一下大学课程的:数学分析,高等代数和概率论,后面主要参考资料有:周志华的《机器学习》,李航的《统计学习方法》,语言用的是:python,因为一是个人对python比较熟,二是python有很强大的工具库,三是Python的伪代码本质,易读易懂,让小白也能够专注于解决问题而不是去搞明白语言本身。其实个人觉得做Java的也是可以的,一个是Scala语言也有机器学习工具库,并且Scala能与Java无缝地互操作,学习成本非常低;二个是机器学习需要的大量数据可以从大数据生态圈里面得到,而大数据的很多工具就是用Java编写,应用编码也是使用Java 的(如:Mapreduce),这样从数据的采集入库,存储处理汇总到数据的建模分析,一整套下来知识面也是很宽广的。
当然学习过程中,光自己看书还是有很多很多难以理解的地方,我个人在CSDN上面观看了挺多的教学视频来加深理解。后面会继续更新,对常见的机器学习的算法模型,原理已经数学推导做介绍。算法的实践的话,更多参考Python sklearn的官网。下面对统计学习的一下基本要素做一些笔记解释。
统计学习的三要素: 模型 + 策略 + 算法。
1.1 模型。简单点介绍,就是将现实中的因果相关的几种事物(存在着某种联系)抽象成一个数学模型。比较常见的模型就是条件概率分布 ?={ ? | ?(?∣?) } 和决策函数 ?={ ? | ?=?(?) }.
1.2 策略。考虑按照什么样的准则选择最优的模型,常用的有损失函数(度量一次预测的好坏)和结构风险最小化(度量平均意义下模型预测的好坏)。
1.2.1 0-1损失(0-1 loss function)
1.2.2 平方损失函数(quadratic loss function)
1.2.3 绝对损失函数(absolute loss function)
1.2.4 对数损失函数(logarithmic loss function)
1.2.5 合页损失函数(Hinge loss function)
结构风险最小化(Structural Risk Minimization, SRM):是在经验风险上面再加上模型复杂度的正则化项(regularizer)或者罚项(penalty term)
其中 ?(?) 为模型复杂程度,? 为权重,前部分为经验风险。
1.4 算法。指统计学习模型的具体的计算方法,后续会有更多算法类的相关讲解